[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]