Communications ToolBox

Last updated

The MacintoshCommunications Toolbox, generally shortened to CommToolbox or CTB, was a suite of application programming interfaces, libraries and dynamically loaded code modules for the classic Mac OS that implemented a wide variety of serial and network communication protocols, as well as file transfer protocols and terminal emulations.

Using CommToolbox, one could write an application that would seamlessly work over AppleTalk, a modem or any variety of other connections, transfer files using XMODEM, Kermit or other file transfer protocols, and provide DEC VT102, VT220, IBM 3270 and other terminal emulation services. Developers could also write plug-in communications modules known as "Tools", allowing any CommToolbox-aware application to use that connection method.

CommToolbox was claimed by some to be slow and buggy, [1] and received mixed support from developers. [2] Examples of applications using it for simple tasks were common, but single-purpose applications would have higher performance when bypassing system API's implementations and rolling their own.

CommToolbox was initially released independent of the main Mac system releases but was finally integrated and delivered with System 7. The development team was part of the Apple Networking and Communications Division, not part of the main System Software team.

Description

CommToolbox was perhaps one of the first implementations of shared libraries on the early Mac OS. Applications would find installed tools at launch time. In fact, applications could automatically discover and use newly installed tools without having to quit and relaunch.

CommToolbox API's consisted of 4 managers:

The CRM provided the Mac with its first centralized repository to register and enumerate serial devices. Early Macs only had two serial ports and with later Macs allowing expandability, including serial port cards, the CRM filled a critical hole in the Mac OS software architecture. Device manufacturers would create a pair of drivers that provided the same interface as Apple's built-in serial port drivers (but named differently from .AIn/.AOut .BIn/.BOut) and register these drivers with the CRM.

The Connection, File Transfer and Terminal Managers all worked with their respective tools which were dynamically loaded code modules providing the interface between the Manager-specific API and the code implementing the particular functionality. In this manner, an application could be written "agnostically" without implementation-specific knowledge of any particular data connection, file transfer, or terminal emulation protocols. [3] In addition, these tools also provided a set of system-wide standard UI implementations that could be automatically invoked and used for configuration.

Connection Tools provided a byte-oriented communication channel interface, implementing basic functionality such as opening/closing a connection, reading/writing data, as well as callbacks to implement a user interface.

Terminal Tools implemented the character conversion and command string interpretation needed to support any sort of terminal emulator (mainly text terminals, graphics terminal tools were never released), and would be responsible for handling rendering into a QuickDraw GrafPort, user interactions including copying text out of the terminal buffer, and managing keystrokes to send terminal-specific control strings.

File Transfer Tools implemented all of the underlying implementation details involved with file transfers as well as providing callbacks to implement a user interface. [4]

Applications could use either a subset or all of the CTB Managers. A typical terminal emulator application would use all of them, connecting a Connection Tool selected in the Connection Manager to Terminal Tool in the Terminal Manager, and then periodically using a File Transfer Tool in the File Transfer Manager on user request. Such was the case for common terminal emulators like VersaTerm and MacTerminal. [5] However, another application might use only one of these, say the Connection Manager to set up communications. QuickMail and Eudora are well-known examples. [6] Applications typically used the GUI elements supplied by the Managers to handle user interaction, but could also enumerate the tools on their own to provide a custom GUI. [4]

Perhaps the best known tool was the Apple Modem Tool, which provided the serial communications drivers as well as a system for storing setup commands. This was during an era where there was a proliferation of different modem vendors, each with subtly and not-so-subtly different AT command strings needed for configuration. When a connection was initiated using the Modem Tool, the link to the modem was opened, commands sent to it, and the link established by dialling. The Apple Modem Tool faced challenges with keeping with the rapidly changing modem landscape with needing to track higher speeds and new features being regularly introduced by modem vendors.

Providing CTB updates in general was also a challenge as the CTB development was, at first, not part of the main System Software effort, but rather part of the Networking and Communications division. When a 1.5 version addressing some of the problems was released in 1993, even finding it proved difficult. [7] A further update was needed to support higher speeds when 28 kbit/s modems become common. [8]

Some of the other Apple provided tools included the simple Serial Tool and AppleTalk Tools using AppleTalk's Apple Data Stream Protocol as additional connection methods, the TTY and VT102 Tools for terminal emulation, and the Text and XModem tools for file transfers. [9]

Third party tools were common for supporting connections, including the Global Village TelePort modem which plugged into the Apple Desktop Bus and thus required custom drivers, [5] Apple's own X.25 and ISDN tools, and a variety of other examples. There were also third-party Telnet Connection Tools released when TCP/IP started becoming prevalent.

CommToolbox was an important part of the DTO-1208 experiment onboard the Space Shuttle Atlantis which saw the first email from space in 1991. The equipment set-up was a backlit Mac Portable using a PSI Integration internal fax modem (used in half duplex mode due to the nature of the shuttle air-to-ground voice links). The communications software used was a specially modified version of AppleLink that used the CommToolbox Connection Manager (instead of directly accessing serial ports) and a custom Connection Tool written pro bono by three Apple engineers in their spare time to hide the half-duplex nature of the air-to-ground link from the application (which was expecting a full-duplex connection).

Related Research Articles

<span class="mw-page-title-main">Bulletin board system</span> Computer server

A bulletin board system (BBS), also called a computer bulletin board service (CBBS), was a computer server running software that allowed users to connect to the system using a terminal program. Once logged in, the user can perform functions such as uploading and downloading software and data, reading news and bulletins, and exchanging messages with other users through public message boards and sometimes via direct chatting. In the early 1980s, message networks such as FidoNet were developed to provide services such as NetMail, which is similar to internet-based email.

Kermit is a computer file transfer and management protocol and a set of communications software tools primarily used in the early years of personal computing in the 1980s. It provides a consistent approach to file transfer, terminal emulation, script programming, and character set conversion across many different computer hardware and operating system platforms.

<span class="mw-page-title-main">Terminal emulator</span> Program that emulates a video terminal

A terminal emulator, or terminal application, is a computer program that emulates a video terminal within some other display architecture. Though typically synonymous with a shell or text terminal, the term terminal covers all remote terminals, including graphical interfaces. A terminal emulator inside a graphical user interface is often called a terminal window.

Carbon was one of two primary C-based application programming interfaces (APIs) developed by Apple for the macOS operating system. Carbon provided a good degree of backward compatibility for programs that ran on Mac OS 8 and 9. Developers could use the Carbon APIs to port (“carbonize”) their “classic” Mac applications and software to the Mac OS X platform with little effort, compared to porting the app to the entirely different Cocoa system, which originated in OPENSTEP. With the release of macOS 10.15 Catalina, the Carbon API was officially discontinued and removed, leaving Cocoa as the sole primary API for developing macOS applications.

<span class="mw-page-title-main">Serial port</span> Communication interface transmitting information sequentially

On computers, a serial port is a serial communication interface through which information transfers in or out sequentially one bit at a time. This is in contrast to a parallel port, which communicates multiple bits simultaneously in parallel. Throughout most of the history of personal computers, data has been transferred through serial ports to devices such as modems, terminals, various peripherals, and directly between computers.

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 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.

<span class="mw-page-title-main">PuTTY</span> Free and open-source terminal emulator, serial console and network file transfer application

PuTTY is a free and open-source terminal emulator, serial console and network file transfer application. It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection. It can also connect to a serial port. The name "PuTTY" has no official meaning.

The Macintosh Toolbox implements many of the high-level features of the Classic Mac OS, including a set of application programming interfaces for software development on the platform. The Toolbox consists of a number of "managers," software components such as QuickDraw, responsible for drawing onscreen graphics, and the Menu Manager, which maintain data structures describing the menu bar. As the original Macintosh was designed without virtual memory or memory protection, it was important to classify code according to when it should be loaded into memory or kept on disk, and how it should be accessed. The Toolbox consists of subroutines essential enough to be permanently kept in memory and accessible by a two-byte machine instruction; however it excludes core "kernel" functionality such as memory management and the file system. Note that the Toolbox does not draw the menu onscreen: menus were designed to have a customizable appearance, so the drawing code was stored in a resource, which could be on a disk.

MacBinary is a file format that combines the data fork and the resource fork of a classic Mac OS file into a single file, along with HFS's extended metadata. The resulting file is suitable for transmission over FTP, the World Wide Web, and electronic mail. The documents can also be stored on computers that run operating systems with no HFS support, such as Unix or Windows.

ProTERM is a terminal emulator and modem program for the Apple II and Macintosh lines of personal computers, published by Intrec Software. Most popular in the late 1980s and 1990s, it was most commonly used for calling bulletin board systems (BBSes) via a computer's modem, experienced users could also Telnet into Unix server and shell account thereon and FTP and tunneling to various destinations therefrom, and once logged into a Unix shell account, other forms of telecom all across the pre-Web Internet; via VT100 terminal emulator or ANSI art, this later ushered in Graphics to the scene.

<span class="mw-page-title-main">MacTerminal</span> Classic Mac OS terminal emulator

MacTerminal was the first telecommunications and terminal emulation application software program available for the classic Mac OS. MacTerminal enabled users to connect via modem or serial port to bulletin board systems and online services, and to other computers. MacTerminal was capable of emulating the DEC VT100 and other computer terminals.

Red Ryder is a communications and terminal emulation software program released for the Apple Macintosh in 1984. Initially distributed as a shareware, the application offered rich features and configuration settings. Red Ryder was discontinued in 1989 and replaced by White Knight.

Apple II serial cards primarily used the serial RS-232 protocol. They most often were used for communicating with printers, Modems, and less often for computer to computer data transfer. They could be programmed to interface with any number of external devices which were RS-232 compatible. Most serial cards had speed ranges starting from 110 bit/s up to 19,200 bit/s, however some could be modified to go much faster. The most popular and widely used of these cards was Apple Computer's Super Serial Card, a solid design that was often copied for maximum software compatibility of the end product.

<span class="mw-page-title-main">ManaGeR</span>

ManaGeR or MGR is an early windowing system originally designed and developed for Sun 2/120 workstations in 1984 by Stephen A. Uhler, then at Bellcore.

NCSA Telnet is an implementation of the Telnet protocol developed at the National Center for Supercomputing Applications of the University of Illinois at Urbana-Champaign, first released in 1986 and continuously developed until 1995. The initial implementation ran under Mac OS and Microsoft MS-DOS, and provided basic DEC VT102 terminal emulation with support for multiple simultaneous connections and an FTP client. NCSA Telnet was the first implementation of telnet for the Macintosh or PC that provided the ability to connect to multiple hosts simultaneously.

<span class="mw-page-title-main">Apple Communication Slot</span> Expansion data interface in Apple Macintosh computers

The Apple Communication Slot, or Comm Slot, is an internal expansion data interface (slot) found in Apple Macintosh computers from the early to mid-1990s. It was designed as an inexpensive way to add communication expansion cards like network adapters or modems to Macs and Power Macs.

<span class="mw-page-title-main">ZTerm</span> Shareware terminal emulator

ZTerm is a shareware terminal emulator for Macintosh operating system. It was introduced in 1992 for System 7 and has been updated to run on macOS. Its name comes from its use of the ZModem file transfer protocol, which ZTerm implemented in a particularly high-performance package. In contrast to the built-in macOS Terminal app, which only communicates with other programs, ZTerm only communicates with hardware serial ports.

InterCon Systems Corporation was founded in April 1988 by Kurt D. Baumann and Mikki Barry to produce software to connect Macintosh computers in environments that were not Macintosh-exclusive. At the time, there was no real concept of the Internet and there was still a question of whether the TCP/IP protocols or OSI protocols would be adopted widely. Over the next 9 years, the company grew from three employees to over 100 and sold software in the US, Europe and Japan.

<span class="mw-page-title-main">ZOC (software)</span>

ZOC is a popular computer-based terminal emulator and Telnet software client for the Microsoft Windows and Apple Macintosh macOS operating systems that supports telnet, modem, SSH 1 and 2, ISDN, serial, TAPI, Rlogin and other means of communication. Its terminal emulator supports Xterm emulation with full colors, meta-keys and local printing, VT102, VT220 and several types of ANSI as well as Wyse, TVI, TN3270, and Sun's CDE. It supports full keyboard remapping, scripting in REXX and other languages, and support for named pipes.

Commodore 64 disk/tape emulation and data transfer comprises hardware and software for Commodore 64 disk & tape emulation and for data transfer between either Commodore 64 (C64), Commodore (1541) disk drive or Commodore tape deck and newer computers.

References

Citations
  1. Mark Anbinder, "IE To The Rescue", TidBITS, 13 January 1992
  2. "Ingemar's Corner, 25 December 2002
  3. Inside 1991, p. 3.
  4. 1 2 Gaspar 1990.
  5. 1 2 Mark Anbinder, "TelePort Capabilities", TidBITS, 23 September 1991
  6. Adam Engst, "Shell Account Enhancements" Archived 2012-10-06 at the Wayback Machine , Internet Starter Kit for Macintosh, 1996, Chapter 14
  7. Adam Engst, "Apple Modem Tool 1.5", TidBITS, 25 October 1993
  8. "What is the maximum throughput of the Apple Modem Tool?", Apple Computer, 17 May 1996
  9. See various sections of Inside the Comm Toolbox
Bibliography
Further reading