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 *)