laser-lovers@uw-beaver (02/23/85)
From: ihnp4!ulysses!jes@uw-beaver.arpa (Jonathan Shopiro) We are running a Xerox 2700 II printor on a Vax 750 under 4.2 BSD. The 2700 has a Dataproducts interface and we use a MDB Systems LP-11 board to hook the printer to the Unibus of the Vax. We use Xroff from Image Network as our typesetter and various homebrew software for spooling, lineprinter-style formatting, etc.. We are pretty satisfied with it -- it certainly gets a lot of use. I should warn you that there is a race condition in the Unix line printer driver, lp.c. It sends characters to the printer, checking after each one to see if the printer is busy. If it is, it turns on the interrupt bit (in the LP-11 board) and waits for the interrupt. What can happen is that the printer is busy after a character is sent but it becomes ready before the driver has a chance to set the interrupt bit. In that case the driver waits for an interrupt that will never come. Fixing this will prevent a lot of printer hangs. All you have to do is be sure the printer is still busy after you set the interrupt bit, and if not, turn the interrupt bit off and go back the the character loop.