HyperCard Serial Port Toolkit: Port "B" Data Loss Problem


If you are using the HyperCard Serial Port Toolkit to read data coming into
your Macintosh on both serial ports, you may experience problems with Port
B (the printer port) losing data. For example, this can happen when
inserting a floppy disk.
This problem is not due to either the serial driver or the interrupt
priority. The suggested limitation to the printer port of 300 baud
communications or less and output-only connections is caused by the Disk
Driver. The Disk Driver, which must turn off interrupts during disk
accesses, will buffer the modem port only: it does NOT buffer the printer
port.

While you can tell the sender to stop sending before writing to a floppy
disk, there is no safe and supported way to get around a disk insertion.
You should not be using the two ports in this way, since communications of
both ports cannot be guaranteed. If the program is to work on a Macintosh
II, CommCard from SuperMac Technologies will allow additional serial ports
on NuBus which will be free of the system interrupts.

If the stack is to run on a Macintosh Plus or Macintosh SE, use a NetSerial
from Shiva or a C-Server from Solana Electronics. HyperCard will continue
to think it is talking to the printer port as a serial device. The
NetSerial or C-Server software will convert the serial information into
AppleTalk packets, which will be converted by the C-Server or NetSerial
back into serial communications. These devices contain buffers that will
resend any AppleTalk packets lost when interrupts are turned off by the
receiving Macintosh, as in the case of an inserted disk. This is the same
as occurs during any AppleTalk transaction from the printer port.

Editor's Note 22 June 1992: Solana has discontinued business to our knowledge,
so we are unable to refer you to them directly for further information.

For more information, search under: "SuperMac", and "Shiva".


Published Date: Feb 18, 2012