[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]
 {
   DUMPSCR.PAS
   Demo to dump a 25 line screen to disk and then restore it
   By Martin Richardson
   (This code is Public Domain... Enjoy!)
 }
 USES CRT;
 TYPE
    ScreenArray = ARRAY[1..25 * 80] OF WORD;
    ScreenPtr = ^ScreenArray;
 VAR
   _Screen: ScreenPtr;
   fHandle: FILE;
   ScreenRows: BYTE;
 BEGIN
     IF (LastMode = Mono) THEN
        _Screen := PTR( $B000, 0 )
     ELSE
        _Screen := PTR( $B800, 0 );
     ASSIGN( fHandle, 'DUMP.SCR' );
 { First we save the screen to the file DUMP.SCR }
     REWRITE( fHandle, 1 );
     BLOCKWRITE( fHandle, _Screen^, SIZEOF( _Screen^ ) );
     CLOSE( fHandle );
 { Now a little pause as we catch our breath }
     CLRSCR;
     WRITELN( 'Press any key...' );
     WHILE READKEY = #0 DO;
 { And finally we restore the screen from the file DUMP.SCR }
     RESET( fHandle, 1 );
     BLOCKREAD( fHandle, _Screen^, SIZEOF( _Screen^ ) );
     CLOSE( fHandle );
 { Another pause to view our handiwork }
     WHILE READKEY = #0 DO;
 END.
[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]