diff options
Diffstat (limited to 'Source/Library/Interface')
-rw-r--r-- | Source/Library/Interface/VirtualTerminal.iface.h | 58 |
1 files changed, 53 insertions, 5 deletions
diff --git a/Source/Library/Interface/VirtualTerminal.iface.h b/Source/Library/Interface/VirtualTerminal.iface.h index e0f59d5..9196771 100644 --- a/Source/Library/Interface/VirtualTerminal.iface.h +++ b/Source/Library/Interface/VirtualTerminal.iface.h @@ -8,21 +8,69 @@ #define VTIF_SGETPROUTVT 7 //Get process output virtual terminal (R) | no arguments #define VTIF_PUT 0x01 //Put one character to virtual terminal (v) | c:character -#define VTIF_WRITEHEX 0x02 //Write a number in hexadecimal (v) | i:number -#define VTIF_WRITEDEC 0x03 //Write a number in decimal (v) | j:number, J:number -#define VTIF_WRITE 0x04 //Write a string (v) | S:string +#define VTIF_WRITE 0x02 //Write a string (v) | S:string + +/* EVERYTHING NOW GOES THROUGH VTIF_WRITE +#define VTIF_WRITEHEX 0x03 //Write a number in hexadecimal (v) | i:number +#define VTIF_WRITEDEC 0x04 //Write a number in decimal (v) | j:number, J:number +*/ #define VTIF_READLINE 0x05 //Reads a line from virtual terminal (S) : b:show? #define VTIF_GETKEYPRESS 0x06 //Get a keypress from virtual terminal (*) : i:flags //Takes two flags : 1<<0 = show, 1<<1 = block - +/* EVERYTHING NOW GOES THROUGH VTIF_WRITE #define VTIF_SETCOLOR 0x10 //Set text color (v) | i:foreground_color, i:backgrond_color #define VTIF_SETCSRLINE 0x11 //Set cursor line (v) | i:line #define VTIF_SETCSRCOL 0x12 //Set cursor column (v) | i:column +#define VTIF_LOCATE 0x13 //Sets cursor position (v) | i:line, i:column +*/ #define VTIF_ISBOXED 0x13 //Is VT boxed ? (b) | no arguments #define VTIF_GETHEIGHT 0x1A //Get VT width (i) | no arguments #define VTIF_GETWIDTH 0x1B //Get VT height (i) | no arguments -#define VTIF_LOCATE 0x1C //Sets cursor position (v) | i:line, i:column + +// ***** MELON VT SPECIFIC ESCAPE COMMANDS ** +#define MVT_ESC "\032" + +struct mvt_esc_cmd_t { + int cmd; + int a, b; +}; + +#define MVTCMD0(name, command) \ + inline mvt_esc_cmd_t name() { \ + mvt_esc_cmd_t ret; ret.cmd = command; return ret; } + +#define MVTCMD1(name, command) \ + inline mvt_esc_cmd_t name(int a) { \ + mvt_esc_cmd_t ret; ret.cmd = command; ret.a = a; return ret; } + +#define MVTCMD2(name, command) \ + inline mvt_esc_cmd_t name(int a, int b) { \ + mvt_esc_cmd_t ret; ret.cmd = command; ret.a = a; ret.b = b; return ret; } + +#define MVTCMD_CLEAR 0x100 +#define MVTCMD_SCROLL 0x101 +#define MVTCMD_SETCOLOR 0x110 +#define MVTCMD_SETBGCOLOR 0x111 +#define MVTCMD_SETFGCOLOR 0x112 +#define MVTCMD_MOVECSR 0x120 +#define MVTCMD_SETCSRLIN 0x121 +#define MVTCMD_SETCSRCOL 0x122 +#define MVTCMD_HIDECSR 0x130 +#define MVTCMD_SHOWCSR 0x131 + +namespace MVT { + MVTCMD0(clear, MVTCMD_CLEAR); + MVTCMD0(scroll, MVTCMD_SCROLL); + MVTCMD2(setcolor, MVTCMD_SETCOLOR); + MVTCMD1(setbgcolor, MVTCMD_SETBGCOLOR); + MVTCMD1(setfgcolor, MVTCMD_SETFGCOLOR); + MVTCMD2(movecsr, MVTCMD_MOVECSR); + MVTCMD1(setcsrlin, MVTCMD_SETCSRLIN); + MVTCMD1(setcsrcol, MVTCMD_SETCSRCOL); + MVTCMD0(hidecsr, MVTCMD_HIDECSR); + MVTCMD0(showcsr, MVTCMD_SHOWCSR); +} #endif |