The workaround is to use XON/XOFF handshaking.
Following is an explanation of what happens when switching between an Apple
IIGS and an Apple IIe. Also included is an explanation of why this may not be a
problem with ImageWriters, and why a MicroBuffer may cure this as well.
Set-Up:
-------
Our configuration to test this problem was an Apple IIe equipped with a Super
Serial Card, an Apple IIGS, and an ImageWriter II, along with two commercial
switch boxes. Line status was monitored with a Data Specification RS-232
Break-Out box. A Fluke 8050A Digital Multi-Meter was used to measure the
voltage levels. Software used was AppleWriter II with the same file open on
both systems.
The Test:
_________
When switching between the systems, transitions were noted on the Transmit
line, which caused DTR from the printer to go into the high state, effectively
shutting off communication with the connected computer. If the printer does a
reset in between the systems, the now-connected system prints correctly. If
there is no reset when switching, it is necessary to reset the printer by
either deselecting/selecting, as you stated, or by powering off the printer,
and powering it on again. Either of these actions resets the DTR line and
re-establishes communications with the computer.
Our first thought was to use a switch box with a make-before-break switch. The
reason this would not work with Apple IIe and Apple IIGS systems connected is
the difference in voltage levels between the systems. The Apple IIGS system
output device, AMD 26LS30, is supplied with +/-5VDC, while the Super Serial
Card output device, TI 75189, is provided with +/-12VDC. This means that the
Apple IIGS outputs -4.7 volts for a "Low" signal while the Apple IIe outputs
-9.7 volts. When the switch is thrown from one position to the other, here's
what happens:
Ground Level ________ ___________
-4.7 __/\\ /\\______
\\ /
-9.7 __ __
GS-> IIe IIe-> IIGS
With the switch type a break-before-make, when the switch opens between
contacts, the voltage level rises to Ground, then drops to a Low level again.
This positive transition to Ground causes the printer to see either a start bit
or a DSR level shift from the computer, which then sets DTR false. If the
switch box is a make-before-break switch, there would be current flow from the
Apple IIe into the Apple IIGS output because of the different voltage level in
the output "Low" signal, which could cause damage to the interface chips in the
Apple IIGS.
XON/XOFF works because the printer sends/receives the XON/XOFF handshaking
over the normal data communications lines, pins 2 and 3, and even though
these lines are affected by the level transitions caused by the switch
action, these transitions are not recognized as XON/XOFF by the printer or
the computer. Because the equipment doesn't see these transitions as
requests to halt data flow, there is no attendant response to incorrect
data by the printer, and the information flow continues.
The ImageWriter has 75189 receiver chips installed, functionally equivalent to
the 1489 Line Receiver, which are much less sensitive to level transitions
because they are designed to operate at lower frequency limits. This causes
them to be much more tolerant of the level transitions that occur during the
actual time of the switch. ImageWriter IIs have 26LS32s for receivers. They
are designed for higher speed use, and thus are much more sensitive to the
level transitions occurring. This is our interpretation of why this problem
does not exist with the ImageWriter.
A MicroBuffer might cure this problem because the ImageWriter II responds to
the level transitions occurring during the switch time, but when this
transition is sent to a buffer, it knows it is not data, so it ignores the
change in potential between connections.
To use XON/XOFF with older software, it is necessary to use a pre-boot program
to set up the Super Serial Card before using the software. On the Apple IIGS,
if you cannot gain access to the Control Panel from within the application, the
pre-boot needs to be used there, too.
The pre-boot program should look like this in DOS 3.3 or ProDOS:
10 D$=CHR$(4)
20 PRINT D$;"PR#1"
30 PRINT CHR$(9);"X E";CHR$(13)
40 PRINT D$;"PR#0"
Enter this short program into the system in immediate mode prior to starting up
the systems, or save it on disk as either a HELLO (DOS 3.3) or STARTUP (ProDOS)
program to run before the software boots.
Bottom Line
-----------
Change the ImageWriter II to XON/XOFF handshaking by setting SW 2-3 Open, and
the problem of not being able to print from multiple systems should vanish. It
is less convenient, but we have not been able to make the setup fail using this
method.