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