Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!rutgers!husc6!panda!genrad!decvax!tektronix!hplabs!hp-pcd!bobm From: bobm@hp-pcd.UUCP Newsgroups: net.micro.pc Subject: Re: Printer status in MSDOS 2.X Message-ID: <15200037@hpcvlo.UUCP> Date: Fri, 17-Oct-86 14:39:00 EDT Article-I.D.: hpcvlo.15200037 Posted: Fri Oct 17 14:39:00 1986 Date-Received: Tue, 21-Oct-86 06:34:34 EDT References: <160@darth.UUCP> Organization: Hewlett-Packard - Corvallis, OR Lines: 22 Nf-ID: #R:darth:-16000:hpcvlo:15200037:000:1030 Nf-From: hpcvlo!bobm Oct 17 10:39:00 1986 The "Not Ready" error occurs because the PRN driver is returing an error code to DOS on a status call - you're right, that's not such a hot design. What you need to do to work around the problem is take over int 24H - the Fatal error abort address. When this routine is called (by DOS on a device error), the low half of register DI contains the driver error code (2 for Not Ready, 9 for out of paper), BP:SI points to the device driver header, and bit 7 of AH is 1 if the error was a non-disk (block) error. You need to look at this bit, and the device name (BP:SI+0AH) to determine if the error was from the printer or another device. If it was from the printer, you can immediately set AL = 0 and IRET, This will return to DOS and tell it to ignore the error. If it was *not* a printer error, you should jump to the old int 24H vector (Don't use a call - this stuff is stack-dependent), which will do the standard "Abort, Retry, Ignore" prompting. See the DOS Tech Ref Manual for more info. Bob May hplabs!hp-pcd!bobm