[comp.sys.sgi] Advice needed interfacing a printer

HCART@VAX.OXFORD.AC.UK (07/06/89)

    Can anyone offer some advice about interfacing a printer to a 3130?
I have a malibu dual mode 200 which I would like to attach to the 3130.
It responds to the print spooler, but it prints rubbish. However, the self-test
mode of the printer prints correctly.

    I have made a link between /dev/ttyd3 (the printer is on port 4) and
/dev/lp and have then used lpadmin to introduce the printer to LP.

    However, it makes little difference whether I use the 'dumb' filter
in /usr/spool/lp/model, or edit it to make a filter of my own;  I just
get different amounts of rubbish coming out of the printer. I assume my
filter is simply inappropriate for the printer.

    The printer is set to run at 600 baud (selectable from 110 to 9600),
no parity, start/stop o/p control, ASYNCH data format, 1 start bit,
8 data bits, 1 stop bit. Cable Pins connected are 1-1, 2-3, 3-2, 4-5, 5-4, 6-6,
7-7, 8-20, 20-8.

    I know I have to place a suitable stty line somewhere in the dumb
filter to customise it to my printer, but all reasonable (to me!) stty
lines I put in seem to give me rubbish. Also, it is not clear to me just where
the stty line must go in the filter (so I have put it at the start).

    Can some knowledgable person offer a few words of help, please?
Am I missing a step somewhere? Any comments welcome!

Many thanks.

Hugh Cartwright, Physical Chemistry Lab, Oxford University, UK

   Fax:    Oxford (0865)-275410

   JANET:  HCART@uk.ac.oxford.vax
   BITNET: HCART@uk.ac.oxford.vax@ukacrl
           or     HCART%VAX.OXFORD.AC.UK@CUNYVM.CUNY.EDU
           or     HCART%vax.oxford.ac.uk@nss.ns.ucl.ac.uk

blbates@AERO4.LARC.NASA.GOV ("Brent L. Bates TAD/TAB ms294 x42854") (07/07/89)

  I have used several printers on our 3130 with out too much problem.
(That is after I got everything working.)  I have conneted a HP ThinkJet,
a Seiko CH-5201 color hardcopy unit, a Tandy 24-pin dot matrix printer,
and a Tektronix 4693D printer to our 3130 through the serial ports
/dev/ttyf2 and /dev/ttyf3.  I had to use a serial to parallel converter
for the last three and some extra hardware to get the Seiko to work.
Follow the directions in section 7.9, pages 7-21 through 7-24 in the
IRIS Series 3000 Owner's Guide V3.0 or Appendix C, pages C-21 through
C-23 in the V2.0 Owner's Guide.  However, before doing so put the
appropriate filter into /usr/spool/lp/model.  Right now I use a Tektronix
4693D connected to the parallel port and two remote printers.
It has been long time since I used the serial ports for printers, I think
the interfaces still work.  I think one of the key things in getting the
interfaces to work was to use the timing functions of stty instead of null
character padding.
   I am enclosing the interfaces I used on these devices, I used the same
interface for the Thinkjet and Tandy printers:

-----------------------------Cut Here--------------------------------------

# lp interface for thinkjet printer
#
#       SCCS @(#)thinkjet   1.1
# @(#)$Header: /ws/2.0/2.0src/usr/src/usr.bin/lp/model/RCS/dumb,v 1.2 85/03/15 15:19:59 bob Exp $
# $Log: thinkjet,v $
# Revision 1.2  85/03/15  15:19:59  bob
# Revisized 8801.27 Brent L. Bates
# Added initial blank line (for csh) and what
# 

log=/usr/spool/lp/etc/log/thinkjet-log
seqid=$1
echo "Start $seqid - `date`" >> $log

stty 9600 ixon ixany ixoff -ofill cr0 nl0 tab0 bs0 ff1 vt0 0<&1
copies=$4
shift; shift; shift; shift; shift
files="$*"
i=1
while [ $i -le $copies ]
do
        for file in $files
        do
             cat "$file" 2>&1
             echo "\014"
        done
        i=`expr $i + 1`
done
echo "End $seqid - `date`" >> $log
exit 0
-----------------------------Cut Here--------------------------------------

# serial lp interface for seiko & Tektronix 4693D printers
#
#       SCCS @(#)thinkjet   1.1
# @(#)$Header: /ws/2.0/2.0src/usr/src/usr.bin/lp/model/RCS/dumb,v 1.2 85/03/15 15:19:59 bob Exp $
# $Log: thinkjet,v $
# Revision 1.2  85/03/15  15:19:59  bob
# Revisized 8807.01 Brent L. Bates
# Added initial blank line (for csh) and what
# 

log=/usr/spool/lp/etc/log/thinkjet-log
seqid=$1
echo "Start $seqid - `date`" >> $log

stty raw cs8 19200 -cstopb cread -clocal ixon ixany ixoff -ofill cr3 nl1 tab2 bs1 ff1 vt1 0<&1
copies=$4
shift; shift; shift; shift; shift
files="$*"
i=1
while [ $i -le $copies ]
do
        for file in $files
        do
           cat "$file" 2>&1
           echo "\0"
        done
        i=`expr $i + 1`
done
echo "End $seqid - `date`" >> $log
exit 0
-----------------------------Cut Here--------------------------------------
  I hope this helpful.
--

	Brent L. Bates
	NASA-Langley Research Center
	M.S. 294
	Hampton, Virginia  23665-5225
	(804) 864-2854
	E-mail: blbates@aero4.larc.nasa.gov or blbates@aero2.larc.nasa.gov