giTerminalFD_Input = 0;
// Check that the console is a VT
// - _SysIOCtl(..., 0, NULL) returns the type, which should be 2
- if( _SysIOCtl(1, 0, NULL) != 2 )
+ tmpInt = _SysIOCtl(1, 0, NULL);
+ if( tmpInt != 2 )
{
- fprintf(stderr, "stdout is not an Acess VT, can't start");
+ fprintf(stderr, "stdout is not an Acess VT, can't start (2 exp, %i got)\n", tmpInt);
_SysDebug("stdout is not an Acess VT, can't start");
exit(-1);
}
_SysDebug("Video_Update - Updating lines %i to %i (0x%x+0x%x px)",
giVideo_FirstDirtyLine, giVideo_LastDirtyLine, ofs, size);
- _SysSeek(giTerminalFD, ofs*4, 1);
+ _SysSeek(giTerminalFD, ofs*4, SEEK_SET);
_SysDebug("Video_Update - Sending FD %i %p 0x%x", giTerminalFD, gpScreenBuffer+ofs, size*4);
_SysWrite(giTerminalFD, gpScreenBuffer+ofs, size*4);
_SysDebug("Video_Update - Done");
- giVideo_FirstDirtyLine = 0;
+ giVideo_FirstDirtyLine = giScreenHeight;
giVideo_LastDirtyLine = 0;
}
if( W <= 0 || H <= 0 ) return;
- if( DstY < giVideo_FirstDirtyLine )
- giVideo_FirstDirtyLine = DstY;
- if( DstY + H > giVideo_LastDirtyLine )
- giVideo_LastDirtyLine = DstY + H;
+ giVideo_FirstDirtyLine = MIN(DstY, giVideo_FirstDirtyLine);
+ giVideo_LastDirtyLine = MAX(DstY+H, giVideo_LastDirtyLine);
buf = gpScreenBuffer + DstY*giScreenWidth + DstX;
if(drawW != giScreenWidth || W != giScreenWidth)