[comp.sys.cbm] EasyScript to RS232 Printer??

mikef@hpspdra.HP.COM (Mike Fischer) (06/19/89)

Has anyone had any luck getting EasyScript to print to an RS-232 printer?

I'm trying to use both a Diablo 630 and a Qume Sprint 11/40 Plus.  I'm
pretty familiar with RS-232 interfacing in general, and my Amiga talks
to those printers and (at this momont) a 2400bps modem no sweat, all
thru a series of AB, ABX, and ABC switch boxes and a home-brew null
modem adapter.

Both printers will print nicely at 1200 bps until their buffers burp,
after which the Diablo gets pretty garbled, and the Qume just skips
about a paragraph.  This is all with a "3-line" interface setting in
the Control and Command registers such as 8/0, 8/16, 40/96, and 40/112
respectively.  Apparently the X-Off or CTRL-S or DC3 character that
the printer sends to plead impending indigestion is ignored by the C64.

The other alternative is the "X-line" handshake setting.  The ones I've
tried are 8/1, 8/17 as recommended in the EasyScript manual, 40/97,
and 40/113, again Control/Command settings.  The Diablo does no printing
and the C64 immediately shows "Output Error A", which is not explained
in the manual.  The Qume also fails to print, but EasyScript just
hangs like it got a CTRL-S, with no change in the little two-character
window in the upper-right corner of the screen that seems to show
what's going on during an RS-232 output.  If I then open the RS-232
path the little window shows characters ripping past, and I can abort
with the STOP key.

Surely my "homebrew" null modem adapter must be under suspicion, but I
followed the recommendation in the EasyScript manual precisely, then
tried several other permutations that seemed logical with no better
results.  I've also probed the cabling at each juncture to make sure
that the expected RS-232 levels of + and - 6 to 10 volts were getting
thru.

I can also get perfect printing at 300 bps, but this is about half
of the speed capability of the printers.

So the problem is handshaking or data flow control, and the question
is how?  Many thanks in advance for your time with this long note
and any help you can offer.
--
Mike Fischer   mikef%hpspd@hplabs.hp.com  or  hplabs!hpspdra!mikef

NETOPRBH@NCSUVM.BITNET (Brandon Hill) (06/22/89)

I just bought a new printer, and as I had the RS232 driver chips in a
box, I decided to interface using good ole device 2.  Luckily, the printer
had a device busy hardware line which easily interfaced to the CTS signal the
computer uses to synchronize data transmission in X-line handshake mode.

After hooking up TXD, CTS, and GND thru the appropriate driver chips, the
printer worked fine at 1200 bd with EasyScript driving it.  Therefore,
it is possible to use EasyScript to drive an RS232 printer.

The problem results from the standard XON-XOFF sequences which the device
driver ignores, as it doesn't expect input from the printer.  The solution
may be to determine if one of the control signals on the printer indicates
a busy condition.  If you can find such a singal, then EasyScript should
function ok.

Another problem arises from driving the same device from Basic using the
RS232 interface.  It seems that the CHROUT routine for device 2 will
return an error indication of 16 in the status byte and exit when CTS
goes low.  This doesn't normally result in a problem except that the
RS232 send buffer is not purged when the printer becomes busy.  Thus
you are at most 256 bytes behind...which is quite annoying, and you have
to write a bunch of null bytes to flush the buffer.

The solution to this problem seems to be to replace parts of the CHROUT
routine for device 2 to wait until the printer becomes ready and then
print the next character.

Of course after writing the code to make the RS232 driver flush the
buffer correctly, my wife decided that we should get Geos...and my
serial user port driver had to be rearranged into a parallel GeoCable
interface...incompatible with any other program except Geos as far as
I can tell, but it does work.
                                                       BlH

mikef@hpspdra.HP.COM (Mike Fischer) (06/27/89)

Many thanks for the responses so far, but I still have an unanswered
question:

What does it mean when EasyScript gives me "Output Error A" on the
status line at the top of the screen as soon as I try to send the
document to an RS232 printer?

I haven't been able to find a definition for that error message in the
manual.
--
Mike Fischer   mikef%hpspd@hplabs.hp.com    hplabs!hpspdra!mikef