[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]