news@cit-vax.Caltech.Edu (Usenet netnews) (12/16/86)
Organization : California Institute of Technology Keywords: printer interface, interrupts From: tim@tomcat.Caltech.Edu (Tim Kay) Path: tomcat!tim In article <295@ima.UUCP> johnl@ima.UUCP (John R. Levine) writes: >Due to the poor design of the IBM printer interface, you can't run the printer >with interrupts -- there's no way to keep from losing the interrupts. Programs Could you elaborate on this? I wrote a printer device driver that had some buffering. This can speed up output to the Epson by a factor of two by overlapping the computation of the next line with the printing of the current one. The driver relied on printer interrupts. It worked reliably for most applications. However, occasionally, an interrupt was lost. It was rather annoying. Timothy L. Kay tim@csvax.caltech.edu Department of Computer Science Caltech, 256-80 Pasadena, CA 91125
johnl@ima.UUCP (John R. Levine) (12/17/86)
The problem with the PC's printer interrupt is quite simple. After you print a character, the printer sends back a 5us ACK pulse to say it's ready for another character. The interrupt request is generated from that pulse. If your PC has its interrupts masked during those 5us, or if it takes longer than 5us for the instruction that's executing to finish, you lose the interrupt. Had the guys at IBM who designed the interface been allowed to speak to the people who bought the printers, they would probably have decided to generate the interrupt from the not-busy line which stays up until you send the next character, and which other machines with working printer interrupts use. Pfui. -- John R. Levine, Javelin Software Corp., Cambridge MA +1 617 494 1400 { ihnp4 | decvax | cbosgd | harvard | yale }!ima!johnl, Levine@YALE.EDU Where is Richard Nixon now that we need him?