[Back to PRINTING SWAG index] [Back to Main SWAG index] [Original]
program chkprinter;
uses dos,crt;
var
lprn: integer;
st : string;
function printerok(lprn : integer) : boolean;
var ok : boolean;
regs : registers;
st : string;
code : byte;
begin {printerok}
ok := false;
dec(lprn);
if ((lprn >= 0) and (lprn <= 2)) then
repeat
regs.ah := 2;
regs.dx := lprn;
intr($17, regs);
code := regs.ah;
if code <> $90
then
begin
case code of
$02, $4A : st := ' Printer is not connected ';
$00, $10,
$18, $58 : st := ' Printer is offline ';
$28, $38 : st := ' Printer is out of paper ';
$88, $C8 : st := ' Printer is turned off ';
else st := ' Output device is not ready ';
end; {case}
GoToXY(1,1);
WriteLn(st);
WriteLn(' ');
WriteLn('Please correct the error');
WriteLn('or press a key to continue')
end
else
ok := true;
until ok or keypressed;
if ok then printerok := ok
end; {printerok}
{**********************************************************************}
begin
ClrScr;
if paramcount <> 0
then begin
st := copy(paramstr(1), 1, 1);
lprn := ord(st[1]) - 48
end
else lprn := 1;
if printerok(lprn) then
writeln('Printer OK')
else
writeln('Printer not ok')
end.
[Back to PRINTING SWAG index] [Back to Main SWAG index] [Original]