[comp.sys.ibm.pc] Flow control between IBM PC and printer

jbn@glacier.STANFORD.EDU (John B. Nagle) (09/11/88)

     I'm losing characters between my PC and Laserwriter.  I assume that
I have flow control problems.  The present setup is:

	PC is running the standard DOS 3.1 PRINT program and driver.
	The cable connection between the PC and the Laserwriter
	has a null modem box from 3M, with

		TX1  -> RX2
		DTR1 -> DSR2
		CTS1 -> RTS1, DCD2

		TX2  -> RX1
		DTR2 -> DSR1
		CTS2 -> RTS2, DCD1
		
	3M calls this a "standard null modem".  It seems strange, in that
	flow control is normally provided via RTS/CTS.  Yet the Laserwriter
	documentation indicates that the Laserwriter tries to do flow
	control on DSR/DTR, which is nonstandard.

	The Laserwriter (a IINT) is in DSR/DTR mode, 9600 baud.
	Postscript files (which are not missing characters) sent to the
	printer lose 1 to 10 characters on rare occasions, perhaps once
	every few pages.

	What are the PC printer conventions on flow control, anyway?
	Where is this documented?

						John Nagle

gts@violet.berkeley.edu (Greg Small) (09/12/88)

= From: jbn@glacier.STANFORD.EDU (John B. Nagle)
= The Laserwriter (a IINT) is in DSR/DTR mode, 9600 baud.
= It seems strange, in that flow control is normally provided via RTS/CTS.
= Yet the Laserwriter documentation indicates that the Laserwriter tries
= to do flow control on DSR/DTR, which is nonstandard.

Actually, DTR/DSR is far more common for flow control than RTS/CTS and neither
were specified for that function (RTS/CTS was for half-duplex line turnaround).

Look in the back of the LaserWriter NT manual under printing on MS-DOS. It gives
the PostScript program to be sent to the LW that sets DTR/DSR flow control.
What they do not mention is that the file must be terminated with Ctrl-D.
Just copy the file to the LW serial port.

	statusdict begin 25 sccbatch exch pop
	4 eq {stop} if
	serverdict begin 0 exitserver
	statusdict begin 25 9600 4 setsccbatch
	Ctrl-D

This also should work for an old LaswerWriter Plus but not the plain LW.

Gregory T Small                                      (415)642-5979
Personal Computer Networking & Communications        gts@violet.Berkeley.EDU
Workstation Support Services - Software Group        ucbvax!jade!gts
267 Evans Hall                                       SPGGTS@UCBCMSA.BITNET
University of California, Berkeley, Ca 94720

cramer@optilink.UUCP (Clayton Cramer) (09/13/88)

In article <14151@agate.BERKELEY.EDU>, gts@violet.berkeley.edu (Greg Small) writes:
> Look in the back of the LaserWriter NT manual under printing on MS-DOS. It gives
> the PostScript program to be sent to the LW that sets DTR/DSR flow control.
> What they do not mention is that the file must be terminated with Ctrl-D.
> Just copy the file to the LW serial port.
> 
> 	statusdict begin 25 sccbatch exch pop
> 	4 eq {stop} if
> 	serverdict begin 0 exitserver
> 	statusdict begin 25 9600 4 setsccbatch
> 	Ctrl-D
> 
> This also should work for an old LaswerWriter Plus but not the plain LW.

Not quite.  Early Apple LasrWriters had a release of PostScript (V17.0,
if my memory serves me right) that didn't have provision for supporting
DTR protocol.  At some point, LaserWriters started coming with the newer
version (V23.0?) that did support DTR as well.

Clayton E. Cramer