Logical Art · machine no. 3

300 Baud

A modem had one job: turn bits into a sound a telephone would carry, and turn that sound back into bits at the other end. The Bell 103 did it with two tones 200 Hz apart, starting in 1962, and the arrangement stayed in service for twenty-five years.

Below is a working one. Dial the board and everything you hear is generated from the bits, everything you read was recovered from that sound by a detector running in this page, and it arrives at thirty characters a second because that is genuinely as fast as it went.

The terminal

Command mode. Try ATDT7025550143.

NO CARRIER

300 is the real Bell 103. The faster settings run the same modulation quicker than the standard allowed, so they are a convenience rather than a modem that ever existed. A real 1200 used a different scheme entirely.

Numbers to try

Three numbers, and only one of them answers. The other two are here because a busy signal and a phone nobody picks up were most of what dialling a board actually got you.

Once connected: any name, any password. M for the message bases, F for files, G to hang up. To reach the modem again without dropping the call, leave it quiet for a second, type +++, and wait another second.

What is on the wire

The detector's decision signal, scrolling. Above the centre line it is hearing the mark tone, below it the space tone. Every character is ten bits, so at 300 baud you get thirty characters a second.

How two tones carried the early internet

A telephone line will not carry a square wave. It was built for speech, it passes roughly 300 to 3000 Hz, and anything outside that is gone. So a modem does not send the bits. It sends a tone, and moves that tone between two frequencies depending on whether the current bit is a one or a zero. One is called mark, zero is called space, and the names are older than the telephone: they come from the marks a telegraph inked onto paper tape.

Both ends want to talk at once, and they cannot use the same two frequencies without shouting over each other. So the caller uses the low pair, 1070 and 1270 Hz, and whoever answers uses the high pair, 2025 and 2225 Hz. Two conversations, two slices of the same voice band, no taking turns. That is why you can type while the board is still printing at you, and you can hear both directions at once in the speaker.

There is no clock on the wire. An idle line rests at mark, and a character announces itself by dropping to space for exactly one bit period. Everything after that is timed from that one edge, which is what asynchronous means, and it is why the last thing in every frame is a stop bit that puts the line back where it started.

The detector in this page mixes the incoming sound against both tones and measures which one holds more energy over each bit period. It is a plain non-coherent FSK detector, the same idea the hardware used, and it holds up under noise: the test suite pushes the signal down to 10 dB above the noise floor and still reads every character back.

What is real here, and what is not

Real: the modulation, the demodulation, the framing, the carrier detect, the touch tones and their frequency grid, pulse dialling as actual line breaks, ringback and busy at their true cadences, the answer tone, the ANSI terminal, code page 437, and XMODEM with both its checksum and its CRC. The board's replies are modulated onto the answer channel, played, demodulated, and only then printed. Nothing takes a shortcut past the audio.

Not real: the board is fiction, and so are the three phone numbers. There is no server anywhere in this; The Oasis runs in the same tab you are reading. The password is not checked and nothing is stored. The faster line speeds are a convenience, not a modem that existed.