[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]
Procedure fillWord(Var dest; count, data: Word);
begin
Inline(
$C4/$BE/dest/ { les di, dest[bp] }
$8B/$8E/count/ { mov cx, count[bp] }
$8B/$86/data/ { mov ax,data[bp] }
$FC/ { cld }
$F3/$AB { rep stosw }
)
end;
Procedure ClrScr;
Var
screen: Array[1..25, 1..80, 1..2] of Char Absolute $b800:$0000;
begin
fillWord(screen, sizeof(screen) div 2, $0720)
end;
{ or }
Procedure ClrScr;
Type
TScreen: Array[1..25, 1..80, 1..2] of Char;
Var
VideoSegment: Word;
begin
if (MemW[$40:$10] and $30)=$30 then
VideoSegment:=$B000
else
VideoSegment:=$B800;
fillWord(ptr(VideoSegment, 0)^, sizeof(TScreen) div 2, $0720)
end;
[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]