[sci.electronics] Help wanted connecting a Tandy serial printer to an AT.

bghauk@watdragon.waterloo.edu (Brian G. Hauk) (11/16/90)

The Printer No-Go Scenerio:
An old Tandy printer (designed for use with the TRS 80) is connected to the 
serial port (com1) of an AT.  Both ports conform to the RS232C specification.  
A cable makes the connections shown using all three available printer signals.
When `copy filename com1:' is executed from the DOS command line, a single 
line of `filename' is printed, followed by a message similar to, `error 
writing device com1: abort, retry, ignore?'  Both ports use the same parity, 
number of stop and data bits and baud rate (2400 - the printer is rated for it).

Choosing `retry' or `ignore' causes another line to be printed, which is 
followed by the same message.

             Printer                             Computer
        PIN     Function                    PIN       Function
------------------------------------------------------------------------
        2       Busy (active low)   --x-->   5        clear to send
                                      |
                                      |-->   6        data set ready

        3       Gnd                 ----->   7        Gnd

        4       Data                ----->   2        Transmit

It makes sense to me to use all connections as shown except for pin 6,
which insists on being connected before the printer prints anything.
My guess is that there's a `handshaking' problem.  Can you figure it
out?  Thanks in advance.

Brian Hauk (bghauk@watdragon.waterloo.edu)

cgordon@vpnet.chi.il.us (Crash Gordon) (11/20/90)

>Author: [Brian G. Hauk]
>When `copy filename com1:' is executed from the DOS command line, a single 
>line of `filename' is printed, followed by a message similar to, `error 
>writing device com1: abort, retry, ignore?'

>Choosing `retry' or `ignore' causes another line to be printed, which is 
>followed by the same message.

>My guess is that there's a `handshaking' problem.

You're right.  The printer has no buffer (or a small one), so while it's
doing a CR/LF sequence it drops its BUSY line.  This is supposed to tell the
PC to stop sending data, however when DOS sees CTS and/or DTR deasserted, it
signals a device fault.

The fix is to tell MODE to retry forever on device errors.  This is done by:
     C> MODE COM1:1200,n,8,1,P
The P (for  Printer) is the key here.

-----------------------------------------------------
Gordon S. Hlavenka            cgordon@vpnet.chi.il.us
Disclaimer:                Yeah, I said it.  So what?