X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrv%2Fvterm_vt100.c;h=559115d04dda1b4f225cf8bef28ff83f1d621220;hb=ac3028884d3c109359bc20369391adba7dab4ba9;hp=bab78022e6babc805aa74fb1bcdbd5ceee876e0f;hpb=45ea05112879353e05848dde97fff36615721d6b;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/vterm_vt100.c b/KernelLand/Kernel/drv/vterm_vt100.c index bab78022..559115d0 100644 --- a/KernelLand/Kernel/drv/vterm_vt100.c +++ b/KernelLand/Kernel/drv/vterm_vt100.c @@ -5,14 +5,22 @@ * drv/vterm_vt100.c * - Virtual Terminal - VT100 (Kinda) Emulation */ -#define DEBUG 0 +#define DEBUG 1 #include "vterm.h" #define sTerminal sVTerm #include "../../../Usermode/Applications/gui_terminal_src/vt100.c" +void *Display_GetTermState(tTerminal *Term) { + return Term->VT100Info;; +} +void Display_SetTermState(tTerminal *Term, void *State) { + Term->VT100Info = State; +} + void Display_AddText(tTerminal *Term, size_t Length, const char *UTF8Text) { + LOG("'%*C'", Length, UTF8Text); VT_int_PutRawString(Term, (const void*)UTF8Text, Length); } void Display_Newline(tTerminal *Term, bool bCarriageReturn) @@ -63,7 +71,7 @@ void Display_MoveCursor(tTerminal *Term, int RelRow, int RelCol) // if( RelCol < 0 ) { - size_t avail = *wrpos % Term->TextWidth; + int avail = *wrpos % Term->TextWidth; if( RelCol < -avail ) RelCol = -avail; } @@ -81,8 +89,8 @@ void Display_MoveCursor(tTerminal *Term, int RelRow, int RelCol) int maxrows = ((Term->Flags & VT_FLAG_ALTBUF) ? 1 : (giVT_Scrollback+1))*Term->TextHeight; if( RelRow < 0 ) { - if( currow + RelRow < 0 ) - RelRow = currow; + if( RelRow < -currow ) + RelRow = -currow; } else { @@ -91,6 +99,7 @@ void Display_MoveCursor(tTerminal *Term, int RelRow, int RelCol) } *wrpos += RelRow*Term->TextWidth; } + LOG("=(R%i,C%i)", *wrpos / Term->TextWidth, *wrpos % Term->TextWidth); } void Display_SaveCursor(tTerminal *Term) { @@ -144,7 +153,6 @@ void Display_ClearLines(tTerminal *Term, int Dir) { LOG("(Dir=%i)", Dir); int *wrpos = (Term->Flags & VT_FLAG_ALTBUF ? &Term->AltWritePos : &Term->WritePos); - tVT_Char *buffer = (Term->Flags & VT_FLAG_ALTBUF ? Term->AltBuf : Term->Text); // All if( Dir == 0 ) { @@ -192,7 +200,7 @@ void Display_SetBackground(tTerminal *Term, uint32_t RGB) { LOG("(%06x)", RGB); Term->CurColour &= 0xFFFF8000; - Term->CurColour |= (Uint32)VT_Colour24to12(RGB) <<06; + Term->CurColour |= (Uint32)VT_Colour24to12(RGB) << 0; } void Display_Flush(tTerminal *Term) { @@ -204,4 +212,8 @@ void Display_ShowAltBuffer(tTerminal *Term, bool AltBufEnabled) LOG("(%B)", AltBufEnabled); VT_int_ToggleAltBuffer(Term, AltBufEnabled); } +void Display_SetTitle(tTerminal *Term, const char *Title) +{ + // ignore +}