Apple Never Gave Them USB. Now, They’re Getting It For Themselves

These days we use USB as a default for everything from low-speed serial ports to high-capacity storage, and the ubiquitous connector has evolved into a truly multi-purpose interface. It’s difficult to believe then, that the first Apple Mac to be designed with a USB interface was shipped without it; but that’s the case with 1997’s grey Power Mac G3.

On the personality board are all the footprints for a single USB 1.1 port, but USB-hungry Apple fanboys had to wait for the translucent iMac and later G3 before they had a machine with the parts fitted. [Croissantking] is righting that particular wrong, by piecing together the missing Apple circuit using parts from contemporary cards for PCs. Over a long forum thread there are a few teething problems, but it certainly seems as though grey G3 owners will soon be able to have reliable USB upgrades.

If omitting USB from a 1997 Mac seems unexpected, it’s as well to remember how slow the first USB versions were. At the time SCSI was king in the high-speed peripheral world, and USB seemed more appropriate as a replacement for Apple Desktop Bus and the serial port. Even when they embraced USB they were reluctant to follow the standards of the PC world, as we remember finding out when for curiosity’s sake we tried swapping the mice and keyboards between an iMac and a Windows PC. We have USB’s success to thank for releasing Mac users from a world of hugely overpriced proprietary peripherals.

If you fancy hacking a ’90s PowerMac, make sure you get one that works.

Thanks [Doug] for the tip.

13 thoughts on “Apple Never Gave Them USB. Now, They’re Getting It For Themselves

  1. “We have USB’s success to thank for releasing Mac users from a world of hugely overpriced proprietary peripherals.”

    But also the other way around: we have Apple to thank for USB’s success.

      1. Before the iMac, USB on PCs was struggling to compete with legacy interfaces such as Parallel ports, serial ports and PS/2 ports for keyboards and mice. For example, Zip drives originally came out in SCSI and Parallel versions. A similar situation existed for Macs: they had SCSI for fast external peripherals (Hard disks, Zip drives, scanners); two serial ports for AppleTalk networking, MIDI, printers, modems and serial transfer; ADB for keyboards, mice and graphics tablets.

        Because the iMac only had USB, it provided a guaranteed market for USB peripherals, which ultimately made USB a de-facto standard for both Macs and PCs.

        https://www.fastcompany.com/3044088/apple-and-usb-a-history-of-adoption-acceptance-acquiescence

        1. That’s kinda true, however the standard existed and the legacy alternatives were either slow (serial) or kinda sketchy (all those parallel devices with passthrough capability that only kinda worked). Things like webcams went USB as soon as it was available and probably any other medium-performance external device was going to do it in a generation or so.

          What it definitely gave us was USB keyboards and mice. PS/2 was well entrenched and there was no compelling reason to switch those to USB until it got so saturated it was cheaper to do so.

    1. I think the same, though it’s not all rainbows and sun shine.
      USB also has introduced disadvantages.

      a) It killed the better Firewire/i.Link (In detail, USB2 did that to Firewire 800 rather)
      b) USB controllers may take up precious space in the UMA (Upper Memory Area). Bad for DOS users who need upper memory.
      c) It caused trouble witg legacy software, like Windows 98.
      Because, USB keyboards/mice have to rely on PS/2 emulation provided by BIOS.
      Unfortunately, this isn’t ideal. Once the USB controller is detected by, say, Windows 98, the PS/2 emulation is gone.
      Simultaneously, the USB keyboard/mice drivers aren’t installed yet. Windows 98 asks the user for input. Without a real, physical DIN or PS/2 keyboard, the installation of the USB mouse/keyboard can’t be finished. Great. Thanks, USB. For killing off all those discreet, individual ports thad had “one job” and fulfilled it properly.

        1. You’re right, it seems. Thanks for the link. 🙂 I think these two blocks of text from the link above speaks for themselves:

          “[..]
          Despite rising Mac sales, Apple’s financial situation remained dire. The company needed more income. After being informed of IBM’s hundreds of millions in yearly patent revenue, CEO Steve Jobs authorized a change in FireWire’s licensing policy. Apple would now charge a fee of $1 per port. (So if a device has two ports, that’s $2 per unit.)

          The consumer electronics industry was outraged. They saw it as untenable and unjustified. Intel sent its CTO to talk to Jobs about the change, but the meeting went badly. Intel decided to withdraw its support for FireWire—to pull the plug on efforts to build FireWire into its chipsets—and instead throw its weight behind USB 2.0, which would have a maximum speed of 480 megabits a second (more like 280, or 30 to 40 MB/s, in practice). [..]”

    1. Isn’t this a case of OHCI vs UHCI? As far as I understand, the former handled more in the hardware (like interrupt endpoint polling), the latter required software to do most of the work. Unsurprisingly, the motherboard tested in this video uses UHCI.

      1. Dont you mean surprisingly? https://docs.freebsd.org/en/books/arch-handbook/usb/#usb-hc
        “There are currently two specifications for host controllers available: Universal Host Controller Interface (UHCI) from Intel and Open Host Controller Interface (OHCI) from Compaq, Microsoft, and National Semiconductor. The UHCI specification has been designed to reduce hardware complexity by requiring the host controller driver to supply a complete schedule of the transfers for each frame. OHCI type controllers are much more independent by providing a more abstract interface doing a lot of work themselves.”

        Chip used on Apple personality card from the article is CMD 0670, pin and function compatible with OPTi Firelink (82C861) and FireBlast (82C871) PCl-to-USB Bus Bridges. OHCI.

        My link indeed uses UHCI compatible VT82C586B. Afaik the problem manifesting in the video could be mostly attributed to Bios USB Legacy mode (ps2 keyboard emulation) running in SMM (ring −2) so every interrupt is transitioning rings and CPU modes. I havent seen anyone do really comprehensive investigation of USB 1.0/1.1 performance penalty (keyboard legacy mode, pendrives, dos and windows, with drivers not installed/installed/disabled etc), but with USB 2.0 (125us uSOFs) its brutal on Socket 7 systems even when sitting on desktop doing nothing with one pendrive plugged in even with USB card disabled in Device Manager :o.

        I plead ignorance when it comes to low level UHCI/OHCI programming, but I hope Intel was smart enough to put some automation and not required 1000 interrupts per port just to send SOFs.

Leave a Reply to JoshuaCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.