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

    {Your're in luck, I just got a new Printer and started writing routines to
    control it (TFDD etc..). These are probably the most important ones:

     note: This routines are not throughly tested on Various Printers.
           Thus it may of may not work on your Type of Printer.
           But, as a rule, experiment With it and have fun............}

    Uses
      Dos;

    Functio PrinterOutofPaper( Port : Byte): Boolean;
    Var
      Regs : Registers;
    begin
      Regs.AH := $02;
      Regs.DX := Port;          { 0=LPT1,  1=LPT2,  2=LPT3 }
      Intr($17, Regs);          { Print Service Please }
      PrinterOutofPaper := (Regs.AH and $20 = $20)
    end;

    Function PrinterReady( Port : Byte): Boolean;
    Var
      Regs : Registers;
    begin
      With Regs Do
        begin
          AH := $02;
          DX := Port;          { 0=LPT1,  1=LPT2,  2=LPT3 }
          Intr($17, Regs)
          PrinterReady := (AH and $80 = $80) and       { Printer Busy?   }
                          (AH and $10 = $10) and       { Printer Online? }
                          (AH and $08 = $00)           { Printer Error?  }
         end
    end;

    Procedure PrintChar(Port: Byte; Ch: Char);
    Var
      Regs : Registers;
    begin
      With Regs Do
        begin
          AL := ord(Ch);             { Char to print            }
          DX := Port;                { 0=LPT1,  1=LPT2,  2=LPT3 }
          AH := $00;                 { Print Char Service       }
          Intr($17, Regs);           { Call Bios                }
        end
    end;

    Procedure BootPrinter( Port: Byte);
     { Initializes IBM- or EPSON- Compatible Printer  }
     { Other Printers may not understand this command }
     { and may produce unwanted results               }
    Var
      Regs : Registers;
    begin
      Regs.DX := Port;                { 0=LPT1,  1=LPT2,  2=LPT3 }
      Regs.AH := $01;
      Intr($17, Regs)
    end;

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