home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / insidetp / 1990_02 / chkprntr.pas < prev    next >
Pascal/Delphi Source File  |  1990-02-06  |  1KB  |  66 lines

  1. PROGRAM ChkPrinter;
  2.  
  3. USES Dos,Crt;
  4.  
  5. VAR
  6.   Lprn: Integer;
  7.   St : STRING;
  8.  
  9.  
  10. FUNCTION PrinterOk(Lprn : Integer) : Boolean;
  11.  
  12. VAR Ok   : Boolean;
  13.     Regs : Registers;
  14.     St   : STRING;
  15.     Code : Byte;
  16.  
  17. BEGIN                 {PrinterOk}
  18.   Ok := FALSE; PrinterOk := FALSE;
  19.   Dec(Lprn);
  20.   IF ((Lprn >= 0) AND (Lprn <= 2)) THEN
  21.     REPEAT
  22.       Regs.ah := 2;
  23.       Regs.dx := Lprn;
  24.       Intr($17, Regs);
  25.       Code := Regs.ah;
  26.       IF Code <> $90
  27.         THEN
  28.           BEGIN
  29.             CASE Code OF
  30.      $02, $4A : St:= ' Printer is not connected ';
  31.      $00, $10, $08,
  32.      $18, $58 : St:= '   Printer is offline     ';
  33.      $28, $38 : St:= ' Printer is out of paper  ';
  34.      $88, $C8 : St:= '  Printer is turned off   ';
  35.            ELSE St:= 'Output device is not ready';
  36.            END;      {CASE}
  37.            GotoXY(1,1);
  38.            WriteLn(St,' Code #: ',Code);
  39.            WriteLn(' ');
  40.            WriteLn('Please correct the error');
  41.            WriteLn('or press a key to continue')
  42.           END
  43.         ELSE
  44.           Ok := TRUE;
  45.     UNTIL Ok OR KeyPressed;
  46.   IF Ok THEN PrinterOk := Ok
  47. END;                            {PrinterOk}
  48. {********************}
  49.  
  50.   BEGIN
  51.  
  52.   ClrScr;
  53.  
  54.   IF ParamCount <> 0
  55.     THEN BEGIN
  56.            St := Copy(ParamStr(1), 1, 1);
  57.            Lprn := Ord(St[1]) - 48
  58.          END
  59.     ELSE Lprn := 1;
  60.  
  61.   IF PrinterOk(Lprn) THEN
  62.      WriteLn('Printer Ok')
  63.   ELSE
  64.      WriteLn('Printer not Ok')
  65. END.
  66.