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


{$m $800,0,0 }

program catch; { just for Swag }

uses crt, dos;

const header : array[1..2] of word = (320, 200);

var cnt : byte;

{$f+}
procedure new_int; interrupt;

var imgfile : file;
    imgname : string[12];

begin
 str(cnt, imgname);
 if cnt < 10  then imgname := '0'+imgname;
 if cnt < 100 then imgname := '0'+imgname;
 imgname := 'grab.'+imgname;

 {$i-}
 assign(imgfile, imgname);
 rewrite(imgfile, 1);

 blockwrite(imgfile, header, 4);
 blockwrite(imgfile, mem[$a000:$0], 320*200);

 close(imgfile);
 {$i+}

 if ioresult <> 0 then
  begin
   sound(1000); { Error }
   delay(1000);
   nosound;
  end
 else
  begin
   sound(50); { Ok! }
   delay(50);
   nosound;
   inc(cnt);
  end;
end;
{$f-}


begin
 cnt := 1;

 setintvec($5, addr(new_int));

 writeln('Press Screen Print to grab a 320x200x256 image to "grab.###"');
 writeln('One short low beep means "No error", a long high one means trouble');
 writeln;
 writeln('Only catch when you''re sure:');
 writeln('ùYour hard-disk is not busy');
 writeln('ùYou''re in a program (so not at the command-prompt)');
 writeln('ùYou''re in the mcga 320x200 256 color modus ($13)');

 keep(0);
end.

Warning!
Do NOT run this program from within Tp!
Just compile it, then run it as an executable.

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