|Column Tag:||Mac Hardware
MacBox and the Serial Sermon
By Rev. Willis, MacFugNews
Once upon a time in a galaxy far, far away...a humble servant of Big Byte took upon himself the serial expansion of the blessed Mac. However, before enlightenment was acheived, much wisdom had to be revealed unto and understood by the humble servant. In fact, much self-flagellation, usually with an RS-232 cable, was necessary to gain the wisdom needed to successfully expand the Macs serial ports.
All hi-tech parables aside, my travail resulted from the desire to have my Mac talk to my modem, an X-10 Powerhouse appliance controller and a Radio Shack Model 100 portable computer, and do so without going through a cable swapping boog-a-loo. This was accomplished with an inexpensive switch and some simple wiring. Ive included some pictures and diagrams to help the more ambitious (and cheap, Mac switch boxes are commercially available) of you duplicate the task.
Excluding the SCSI port and the second disc drive port, the Mac talks to the world through two serial ports. One of these serial ports is usually configured through the Chooser software to talk to the Imagewriter. The other port can be configured by Chooser as an Appletalk connection, or, using communications software such as Red Ryder, as a modem port. Also, using an adaptor box and MIDI software, these serial ports can talk to musical instruments such as a DX-7 sythesizer. Finally, one of these ports can be used to talk directly to another computer without the modem/phone line connection assuming both machines are in close proximity. Some computers, such as the Incredibly Bad Machine and the Model 100, normally talk to printers through a parallel port; however, the Imagewriter/Mac combo do it serially.
The RS-232 data communications standard is used by most personal computer systems for data transfer. There is also Ethernet, Appletalk and others, but were talking proletarian stuff here, not big-time University networking. The Mac uses an improvement of the RS-232 standard called RS-422. This improvement allows for longer cable lengths to carry digital data, necessary for Appletalk networks. Thankfully, RS-422 and RS-232 protocols are generally compatible. The RS-232 standard defines the DB-25 connector pinouts (check the diagrams included) as well as describes data terminal equipment (DTE) sending digital information to data communications equipment (DCE) over an analog phone line to another DCE-DTE combo (digital data poops out after 100 feet or so and must be converted to an analog signal for the long haul). DTEs are usually computers, while DCEs are modems. They are connected with straight cables, that is, the TXD pin on the DTE is connected to the same TXD pin on the DCE. The internal wiring of the equipment makes sure everthing is copesetic. The DTE/DCE pairs use software handshaking to control the communications connection, usually XON/XOFF protocol. If one pair wants to pause communications, it issues a little ASCII data code ,Control Q, to tell the other pair to stop transmitting; a Control S resumes communications. If you ever used Red Ryder to access Compu$erve or Genie, you may have used the Q and S radio buttons to control the information zipping across the screen at a rate faster than you can read it.
However, as occurs with all good standards, they get modified to accomplish new tasks. A problem arises when two computers are hooked back-to-back with no modem/phone link inbetween. Now you have a DTE-DTE link which confuses the signal lines on the interconnection cable. So you need a cross or null cable to connect the equipment. In such a cable, the TXD pin from one DTE goes to the RXD pin of the other DTE, and vice versa. If these DTE-DTE combos are a back-to-back computer pair, they usually use a form of software handshaking. However, if a computer is talking to a printer (which usually acts as a DTE), then they may use a form of hardware handshaking: two control lines are crossed and the pins toggled with a logic Hi to indicate the DTEs are ready to communicate. If one DTE toggles its control pin Lo, communications are paused until the pin is again toggled Hi. The control lines usually link the RTS-CTS or DTR-DSR pins. In the case of the Mac and the Imagewriter, the handshaking lines are CTS-DTR. If the IMW needs to pause, the Hi on its DTR pin goes Lo; the Mac detects this new condition on its CTS pin and stops sending data until its CTS pin is toggled Hi again. Got it?
Another problem, and a further bastardization of the RS-232 standard, occurs when two DTEs want to talk to each other using software (XON/XOFF) handshaking but have pins on their serial ports that are expecting hardware handshaking. This situation requires the old fake-out handshaking method. Pins that are normally Hi are jumpered to the pins that expect a Hi before they will allow data transmission to begin. RS-232 cables for the IBM are notorious for this and require jumpering several pins to get the serial port to work. Usually, the normally Hi RTS pin is jumpered to the normally Lo CTS pin, while the normally HI DTR pin is jumpered to both DSR and CD. This fake-out method is very common in situations where multi-conductor cable is not available or where the exact method of hardware handshaking is not known. All in all, the RS-232 standard has become a very unstandard standard.
Anyway, enough sermonizing and on to some constuction details for the ultimate in Mac serial port switching...MACBOX!!! The first detail that needed to be resolved was the 8-pin miniDIN socket used by the newer Macs. The required plugs are impossible to find and wouldnt work well panel mounted into a box. Since my Mac was an updated 512 machine, I had a couple miniDIN to DB-9 adaptor cables that I extended to reach MacBox. Panel mount DB-9s are readily available, so I used two male DB-9s as inputs from the Mac and four female DB-9s as outputs to peripherals. Note when wiring the pins that they are numbered in opposite directions on the male and female connectors (I didnt). The protective and signal grounds are now tied together within the Mac, so only three wires are normally needed to connect serial devices. I included a handshaking line since it was wired that way in my modem cable and is needed for the IMW (the other devices handshake through software XON/XOFF).
Initially everything worked great until I decided to get the M100 to talk to the IMW. First of all, the M100 usually talks to printers through a parallel port. Thankfully, the built-in BASIC accesses the serial port. Also, I have SuperRom installed in my M100 which contains a word processor that accesses the serial port. So, another switch and a little more wiring later, I was soon printing away on the IMW from the M100...sort of. After about a page of data, everything would turn to garbage. Obviously I was overloading the IMWs input buffer, no amount of toggling the IMWs DTR pin was shutting off the M100 from continuing to send data. I soon discovered that while the handshaking pins were active on the M100, there was no firmware (ROM routines) to recognize hardware handshaking. About then Big Byte stepped in and handed me a set of golden tablets containing a M100 mod that would give the M100 adequate hardware handshaking. The mod details involved the piggybacking of a quad nand gate chip inside the M100 to use the DSR line to read the IMWs DTR line. To be more consistent to the Macs way of doing things, I could have easily use the CTS line instead. (See references below)
Soon the M100-IMW connection was yakking away with no problems...except now the M100 wasnt talking to the Mac. I soon realized that I needed to run another wire from the Macs DTR pin to the M100 DSR pin to fake out the M100 even though it was talking to the Mac using software handshaking. Tracing the wiring in the accompanying diagram should reveal the necessary connections.
MacAccess, Hayden Books,1987
Understanding Data Com., TI Library
Imagewriter II Owners Manual
Portable 100 Magazine, 12/87
Modern Electronics Magazine, 5/86