[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]
Unit scn_io;
Interface
Procedure GetScreenStr(x, y, l: Integer; Var s: String);
Implementation
Procedure GetChar(x, y: Integer; Var ch: Char);
(*** gets the Character from screen position x, y;
x is horizontal co-ord, y is vertical;
top left corner is 0,0 ***)
Const
base = $b800; (* $b000 For mono *)
Var
screen_Byte: Byte;
offs: Integer;
begin
offs := ( (y*80) + x ) * 2;
screen_Byte := mem[base: offs];
ch := chr(screen_Byte);
end{proc..};
Procedure PutChar(x, y: Integer; ch: Char);
(*** pits the Character ch to screen position x, y; ***)
Const
base = $b800; (* $b000 For mono *)
Var
screen_Byte: Byte;
offs: Integer;
begin
offs := ( (y*80) + x ) * 2;
screen_Byte := ord(ch);
mem[base: offs] := screen_Byte;
end{proc..};
Procedure GetScreenStr(x, y, l: Integer; Var s: String);
(*** gets the String from screen position x,y of length l ***)
Var
i: Integer;
ch: Char;
begin
s := '';
For i := 1 to l do
begin
GetChar(x, y, ch);
s := s + ch;
inc(x);
if x > 79 then
begin
inc(y); x:= 0;
end{if x >..};
end{For i..}
end{proc..};
end{Unit..}.
[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]