[comp.sys.ibm.pc] LPT3 support

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?