84 lines
2.8 KiB
Plaintext
84 lines
2.8 KiB
Plaintext
|
;{- Code Header
|
|||
|
; ==- Basic Info -================================
|
|||
|
; Name: AinsiEscapeCode.pbi
|
|||
|
; Version: N/A
|
|||
|
; Author: Herwin Bozet
|
|||
|
;
|
|||
|
; ==- Compatibility -=============================
|
|||
|
; Compiler version: PureBasic 5.70 (x86/x64)
|
|||
|
; Operating system: Windows 10 21H1 (Previous versions untested)
|
|||
|
;
|
|||
|
; ==- Links & License -===========================
|
|||
|
; License: Unlicense
|
|||
|
;}
|
|||
|
|
|||
|
;- Module Declaration
|
|||
|
|
|||
|
DeclareModule AinsiEscapeCode
|
|||
|
;-> Documentation
|
|||
|
; * https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences
|
|||
|
; * https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
|
|||
|
; * https://en.wikipedia.org/wiki/ANSI_escape_code
|
|||
|
|
|||
|
|
|||
|
;-> Constants
|
|||
|
|
|||
|
;-> > Control characters
|
|||
|
#BEL$ = #BEL$
|
|||
|
#BS$ = #BS$
|
|||
|
#HT$ = #TAB$
|
|||
|
#LF$ = #LF$
|
|||
|
#FF$ = #FF$
|
|||
|
#CR$ = #CR$
|
|||
|
#ESC$ = #ESC$
|
|||
|
|
|||
|
;-> > Operators
|
|||
|
#CSI$ = "["
|
|||
|
#OSC$ = "]"
|
|||
|
|
|||
|
;-> > Cursor
|
|||
|
#CUU$ = "A" ; Cursor Up by n
|
|||
|
#CUD$ = "B" ; Cursor Down by n
|
|||
|
#CUF$ = "C" ; Cursor Forward (Right) by n
|
|||
|
#CUB$ = "D" ; Cursor Backward (Left) by n
|
|||
|
|
|||
|
#CNL$ = "E" ; Cursor Next Line by n
|
|||
|
#CPL$ = "F" ; Cursor Previous Line by n
|
|||
|
|
|||
|
|
|||
|
;-> Buffer ?
|
|||
|
#ED$ = "J" ; Erase in Display
|
|||
|
#ED_0 = 0 ; 0 from cursor to end of screen
|
|||
|
#ED_1 = 1 ; 1 from cursor to beginning of the screen
|
|||
|
#ED_2 = 2 ; 2 clear entire screen (May move to 0:0)
|
|||
|
#ED_3 = 3 ; 3 clear entire screen and lines saved in the scrollback buffer. (Does not work on Windows as of 21H1 in Windows Terminal)
|
|||
|
|
|||
|
|
|||
|
;-> Queries
|
|||
|
#DECXCPR$ = "6n" ; Emit the cursor position as: ESC [ <r> ; <c> R Where <r> = cursor row and <c> = cursor column
|
|||
|
|
|||
|
#DECSC$ = "7" ; Save Cursor Position in Memory**
|
|||
|
#DECSR$ = "8" ; Restore Cursor Position from Memory**
|
|||
|
|
|||
|
#RI$ = "M" ; Reverse Index – Performs the reverse operation of \n, moves cursor up one line, maintains horizontal position, scrolls buffer if necessary*
|
|||
|
|
|||
|
|
|||
|
; https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
|
|||
|
|
|||
|
; https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences#cursor-positioning
|
|||
|
#CHA$ = "G" ; Cursor Horizontal Absolute Cursor moves to <n>th position horizontally in the current line
|
|||
|
#VPA$ = "d" ; Vertical Line Position Absolute Cursor moves to the <n>th position vertically in the current column
|
|||
|
#CUP$ = "H" ; Cursor Position *Cursor moves to <x>; <y> coordinate within the viewport, where <x> is the column of the <y> line
|
|||
|
#HVP$ = "f" ; Horizontal Vertical Position *Cursor moves to <x>; <y> coordinate within the viewport, where <x> is the column of the <y> line
|
|||
|
#ANSISYSSC_DECSC$ = "s" ; Save Cursor – Ansi.sys emulation **With no parameters, performs a save cursor operation like DECSC
|
|||
|
#ANSISYSSC_DECRC$ = "u" ; Restore Cursor – Ansi.sys emulation **With no parameters, performs a restore cursor operation like DECRC
|
|||
|
|
|||
|
EndDeclareModule
|
|||
|
|
|||
|
|
|||
|
;- Module Definition
|
|||
|
|
|||
|
Module AinsiEscapeCode
|
|||
|
; Nothing...
|
|||
|
EndModule
|