X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrv%2Fvterm_output.c;h=79afaa74ff23f94838124790483e3fdfe99abb2f;hb=5606c9647f30a09590831ab87edb08654beca875;hp=532d2686376cbcd04f9072ffa47390f3259cd941;hpb=9659f4f4435c25edeafacece13450da80c9d5066;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/vterm_output.c b/KernelLand/Kernel/drv/vterm_output.c index 532d2686..79afaa74 100644 --- a/KernelLand/Kernel/drv/vterm_output.c +++ b/KernelLand/Kernel/drv/vterm_output.c @@ -52,8 +52,12 @@ void VT_int_ScrollFramebuffer( tVTerm *Term, int Count ) // Only update if this is the current terminal if( Term != gpVT_CurTerm ) return; + ENTER("pTerm iCount", + Term, Count); + if( Count > Term->ScrollHeight ) Count = Term->ScrollHeight; if( Count < -Term->ScrollHeight ) Count = -Term->ScrollHeight; + LOG("Count = %i", Count); // Switch to 2D Command Stream tmp = VIDEO_BUFFMT_2DSTREAM; @@ -81,6 +85,7 @@ void VT_int_ScrollFramebuffer( tVTerm *Term, int Count ) // Restore old mode (this function is only called during text mode) tmp = VIDEO_BUFFMT_TEXT; VFS_IOCtl(giVT_OutputDevHandle, VIDEO_IOCTL_SETBUFFORMAT, &tmp); + LEAVE('-'); } void VT_int_UpdateCursor( tVTerm *Term, int bShow ) @@ -88,6 +93,8 @@ void VT_int_UpdateCursor( tVTerm *Term, int bShow ) tVideo_IOCtl_Pos csr_pos; if( Term != gpVT_CurTerm ) return ; + + ENTER("pTerm bShow", Term, Show); if( !bShow ) { @@ -119,6 +126,7 @@ void VT_int_UpdateCursor( tVTerm *Term, int bShow ) csr_pos.y = Term->VideoCursorY; } VFS_IOCtl(giVT_OutputDevHandle, VIDEO_IOCTL_SETCURSOR, &csr_pos); + LEAVE('-'); } /** @@ -129,13 +137,16 @@ void VT_int_UpdateScreen( tVTerm *Term, int UpdateAll ) { // Only update if this is the current terminal if( Term != gpVT_CurTerm ) return; - + + ENTER("pTerm iUpdateAll", Term, UpdateAll); + switch( Term->Mode ) { case TERM_MODE_TEXT: { size_t view_pos = (Term->Flags & VT_FLAG_ALTBUF) ? 0 : Term->ViewTopRow*Term->TextWidth; const tVT_Pos *wrpos = VT_int_GetWritePosPtr(Term); const tVT_Char *buffer = (Term->Flags & VT_FLAG_ALTBUF) ? Term->AltBuf : Term->Text; + LOG("view_pos = %i, wrpos = %p, buffer=%p", view_pos, wrpos, buffer); // Re copy the entire screen? if(UpdateAll) { VFS_WriteAt( @@ -161,5 +172,6 @@ void VT_int_UpdateScreen( tVTerm *Term, int UpdateAll ) } VT_int_UpdateCursor(Term, 1); + LEAVE('-'); }