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

    ===========================================================================
     BBS: The Beta Connection
    Date: 06-08-93 (20:02)             Number: 819
    From: JEFF PALEN                   Refer#: 777
      To: DAN SABIN                     Recvd: YES
    Subj: PRINTER CRASHING               Conf: (232) T_Pascal_R
    ---------------------------------------------------------------------------
    DS>Does anyone know how you can check from Turbo Pascal that the
    DS>printer is turned on so that you won't get a device error that
    DS>will crash a program?  I can't find anything about this.

    Program  Printer_Status;
    Uses Dos;
    Function PrinterOnLine : Boolean;
      Const
        PrnStatusInt  : Byte = $17;    (*  Dos interrupt *)
        StatusRequest : Byte = $02;    (*  Interrupt Function Call *)

        PrinterNum    : Word = 0;  { 0 for LPT1, 1 for LPT2, etc. }
      Var
        Regs : Registers ;         { Type is defined in Dos Unit }

        Begin  (* PrinterOnLine*)
          Regs.AH := StatusRequest;
          Regs.DX := PrinterNum;
          Intr(PrnStatusInt, Regs);
          PrinterOnLine := (Regs.AH and $80) = $80;
        End;

    Begin (* Main Program *)
      If PrinterOnLine Then
        Writeln('Ready To Print')
      Else
        Writeln('Please check the printer!');
    End.

    ---
     þ RM 1.0  þ Eval Day 4 þ Programmer's do it with bytes and nybbles....
     * Channel 1(R) * 617-354-7077 * Cambridge MA * 85 lines
     * PostLink(tm) v1.06  CHANNEL1 (#15) : RelayNet(tm)

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