close this bookTidBITS#179   19930607
View the documentMailBITS/07-Jun-93
View the documentThe Internet Starter Kit for Macintosh
View the documentNew PowerBooks Ship
View the documentApple Volume Software Licenses
View the documentCable Conundrums
View the documentSmoothie With A Capital SMOO
View the documentReviews/07-Jun-93
View the documentFoot Notes

Cable Conundrums

by Maury Markowitz, SoftArc -- maury@magic-bbs.corp.apple.com

I draw attention to the article on high speed modems in TidBITS #163.

Incidentally, you need a special hardware handshaking cable for these modems to reach their true potential. This is something of a non-issue, since both companies bundle hardware handshaking cables with their Mac packages, but if your modem comes without one of those cables, you'll have to buy one separately (from the modem companies or from MacConnection) for about $15.

Although it is true that both of these modems (the Practical Peripherals PM14400FXSA and Supra's SupraFAXModem v.32bis) ship with a hardware handshaking cable, we've found that these cables and the vast majority of "hardware handshaking" cables shipped for Mac owners are missing a single - but perhaps critical - pin. The pin I refer to is the infamous "GPi" pin, or "Pin 7," on your Macintosh. Apple defined this pin as a general purpose input (hence the name) but left it disconnected on a variety of low-end machines. The list of Macs that support this pin is, as far as I know, the SE, SE/30, II, IIx, IIcx, IIci, Quadra 700, 800, 900, 950, and importantly, the LC III. None of the low-end Macs like the Plus, Classic, Classic II, Color Classic, LC, or LC II support GPi, and some models of the IIsi support the pin, whereas others don't, seemingly at random. I don't know about the IIvi, IIvx, or Centris machines yet.

The problem originates because the Mac serial port has too few pins for a full RS-232C implementation. Of the 25 pins defined for the RS-232C standard, only the following are needed when talking to smart devices like modems.

     Input              RD
     Output             TD
     Input Handshake    CTS
     Output Handshake   RTS
     Hang up            DTR
     Carrier Detect     CD
     Ring Detect        RI   optional, you can do this in software
     Ground
 
     Note especially the Handshaking and Carrier Detect
     requirements.

It looks like you need only seven pins for a fairly good port, so the Mac should work fine, right? Well, keep in mind that Mac serial ports double as super high-speed RS-422 ports, and some of the pins are used to support this.

In fact, the average Mac only guarantees five pins (perhaps six) that can be used, so in order to support RS-232, the modem cable has to shoehorn the required RS-232C pins into the smaller Mac connector. Here's a list of the available pins and their functions, along with their expanded names in case you weren't sure what HSKi, HSKo, etc. stand for.

     Mac function    Mac name       RS    RS name
     ------------    ---------      --    -------
     RxD             receive data   RD    receive data
     TxD             transmit data  TD    transmit data
     Ground          ground               ground
     HSKi            handshake in   CTS   clear to send
     HSKo            handshake out  RTS   request to send
     GPi             gen purpose    CD    carrier detect

In the past, it was easy to make a cable. Input and Output handshaking were not required for 2,400 bps operation, and Carrier Detect (CD) and Ring (RI) were rarely connected. The resulting cable looked like this.

     Mac function     RS-232 function   Mac pin    DB-25 pin
     ------------     ---------------   -------    ---------
     RxD (receive)    Receive Data      5          3
     TxD (transmit)   Transmit Data     3          2
     Ground           Ground            4 & 8      7
     HSKo             DTR               1          20

This works well for most 2,400 bps applications. However, a few systems required Carrier Detect support in the cable as well, since there is no easy way to support Carrier Detect through software. Users have no major trouble, if the modem fails to hang up the phone, you just turn it off, but a BBS or ARA server has no such ability. You can look for RING in software (because RING can only come in when there is no one on the modem) but you can't look for NO CARRIER in software (because it could appear at any time in the serial stream). A number of programs required another cable with a slight modification for Carrier Detect.

     Mac function     RS-232 function   Mac pin    DB-25 pin
     ------------     ---------------   -------    ---------
     RxD (receive)    Receive Data      5          3
     TxD (transmit)   Transmit Data     3          2
     Ground           Ground            4 & 8      7
     HSKo             DTR               1          20
     HSKi             CD                2          8

You can see the problem - both of the Mac handshaking pins (HSKo and HSKi) are already used, for DTR hang-up and Carrier Detect! These cables prevent using high speed modems at their full potential, something that the manufacturers didn't have to worry about at that time, because the handshaking pins are not needed for low speed. After a few years of this, the most common type of cable is the first of the two listed above, cables that are guaranteed to lead to confusion if you attempt to use them with any high speed modem! Worse, a number of these cables, the ones built for a BBS (the second of the two listed above), simply will NOT work with high speed modems because of a conflict between the need for handshaking and for Carrier Detect.

In these days of high speed modems, the problems for the BBS operator are compounded. Older cables supporting Carrier Detect no longer work with faster modems. The solution for these high speed modems was a new "standard" cable layout.

     Mac function     RS-232 function   Mac pin    DB-25 pin
     ------------     ---------------   -------    ---------
     RxD (receive)    Receive Data      5          3
     TxD (transmit)   Transmit Data     3          2
     Ground           Ground            4 & 8      7
     HSKi             CTS               1          5
     HSKo             RTS & DTR         2          4 & 20
     GPi              CD                7          8

The above layout sports all the same functions as the older cables, and also supports Carrier Detect. The problem is that only the upscale Macs support the GPi pin, so the vast majority of cable manufacturers simply leave off pin 7, and this includes both modems described in the TidBITS review, the PPI and the Supra (at least when we tested them a few months back). Once again all the BBS and ARA operators have been left out in the cold because Carrier Detect is on the GPi pin. Oddly enough, the above cable works with all modems, high or "low" speed, but many modem manufacturers still produce the two varieties of cables, muddying the waters further when they end up at stores where the salesthings seldom know the difference. Recently a friend of mine attempted to buy a "high speed Mac modem cable" from a local computer store and was given the old 2,400 bps pin-out cable. Be warned. [Cables from Celestin Company do support the GPi pin properly -Adam]

Celestin Company
800/835-5514 -- 206/385-3767 -- 206/385-3586 (fax) -- celestin@netcom.com

As I see it, any effort on the part of us Mac users may help in the long run. A simple email or fax to the manufacturers of improper cables goes a long way. If the majority of the modem makers switched to the newer cables, perhaps the problem would disappear in time. If you run a BBS, or are thinking about it, check your cables carefully; odds are they don't support Carrier Detect, leaving you hunting around for a cable that does.

The problem is so bad that late last year we at SoftArc simply started to give out correct cables with all purchases of FirstClass. Believe it or not, it costs us a lot less to give away the cable with our program than it is to support the problems that arise when they attempt to use the cables they have. One common support question here can be solved almost instantly...

"My modem doesn't hang up when someone with the VT-100 interface hangs up the phone," states the customer,

"Switch over to the cable you found in the box and all with be fine," is my programmed reply.

One sad fact remains, even the cable outlined above still doesn't have enough pins. The DTR pin in RS-232C is typically used to quickly hang up the phone, saving you some small amount on a long distance call. In order to support DTR it is cross-wired over to the Output Handshake pin on the Mac, the HSKo. The Mac pulls this pin when the modem is going too fast for the Mac, something that rarely happens with current modems. Unfortunately, v.fast (v.34) looms on the horizon, and some Macs can't run over 9,600 bps, so some setups may require this pin. If this is the case, you'll have to turn off DTR hang-up in your modem (typically by adding &D0 to your modem initialization string) and use it for handshaking instead. You'll note that the wiring above allows this single cable to support either function from the same pin.

Information on the pin-outs, and speed limitations of the Mac serial ports can be found in the Knowledge Base area on our SoftArc Online BBS at 416/609-2250. If there is enough interest, I can post them as a FAQ as well.