char vm_getchxy(char x, char y) { char ch; USHORT len = 1; VioReadCharStr(&ch, &len, (USHORT) (y - 1), (USHORT) (x - 1), 0); return ch; }
void ReadScreen( int next_line ) /******************************/ { USHORT len; len = SCREEN_WIDTH - ( StartCol + ColOffset ); if( next_line ) { len += SCREEN_WIDTH; if( len > LINE_WIDTH ) { len = LINE_WIDTH; } } VioReadCharStr( Line, &len, Row + RowOffset, StartCol + ColOffset, 0 ); for( MaxCursor = len; len-- > 0; MaxCursor = len ) { if( Line[len] != ' ' ) { break; } } Cursor = next_line ? MaxCursor : 0; Draw = TRUE; Base = 0; Edited = TRUE; if( !next_line && MaxCursor == SCREEN_WIDTH ) { ReadScreen( 1 ); } }
char vm_getchxy(char x, char y) { if (_osmode == DOS_MODE) { char cell[2]; vi_init(); v_getline(cell, (int)(x - 1), (int)(y - 1), 1); return *cell; } else { char cell[2]; USHORT len = sizeof cell; VioReadCharStr(cell, &len, (USHORT) (y - 1), (USHORT) (x - 1), 0); return *cell; } }
USHORT __pascal VIOREADCHARSTR(CHAR * CellStr, USHORT * Count, const USHORT Row, const USHORT Column, const HVIO Handle) { return VioReadCharStr(CellStr, Count, Row, Column, Handle); }