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

    Unit PrntScrn;     (* PrintScreen Unit for regular text modes *)

    (*--*)  Interface  (*--*)

    Procedure PrintScreen;

    (*--*)  Implementation  (*--*)

    Uses Dos,Crt,Printer;

    Procedure PrintScreen;
    Var
      line : string[80];
      x,y : integer;
      Ms : Registers;

    Begin
      Ms.Ax := $10 shl 8 + $1a;       (* Read the current Page state *)
      Intr($10,Ms);
      For y := 1 to 25 do Begin       (* Do lines 1 to 25 *)
        Line := '';
        For x := 1 to 80 do Begin     (* and columns 1 to 80 *)
          Gotoxy(x,y);                (* Move cursor *)
          Ms.Ax := $8 shl 8;          (* Read character at cursor *)
          Intr($10,Ms);
          Line := Line + Chr(Lo(Ms.Ax));   (* Add to total line *)
        End;
        Writeln(lst,Line);            (* Write to printer *)
      End;
    End;

    End.  (* PrntScrn UNIT *)

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