by Nick Rothwell -- firstname.lastname@example.org
There may be problems with the PowerBook serial ports, related to the ROM power saving code. I've had direct comments from software houses about this, and although I don't want to name them publicly without their consent, I do think there are some serious problems. I should add here that I don't own a PowerBook; I was preparing to buy one before these problems came to light.
My main application is MIDI (high-speed serial communications to drive synthesisers, other electronic musical instruments, and outboard effects). Macintoshes have a good deal of high-quality software for working with MIDI data in a number of ways, as well as a good environment for such software to run in (such as Opcode's OMS and Apple's MIDI Management Tools, which allow several applications to address instruments through various hardware interfaces attached to a Mac's serial ports, or to address each other, simultaneously).
I use an SE/30 for my MIDI work, and was seriously contemplating a PowerBook 140 as a second machine. The PowerBooks are perfectly suited to live performance, being small, relatively solid, and extremely powerful as MIDI storage and control devices.
I started hearing rumours about problems doing MIDI with the PowerBooks, and started chasing these up. The situation seems to be as follows (with some conjecture): the power-saving routines in the PowerBook ROM's occasionally kick in and disable interrupts for one millisecond or so, regardless of whether any of the power saving options are enabled or not. One millisecond is enough time for an overrun to occur on the input to the SCC at high serial speeds. The upshot is that characters are lost on input. I suspect that there's no problem at low speeds (such as 2400 bps modems). (Question: is AppleTalk a problem?) But MIDI runs at 31.25 kbps and is not at all fault-tolerant. Lose one byte in a large data dump and it can't be recovered.
The "official" word is that the PowerBooks are fine for sequencing, which involves fast but sparse traffic of two- or three-byte messages (notes, controllers, and so on), but they're unusable for MIDI archiving and librarian use. My personal opinion given the above diagnosis is that the PowerBooks are not even reliable for sequencing: I suspect that even short messages can get corrupted on occasion, which is bad if we're dealing with important instrument configuration messages in live performance.
I've spent a little time doing MIDI on a PowerBook 100, without any problems. This could be because I was using Apple's MIDI Management Tools (which may, or may not, work around the problem; I suspect not from what I've been told), or it could be because I was using a PowerBook 100 whose ROM's are based on those in the old Portable. Perhaps the problems only occur in the 140 and 170. Or maybe I was lucky: MIDI data is sufficiently sparse that the interrupt disabling will rarely come when data is hitting the ports, and the odd dropped byte can probably go unnoticed - unless it happens to be an important one. My understanding is that this problem affects input only; transmission from the PowerBooks is fine, and my own experiments suggest this to be the case.
So, here I was, wondering why this problem had materialised with respect to MIDI and not ordinary high-speed serial communications such as 9600 bps modems. Then, this morning I received a mail message about reports of PowerBooks dropping characters when using Global Village's fast internal modems; the problems have been tracked down to straight RS-422 serial connections as well.
The developers I mentioned earlier are pressuring Apple to explain and fix the situation. I don't know what form such a solution would take: perhaps new ROMs or an OS patch? Certainly, I'll be pressuring Apple as well, since this problem makes a PowerBook useless for my purposes, and so a purchase hangs in the balance. I can't phone 800/SOS-APPL from this side of the pond (Apple UK doesn't offer such customer-friendly services at all), but if this problem concerns you, you might want to pick up the phone and say hello to them.