[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]
{
Someone has suggested that you use the BIOS routines, but I don't
think his code was complete. In case you want to go the BIOS
route, I hacked out a routine that does that:
}
function Screen(row, column : byte): char; assembler;
{ returns the char at Row, Column }
asm
MOV AH, 0FH
INT 10H { Get active display page in BH, where it stays for
remainder of this routine }
MOV AH, 03H
INT 10H { Get current cursor settings for active display page }
PUSH DX { Save cursor coordinants on stack }
MOV DH, row
MOV DL, column
DEC DH { Make allowance for the fact that BIOS treats origin }
DEC DL { as 0,0, whereas we want it treated as 1,1 }
MOV AH, 02H
INT 10H { Move cursor to row-1, column-1 }
MOV AH, 08H
INT 10H { Get character at cursor in AL, where it stays until
returned by function }
POP DX { Restore old cursor coordinates to DX }
MOV AH, 02H
INT 10H { Move cursor back where it was }
end;
---
* Blue Lake System OR 503-656-9790 v.32bis 5 Node 12 Gig
* PostLink(tm) v1.20 BLUELAKE (#433) : RelayNet(tm)
[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]