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

    { This TSR, when press Crtl+Print Screen save to disk the screen. }
    {Antonio Moro's routines, from Spain TP Echo}
    {$M 1024, 0, 0}  (* 1 K for Stack *)
    {$S-}
    PROGRAM Caza;
    USES Dos, Crt;
    VAR   numfichero   : Byte;
          fichero      : File;
          s_num, drive : String [2];
          buffg        : Pointer;

    PROCEDURE Graba (Flags, CS, IP, AX, BX, CX, DX, SI, DI, DS, ES, BP: Word);
    INTERRUPT;
       Begin
            Str(numfichero,s_num);
            Inc(numfichero);
            Assign(fichero, drive + 'SCREEN.' + s_num);
            Rewrite(fichero,1);
            buffg:= Ptr($B000,0);     (* Hercules video memory direction *)
            BlockWrite(fichero,buffg^,32768); (* save 32K block of video memory
                                              in a file*)
            Close(fichero);
       End;

    BEGIN
         If ParamCount = 1 Then  drive:=ParamStr(1) + ':'
            Else drive:='C:';
         Writeln;
         HighVideo;
         Writeln('Resident Savescreen.');
         Write('For activate press SHIFT + PRTSCR');
         LowVideo;
         Writeln;
         numfichero:=0;
         SetINtVec(5, @Graba);  (* Change interrupt vector of 5 interruption
                                   (print screen) *)
         Keep(0);               (* End and Stay Resident *)

    END.

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