/***************************************************************************** * Change Log * Date | Change *-----------+----------------------------------------------------------------- * 24-Jan-86 | [1.306] Created change log * 24-Jan-86 | [1.306] printer_ready() now takes argument * 24-Jan-86 | [1.306] Added test on bit 0x20; printer which is not even * | connected returns this code * 25-Feb-86 | [1.379] include <> => include "" * 19-Nov-91 | [1.428] printer_ready => physical_printer_ready * 2-Jan-92 | [1.5] parameters now consistent *****************************************************************************/ #include "dos.h" #include "boolean.h" #include "rdy.h" /**************************************************************************** * printer_ready * Inputs: * int n: printer id * Result: boolean * true if printer is online (or n=-1) * false if printer is offline ****************************************************************************/ boolean printer_ready(int n) { union REGS inregs; union REGS outregs; if(n < 0) return true; inregs.h.ah = 2; /* read printer status */ inregs.x.dx = n; /* for lpt 0 */ int86(0x17,&inregs,&outregs); /* BIOS call 17 - printer support */ return (outregs.h.ah & 0x28) == 0; }