GeoPort

GeoPort is a serial data system used on some models of the Apple Macintosh that could be externally clocked to run at a 2 megabit per second data rate. GeoPort slightly modified the existing Mac serial port pins to allow the computer's internal DSP hardware or software to send data that, when passed to a digital-to-analog converter, emulated various devices such as modems and fax machines. GeoPort could be found on late-model 68K-based machines (the AV series) as well as many pre-USB Power Macintosh models and PiPPiN. Some later Macintosh models also included an internal GeoPort via an internal connector on the Communications Slot. Apple GeoPort technology is now obsolete, and modem support is typically offered through USB.

AppleBus and LocalTalk
Early during the development of the Apple Macintosh, Apple engineers decided to use the Zilog 8530 "Serial Communications Controller" (SCC) for most input/output tasks. The SCC was relatively advanced compared to the more common UARTs of the era, offering a number of high-speed modes and built-in software for error checking and similar duties. The speed of the system was based on an external clock signal sent to it by the host platform, normally up to about 1 Mbit/s, which could be "divided down" to run at slower speeds as low as 300 bit/s. The SCC had two channels, which could be run at different speeds, and even different voltages, to allow communications with a wide variety of devices and interfaces.

Initially the engineers had envisioned using the SCC to support a packet-based protocol known as "AppleBus". AppleBus would allow peripheral devices to be plugged into a daisy-chain configuration in a manner surprisingly similar to the modern Universal Serial Bus. However, as development continued, Apple's networking project, AppleNet, was being canceled due to high costs and a rapidly changing marketplace. Team members working on AppleBus quickly shifted gears, producing the LocalTalk system running on the SCC ports rather than AppleNet's plug-in expansion card.

LocalTalk relied on clocking from the CPU that was divided down to produce an output at roughly 230.4 kbit/s. Nodes on the network remained in sync using clock recovery. This allowed the entire system to be run over a simple three-wire connection, or two-wires in the case of PhoneNet. As the ports also include the clock pins, it was possible to override the internal clock signal and run the system at much higher speeds, as was the case for Dayna and Centram products that ran between 750 and 850 kbit/s.

However, as the SCC had only three bytes of buffer space, it was critical that the ports be read as quickly as possible to prevent a buffer overflow and loss of data. This was not an issue for networking protocols, where lost packets are assumed and dealt with in the network stack, but represented a serious problem for RS-232 data which had no internal form of flow control in the data stream. As a result, performance on a Mac Plus was generally limited to about 9600 bit/s in RS-232 mode, and could only reliably maintain half of that if LocalTalk was active at the same time.

Apple was aware of these problems, and starting with the Macintosh IIfx they attempted to address them by including two dedicated "Input/Output Processors" (IOP), customized MOS 6502s running at 10 MHz. The IOPs offloaded the low-level driver code from the host CPU, running the floppy disks and serial ports, only interrupting the CPU when there was data to transfer. The IIfx also introduced a DMA mode for the SCSI-bus, but this was not available for use by the IOPs. The IOPs also appeared on the Quadra 900 and Quadra 950.

AV and GeoPort
After the early Quadra machines, Apple started a short-lived experiment including AT&T 3210 digital signal processors (DSP) in the "AV" series machines (the 840AV and 660AV). The DSP was primarily intended to offer audio and video digitization support, accessed though the custom 60-pin "Digital Audio/Video" (DAV) port on the rear of the machines.

DSPs were also commonly used at that time as the basic building block of high-speed modems. Using the relatively advanced 3210 would offer higher performance than existing modems, which used lower-end DSPs, and much better performance than softmodems using the host CPU. All that would be needed was a suitable external analog-to-digital converter, or "line adapter" as it was referred to in Apple terminology.

However, the 60-pin AV connector was not suitable for such connections, and users expected to plug "modems" into the modem port. Although the existing serial ports could be adapted to run in "AV mode" in the same fashion that the older versions could run in RS-232 or networking mode, the line adaptor required more power that the port could supply. Apple solved this problem by adding a 9th pin to the existing 8-pin Mini-DIN connector. The result was GeoPort.

In GeoPort mode the SCC was placed in a high-speed mode using external clocking, similar to the earlier high-performance LocalTalk replacements. The DSP then generated signals and sent them over the serial bus to the adapter, which converted them to analog and amplified them to telephone levels. In GeoPort mode, speeds up to 2 Mbit/s were supported.

One widely known device to make use of the GeoPort was Apple's own "GeoPort Telecom Adapter". Initially released as the "pod" with the AV Macs in 1993, it later became its own separate product in early 1995 when it was released for PowerPC-based Macintosh machines that did not include AV-related hardware out of the box. Apple later incorporated GeoPort lines into an edge connector on the motherboard of certain Mac models known as the Communication Slot, preserving them on the later Communication Slot II. Three adaptors would eventually be sold: the original pod, the internal version, and an updated pod known as the GeoPort Telecom Adapter II. All used standard RJ-11 phone line connectors.

Initially the adapter driver software could support speeds up to 9600 bit/s, but later upgrades introduced full V.34 compliance, running at up to 33.6 kbit/s. In practice the GeoPort Adaptors tied up huge amounts of CPU time, and led to performance problems throughout the system. They were also notorious for poor quality connections, dropped calls and poor support from existing software; many pundits recommended not using them.

SAGEM also introduced an ISDN adaptor for GeoPort, the "Planet-ISDN Geoport Adapter", or SPIGA, which they now sell in a USB version. Global Village also produced a variant of its compact Teleport Modems for Apple Performas and third-party Mac computers that used the 9th pin to supply power, but these were true hardware modems, not GeoPort devices.

Apple's first two QuickTake digital cameras (100 and 150) also supported the GeoPort protocol for transfer between the camera and GeoPort-equipped Macintosh computers.

As a "standard"
During the evolution of GeoPort, the telecommunications market was undergoing major changes with the introduction of newer all-digital PBX systems. A number of these companies offered some sort of computer telephony integration, although they were all based on their own standards, typically connected to the computers via a serial port at relatively low speeds. Although these signals could have been routed using existing networking standards like Ethernet, most companies used custom systems, like Switch56.

Apple started an effort to promote GeoPort as a standardized computer interface to PBX systems. They envisioned different GeoPort adapters for different back-end systems; a Switch56 interface could be used with Northern Telecom systems, while another would be used to connect to the InteCom switches that Apple used. Apple claimed that the "same GeoPort phone pod will be able to support TAPI applications on a Windows PC and Telephone Manager applications on a Mac."

To connect those systems to the Macintosh, in particular, Apple created the Macintosh Telephony Architecture (MTA) and promoted it as a standardized telephony application program interface. The MTA consisted primarily of three parts, the "Telephone Manager" which handled call-control, the "Telephone Tool" that mapped Telephone Manager commands onto specific hardware, and finally a set of telephony-related Apple Events that would allow simple operation from any scripting-aware Macintosh program. MTA was essentially Apple's analog of Microsoft's TAPI or Novell's TSAPI.

To promote the system, in late 1994 Apple organized the Versit alliance along with AT&T, IBM and Siemens to attempt to standardize the commands that the PBX systems responded to. Novell announced that they would adapt TSAPI to work on top of the Versit standards. All of these efforts were hampered by a lack of standardization among PBX vendors, and their lack of real support for GeoPort adapters.

After two years of effort with little to show for it, Apple eventually gave up on Versit, and telephony in general. The main problem was that the various PBX companies relied on vendor lock-in to keep their existing customers coming back to them for newer products, so the very concept of a standardized system was seen as a problem rather than a solution. Lip-service was paid to the concept in order to have an answer to those predicting such systems would become common. Additionally there was no support for high-speed serial on the basic PC, so users would have to buy an add-on card if they were going to use GeoPort, at which point it made just as much sense to buy a custom adaptor on a different card.

The GeoPort was dropped, along with SCSI and ADB, when Apple introduced the iMac in 1998; early demonstration models had a software modem based on the GeoPort Telecom Adapter's technology, but this was replaced with a hardware 56K modem by the time the iMac shipped.

Pinouts
The table below shows the name and purpose of the various pins in the GeoPort-enabled serial connector when used in GeoPort, RS-422 (LocalTalk) and RS-232 modes.

Pin #  GeoPort    RS-422    RS-232    Name 1     SCLK       HSKo      DTR      Serial Clock (out), Handshake Out, Data Terminal Ready 2     SCLK       HSKi      DSR      Serial Clock (in), Handshake In, Data Set Ready 3     TxD-       TxD-      TD       Transmit data (-ve signal) 4     GND        GND       GND      Cable ground 5     RxD-       RxD-      RD       Receive data (-ve signal) 6     TxD+       TxD+               Transmit data (+ve signal) 7     TxHS       GPi       CD       Wakeup/DMA Request, General Purpose input, Carrier Detect 8     RxD+       RxD+      (ground) Receive data (+ve signal) 9     +5 V                          Power, 350 mA maximum