[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]

    {
    RH>Is there a method to put a whole screen (640X480X16) in a
    RH>file.
    RH>I have tried to make a function but it only works with the
    RH>colors
    RH>black and white.

    Here's some code:
    }
    procedure copy_screen(var f:file);

    type data=array[0..65534] of byte;

    Var p:^data;

    begin
       new(p); rewrite(f,1);
       asm
          mov es,0b800h
          xor di,di
          mov cx,32767^[B
          push ds
          lds si,[p]
          cld
          rep movsw
          pop ds
       end;
       blockwrite(f,p^,65536);
       asm
          mov es,0b801h
          xor di,di
          mov cx,32767
          push ds
          lds si,[p]
          cld
          rep movsw
          pop ds
       end;
       blockwrite(f,p^,65536);
       asm
          mov es,0b802h
          xor di,di
          mov cx,11263
          push ds
          lds si,[p]
          cld
          rep movsw
          pop ds
       end;
       blockwrite(f,p^,11264);
       close(f);
       dispose(p);
    end;

    Now there is a chance that I've screwed up somewhere, so if this doesn't work
    right let me know, also let me know if you want a routine to read a screen back
    into video memory.  Good Luck!
    John Baldwin

[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]