[Back to SAVESCRN SWAG index] [Back to Main SWAG index] [Original]
>---------< How to save/restore the whole screen >----------
{$X+}
Uses Crt;
Type PScreenBuf = ^TScreenBuf;
     TScreenBuf = Array [1..2000] of Word;
Var ScreenBuf: PScreenBuf;   { Pointer to actual video ram }
    Scr:       TScreenBuf;   { buffer For screen storage   }
    VideoPort: Word Absolute 0:$463;  { the video port adr }
    i:         Byte;         { :-) you'll always find it   }
                             { in Programs like this :-)   }
begin
  if VideoPort = $3D4 then
    ScreenBuf := Ptr ($B800,0)        { oh, it's color :-) }
  else
    ScreenBuf := Ptr ($B000,0);          { oh no, mono :-( }
  Scr := ScreenBuf^;                   {*** SAVE SCREEN ***}
  if ReadKey=#0 then ReadKey;           { wait For any key }
  For i:=1 to 60 do
    Writeln ('Hello guys out there...');  { DESTROY SCREEN }
  if ReadKey=#0 then ReadKey;           { wait For any key }
  ScreenBuf^ := Scr;                {*** REStoRE SCREEN ***}
  if ReadKey=#0 then ReadKey;           { wait For any key }
end.
>-----------------< Yes! Even tested! >---------------------
[Back to SAVESCRN SWAG index] [Back to Main SWAG index] [Original]