The Communications Toolbox, generally shortened to Comm Toolbox or CTB, was a suite of application programming interfaces, libraries and device drivers for the classic Mac OS that implemented a wide variety of serial and networkcommunication protocols. Using the CTB, one could write an application that would seamlessly work over AppleTalk, a modem or any variety of other connections. Developers could also write plug-in communications modules known as "Tools", allowing any CTB-aware application to use that connection method. CTB was notoriously slow and buggy, and received mixed support from developers. Examples of applications using it for simple tasks were common, but many target uses, like terminal emulators, almost always ran faster when designed to target a single connection type and avoid the CTB.
Description
The CTB was based on a shared library concept in an era when the Mac OS did not include a shared library system. Instead, the CTB wrote its own driver manager layer, the Communications Resource Manager. The Resource Manager was responsible for installing and managing the various drivers, or "Tools" that provided various functions within the CTB system. There were three primary types of Tools, each with their own associated Manager: the Connection Manager handled the communications drivers that opened channels to remote services, the Terminal Manager managed Tools that implemented the character conversion and command string interpretation needed to support any sort of terminal emulator, and the File Transfer Manager did the same for any sort of file transfer protocol. Applications could use any, or all, of the Managers in the CTB. A typical terminal emulator would use all of them, connecting a Tool selected in the Connection Manager to another in the Terminal Manager, and then periodically using the File Transfer Manager on user request. Such was the case for common terminal emulators like VersaTerm and MacTerminal. However, another application might use only one of these, say the Connection Manager to set up communications. QuickMail and Eudora are well-known examples. 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. 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. 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 Modem Tool was also indicative of the problems that the CTB had in general; it was slow and lacking in features, quickly became outdated as modem speeds improved, and saw little development effort or support. When a 1.5 version addressing some of the problems was released in 1993, even finding it proved difficult. A further update was needed to support higher speeds when 28kbit/s modems become common. Apple also produced the simple Serial Tool and AppleTalk Tools as additional connection methods, the TTY and VT102 Tools for terminal emulation, and the Text and XModem tools for file transfers. Third party tools were common for supporting connections, including the TelePort modem which plugged into the Apple Desktop Bus and thus required custom drivers, Apple's own X.25 and ISDN tools, and a variety of other examples.