Communications ToolBox
   HOME

TheInfoList



OR:

The Macintosh Communications Toolbox, generally shortened to CommToolbox or CTB, was a suite of
application programming interface An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
s,
libraries A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
and dynamically loaded code modules for the
classic Mac OS Mac OS (originally System Software; retronym: Classic Mac OS) is the series of operating systems developed for the Mac (computer), Macintosh family of personal computers by Apple Computer, Inc. from 1984 to 2001, starting with System 1 and end ...
that implemented a wide variety of serial and
network Network, networking and networked may refer to: Science and technology * Network theory, the study of graphs as a representation of relations between discrete objects * Network science, an academic field that studies complex networks Mathematics ...
communication protocols, as well as file transfer protocols and terminal emulations. Using CommToolbox, one could write an
application Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a ...
that would seamlessly work over
AppleTalk AppleTalk is a discontinued proprietary suite of networking protocols developed by Apple Computer for their Macintosh computers. AppleTalk includes a number of features that allow local area networks to be connected with no prior setup or the ...
, a
modem The Democratic Movement (, ; MoDem ) is a centre to centre-right political party in France, whose main ideological trends are liberalism and Christian democracy, and that is characterised by a strong pro-Europeanist stance. MoDem was establis ...
or any variety of other connections, transfer files using
XMODEM XMODEM is a simple file transfer protocol developed as a quick hack by Ward Christensen for use in his 1977 MODEM.ASM terminal program. It allowed users to transmit files between their computers when both sides used MODEM. Keith Petersen made a ...
, Kermit or other file transfer protocols, and provide DEC
VT102 The VT100 is a video terminal, introduced in August 1978 by Digital Equipment Corporation (DEC). It was one of the first terminals to support ANSI escape codes for cursor control and other tasks, and added a number of extended codes for special ...
,
VT220 The VT200 series is a family of computer terminals introduced by Digital Equipment Corporation (DEC) in November 1983. The VT220 was the basic version, a text-only version with multi-lingual capabilities. The VT240 added monochrome ReGIS vecto ...
,
IBM 3270 The IBM 3270 is a family of Block-oriented terminal, block oriented display and printer computer terminals introduced by IBM in 1971 and normally used to communicate with IBM mainframes. The 3270 was the successor to the IBM 2260 display ter ...
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, and received mixed support from developers. 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 System 7 (later named Mac OS 7) is the seventh major release of the classic Mac OS operating system for Macintosh computers, made by Apple Computer. It was launched on May 13, 1991, to succeed System 6 with virtual memory, personal file shari ...
. 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 In computing, a library is a collection of resources that can be leveraged during software development to implement a computer program. Commonly, a library consists of executable code such as compiled functions and classes, or a library can ...
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: * Communications Resource Manager (CRM) * Connection Manager (CM) * File Transfer Manager (FTM) * Terminal Manager (TM) 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. 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 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 term ...
(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. 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 Versaterm Inc. is a Canadian company based in Ottawa, Ontario that develops computer-aided dispatch (CAD) and records management systems for police, fire, and other public safety agencies. Former Royal Canadian Mounted Police employees establishe ...
and MacTerminal.Mark Anbinder
"TelePort Capabilities"
''TidBITS'', 23 September 1991
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. 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. A further update was needed to support higher speeds when 28 kbit/s modems become common. Some of the other Apple provided tools included the simple Serial Tool and AppleTalk Tools using
AppleTalk AppleTalk is a discontinued proprietary suite of networking protocols developed by Apple Computer for their Macintosh computers. AppleTalk includes a number of features that allow local area networks to be connected with no prior setup or the ...
's Apple Data Stream Protocol as additional connection methods, the TTY and VT102 Tools for terminal emulation, and the Text and
XModem XMODEM is a simple file transfer protocol developed as a quick hack by Ward Christensen for use in his 1977 MODEM.ASM terminal program. It allowed users to transmit files between their computers when both sides used MODEM. Keith Petersen made a ...
tools for file transfers.See various sections of ''Inside the Comm Toolbox'' Third party tools were common for supporting connections, including the Global Village TelePort modem which plugged into the
Apple Desktop Bus Apple Desktop Bus (ADB) is a proprietary bit-serial peripheral bus connecting low-speed devices to computers. It was introduced on the Apple IIGS in 1986 as a way to support low-cost devices like keyboards and mice, enabling them to be conn ...
and thus required custom drivers, Apple's own
X.25 X.25 is an ITU-T standard protocol suite for Packet switched network, packet-switched data communication in wide area network, wide area networks (WAN). It was originally defined by the CCITT, International Telegraph and Telephone Consultative Co ...
and
ISDN Integrated Services Digital Network (ISDN) is a set of communication standards for simultaneous digital transmission of voice, video, data, and other network services over the digitalised circuits of the public switched telephone network. ...
tools, and a variety of other examples. There were also third-party
Telnet Telnet (sometimes stylized TELNET) is a client-server application protocol that provides access to virtual terminals of remote systems on local area networks or the Internet. It is a protocol for bidirectional 8-bit communications. Its main ...
Connection Tools released when TCP/IP started becoming prevalent. CommToolbox was an important part of the DTO-1208 experiment onboard the Space Shuttle
Atlantis Atlantis () is a fictional island mentioned in Plato's works '' Timaeus'' and ''Critias'' as part of an allegory on the hubris of nations. In the story, Atlantis is described as a naval empire that ruled all Western parts of the known world ...
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 AppleLink was the name of both Apple Computer's online service for its dealers, third-party developers, end users, and the client software used to access it. Prior to the commercialization of the Internet, AppleLink was a popular service for Mac ...
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).


References

;Citations ;Bibliography * * ;Further reading
"Communications Tools"
introduction to the CTB with many images. {{refend Macintosh operating systems development Macintosh operating systems APIs