The Smartmodem
Although powerful, the internal modem was commercially impractical. Not only did it require special driver software, but a different hardware design was needed for every computer bus, including Apple II, S-100, TRS-80, and others. Some popular computers, like the Atari 400, did not even integrate internal slots. An obvious solution was to use the RS-232 serial port; modems were serial devices and generally driven off RS-232 anyway, and most computer designs included an RS-232 port, or some variant.
Hayes and the company's marketing manager Glenn Sirkis approached Heatherington with an outline for a new command-driven external modem. A few external modems already offered the ability to dial the phone by entering a phone number when the modem was first started, but the real problem was somehow sending a command to hang up, while the modem was already connected. There needed to be some way to indicate that the characters flowing out from the computer to the modem were not simply additional data to be sent to the far end, but commands to be acted on.
Several solutions to the problem were studied, and in the end Heatherington decided the only practical one was to have the modem operate in two modes. In one, data mode, all data forwarded from the computer was modulated and sent over the connected telephone line as it was with any other modem. In the other, command mode, data forwarded from the computer was instead interpreted as commands. In this way, the modem could be instructed by the computer to perform various operations, such as hang up the phone or dial a number. The modem would normally start up in command mode.
The problem was how to move from mode to mode. One option would be to signal this change — "put yourself into command mode" — via one of the many pins in the RS-232 cable. However, while the 25-pin connector on the modem side had more than enough pins for this purpose (even some meant for this purpose), the computer side often used a much smaller 9-pin connector, and equally often many of these pins weren't actually connected or accessible from software. In fact, there were very few pins that were guaranteed to work on all computers, mostly the data in and out, "ready" indications that said whether the modem or computer was operational, and sometimes flow-control pins.
While it would have been possible to use some of these pins for the sort of command-switching they needed (the "ready" indications, for example, would have sufficed) Heatherington instead came up with the idea of using a rarely-seen sequence of characters for this duty. Since these characters could be sent to the modem using the same two data pins that the port would need anyway, they could be sure that such a system would work on every computer.
The sequence he decided on was +++ (three plus signs). When this was received from the computer, the modem would switch from data to command mode. Of course it was entirely possible that the computer would send this sequence for other reasons, for example, the sequence might be contained within a text file describing how modems worked. In order to filter out these "accidental" sequences, Heatherington's design only switched to command mode if the sequence was led and followed by a one-second pause, the guard time, in which no other data was sent. In this case it could be safely assumed that the sequence was being sent deliberately by a user, as opposed to being buried in the middle of a stream of data.
With the basic idea outlined, Hayes and Sirkis gave Heatherington the go-ahead to build a prototype by adding a microcontroller to an otherwise lightly modified version of their existing 300 bit/s hardware. Sirkis was particularly interested in using the 1 MHz PIC microcontroller, which were available for only US$1 a piece. After six months of trying to get the modem working with the PIC, Heatherington gave up and demanded they use the 8 MHz Zilog Z8 instead, a US$10 part. Sirkis acquiesced, and a working prototype was soon complete.
Hayes added a requirement of his own, that the modem be able to automatically detect what speed the computer's serial port was set to when first powered on. This was not simple unless the modem "knew" what data was initially being sent, allowing it to time the bits and thereby guess the speed. Heatherington eventually suggested the use of a well-known character sequence for this purpose, recommending AT for "attention", which is prefixed on all commands.
The new design, housed in an extruded aluminum case sized to allow a standard desktop telephone to rest on top, was released in July 1981. It was known simply as the Smartmodem. The Smartmodem was the first modem integrating complete control over the phone line, and that allowed it to be used in exactly the same fashion with any computer.
Hayes originally had big plans for the form factor, referring to it as the Hayes Stack and intending to release a range of products that could be stacked beside the computer. In the end, only two non-modem devices were added to the line. The Hayes Stack Chronograph, an external real-time clock and the Transet 1000, a printer buffer and primitive email box. Both of these items' sales were apparently dismal. Early advertising referred to the Smartmodem as the "Hayes Stack Smartmodem", but this naming convention was dropped a short time later.
At the time of its introduction, the modem market was fairly small, and competitors generally ignored the Smartmodem. But it was not long before hobbyists were able to combine the Smartmodem with new software to create the first real bulletin board systems (BBSes), which created significant market demand. The market grew rapidly in the mid-1980s, and as the Smartmodem was the only truly "universal" modem on the market, Hayes grew to take over much of the market. Heatherington retired from what was then a large company in 1984.
Read more about this topic: Hayes Microcomputer Products