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

    {
    I am writing a Program that Uses the Printer to (whatelse?) print
    out a report.  Now, the problem that I am having is that the Printer
    Function in TP 6.0 (ie Writeln (lst,'BLA BLA BLA');) Dosn't
    check For errors (if the Printer is not on, or is not online)

     You can determine the Various states of the Printer With Intr 17H -
     Function 02H.  The value returned in AH will be:

             bit   if set
               0 - Printer timed out
               1 - unused
               2 - unused
               3 - i/o error
               4 - Printer selected
               5 - out of paper
               6 - Printer acknowledge
               7 - Printer not busy

     For example:
    }
    Function PrinterReady : Boolean;
    Var
      reg : Registers;
      Status : Byte;

    begin
      reg.AH := $02;
      reg.DX := $00;  {..0=LPT1, 1=LPT2, etc }
      intr($17,reg);

      Status := reg.AH and $41;  {..isolate bits 0,3,5 }
      if Status <> 0 then
        PrinterReady := False
      else
        PrinterReady := True;
    end;

    {
    basicaly I need something that weill check and give out the
    NB>famous line ('Printer not Ready (A)bort (R)etry')

    The way I've handled this in the past is to check PrinterReady beFore
    each Write/WriteLn statement (not very eloquant).  A better way to do
    this might be to hook it to an interrupt, checking the status every few
    seconds.
    }

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