300 Baud · the board

The bulletin board world

Line drawing of a 1980s desk at night: a boxy CRT monitor with a faint glow, a mechanical keyboard, and a small external modem with a row of indicator lamps, its coiled telephone cord running off the edge of the desk.
Illustration, not a photograph.

Almost everything odd about a BBS follows from one fact, and it is worth holding onto before any of the history: a hobby board like this one had one telephone line, so it had one caller. Not one caller per page or one caller at a time on a busy evening. One. Multi-line boards existed and ran games with several people in them at once; this is the ordinary case, not the only one. The whole institution was a single conversation, and whoever was in it had the building to themselves.

The culture, the software, the games and the network that connected them all are downstream of that constraint. This page is what grew in it.

Where it started

A blizzard, Chicago, 1978

In January 1978 a record snowfall shut Chicago down. Two members of the local computer hobbyist club, Ward Christensen and Randy Suess, were stuck indoors with the kind of time that produces things. What they built was a machine that would answer the telephone, let a caller leave a message where everybody could read it, and hang up.

They put it online on 16 February 1978 and called it CBBS, for Computerized Bulletin Board System, and the name is the clearest statement of intent anybody managed. It is a cork board in a laundromat. You go to it, you read what is pinned up, you pin something up, you leave. That it took a telephone call and a modem to reach the cork board was an implementation detail, and the metaphor survived long enough to name an entire decade of computing.

Christensen is on this site twice, incidentally. The other time is XMODEM, which he had written the year before and which is what the file area on the front page runs.

What a board actually was

A computer in somebody's house, a modem, and a telephone line that the household had usually stopped using for telephone calls. The person who ran it was the sysop, short for system operator, and the title carried more weight than it sounds like because a board was recognisably somebody's place. You were a guest in it.

Because the line was the entire capacity, everything was rationed. Time limits per caller per day were normal, thirty minutes or an hour, and running over meant you were the reason somebody else got a busy signal. Boards asked new callers to register with a real name and often telephoned to verify it. Some had ratios: upload a file before you may download several. None of this was security policy. It was a queue, managed by a person.

And distance decided the rest. This was a telephone call, priced like one, so a board in the next area code could cost more per evening than the computer had. Boards were local institutions, the numbers you knew were the numbers in your own dialling area, and a board with callers from three states was either famous or being paid for by somebody's parents.

The software, and why there was so much of it

CBBS begat a genre. Through the 1980s and into the 1990s there were dozens of BBS packages, several of them significant: RBBS-PC, which was public domain and therefore everywhere; PCBoard and Wildcat!, which were commercial and polished; WWIV, which shipped source code and produced a sprawl of modified versions; Renegade and Telegard, which the ANSI-heavy boards of the early 1990s tended to run; Maximus; and Synchronet, which is still maintained.

The variety is not an accident of a young market. A board was a hobby project that a hobbyist ran on hardware they already owned, so the software had to be cheap or free, and its author was usually one of its users. WWIV shipping source is the clearest case: people bought it, changed it, and ran boards that were recognisably their own program. That is a different relationship with software than buying a product.

FidoNet, or how mail crossed the country at 4 a.m.

The problem, and the trick

Boards were local because calls cost money. That meant the person you wanted to argue with about a compiler was, statistically, in a different area code and permanently out of reach. The obvious fix, everyone calling one central board, is exactly the thing nobody could afford.

Tom Jennings released the first version of FidoNet in June 1984, and the trick is to stop insisting on being live. Boards call each other. Not while you are using them, and not when you send the message, but on a schedule, in the small hours, when long distance was cheapest and the line was idle anyway. Your message sat in a bag until tonight, went one hop, sat again, and arrived somewhere else in a day or two.

The window had a name, Zone Mail Hour, set in the early morning for each region, and during it a participating board stopped taking human callers and did nothing but exchange mail. It is a postal service assembled out of a telephone tariff, and it worked well enough to carry a global network for years before most of its users had heard of the internet.

The nodelist, which is the interesting part

For one board to call another it needs the number, and for a network of thousands of them to route mail every board needs everybody's number. FidoNet's answer was the nodelist: a single file listing every active node, its address, and how to reach it, published weekly and distributed by the network itself.

So the routing table was a text file that arrived through the post it described. If your entry was wrong you were unreachable until next week's edition. Addresses were hierarchical, a zone and a net and a node, because the hierarchy is what let a board work out which of its neighbours to hand a message to without knowing the whole route. Anybody who has met modern routing will find this all extremely familiar, which is the point worth taking away: the shape of the problem produces the shape of the answer, whether or not the people solving it have seen the other solution.

Echomail, added by Jeff Rush in February 1986, is the other half. Private mail goes to a person; echomail is a public conversation copied to every board that carries that topic, so a message posted in one town appears on boards across the network over the following days. Threaded public discussion, replicated by store and forward, with a latency measured in days and an etiquette that came from knowing your reply would arrive after somebody had gone to bed.

Doors, and why every game was turn-based

What a door was

A board did messages and files. Anything else it did was somebody else's program, and the mechanism for running one is the most pragmatic piece of engineering in the whole ecosystem.

When you chose a game from the menu, the BBS wrote a small text file to disk describing you: your name, your security level, how many minutes you had left, which port the modem was on. Then it launched the other program and got out of the way, handing over the serial connection entirely. The game read the text file to find out who had just arrived, talked to you directly down the same line, and when it finished the BBS took the connection back.

The text file is called a drop file, and there were several competing formats because several boards invented one independently. The two you met most were DORINFO1.DEF and DOOR.SYS, and a game shipped with a list of which boards it supported the way a printer driver shipped with a list of printers. Some doors also wanted a FOSSIL driver, a small resident program that gave them a consistent way to reach the serial port whatever the hardware was. X00 and BNU were the common ones, and installing one was a rite of passage for anybody running a board.

It is a hand-off, not an integration. The BBS does not host the game, it introduces you and leaves the room. That is why they were called doors.

Why the games on a board like this one were turn-based

One line means one caller. There is no version of this where two players are in the game at the same time, because there is no version where two people are connected at the same time. Real-time multiplayer was not a feature nobody thought of. It was arithmetically unavailable.

So the games were built around the constraint rather than against it. You got a fixed number of turns a day. You spent them, you saw the consequences of what everybody else had done since your last call, and you left something behind for whoever called next. The other players were real people whose moves you only ever saw the results of, which is a strange and rather good design space, and it produced games that have no real modern equivalent because nothing since has had to work that way.

Legend of the Red Dragon, written by Seth Robinson in 1989, is the one most people remember: a small fantasy game where the fighting was almost beside the point and the actual content was the other callers, who you could challenge, marry or annoy, all of it asynchronously. TradeWars 2002 is the other pillar, a game of territory and trade across a map that the whole board shared and that a determined player could come to dominate while everybody else was asleep. Both are multiplayer games where you never once meet another player in real time.

The door on this site

The game in the file area of the front page is a Hunt the Wumpus, which predates all of this and was already an old chestnut by 1978. It is here because it is the right size and the right shape: a text game, playable one key at a time over a line carrying thirty characters a second, that makes sense to arrive at through a menu on somebody's board.

It runs the same way a real door did in one respect that matters. The board hands the session over, the game talks down the same modulated line as everything else, every character it prints is modulated into audio and demodulated back, and when it finishes the board takes the session back.

The art, and the end

Why boards looked the way they did

A board had no images and no fonts. It had 80 columns, 24 rows, sixteen colours and the CP437 character set, which includes box drawing, shaded blocks in three densities, and half-height blocks. That is the entire palette, and people got extraordinarily good with it.

The shaded blocks are the key to the whole style. Three densities plus a solid one give you four levels of grey per colour, and colour pairs give you a foreground and a background per cell, so a character cell is not one pixel but a small dithering primitive. Artists used them to make gradients, and then to make logos, and eventually to make full-screen pieces that were released in packs by groups the way demoscene work was. ACiD and iCE are the two names that outlasted the era.

Every screen on this site is drawn out of the same character set, by a renderer that maps the same code page and parses the same escape sequences, which is why the board's frames join up and why the shading looks right. The panel below is not a picture of ANSI art. It is ANSI art, run through that renderer at build time and frozen into the page, so if the renderer were wrong this would be wrong with it.

There is a note in the engineering notebook on what that took, including the two colour bugs that came from sixteen colours actually being eight and a brightness bit.

Turn a picture into ANSI, here, now

The technique above is not only for looking at. Give this a photograph and it will convert it the way the scene did: eighty columns by twenty-four rows of upper half blocks, each cell carrying one colour in its foreground and another in its background, which is eighty by forty-eight pixels out of a grid that appears to be eighty by twenty-four.

Two constraints are real rather than stylistic, and both shape the result. There are sixteen colours and they are the ones the hardware had. And backgrounds get only eight of them, because a PC attribute byte spends three bits on the background and keeps the fourth for blink, which is why ANSI art has bright highlights sitting on dim shadows. What comes out is a genuine .ANS file: escape sequences and code page 437 bytes that a DOS screen would have drawn, and that this page draws with the same parser the modem feeds.

Then send it at thirty characters a second and watch it arrive, which is the part worth doing. A screen of ANSI is several times the size of a screen of text because every colour change costs another escape sequence, so it takes minutes rather than the minute a plain screen does. People waited.

What happened to it

The web did not out-compete bulletin boards on features. It removed the thing they were organised around. A board was local because calls cost money by distance, and every institution described on this page, the ratios, the time limits, the nodelist, the four in the morning mail run, exists to manage that cost. A local call to an internet provider reached everything at once, and the entire structure was suddenly solving a problem nobody had.

The boards emptied through the middle 1990s. What is left is not nothing: Synchronet is still maintained, a few hundred boards still run and take connections over telnet and SSH rather than a telephone call, the door games still work, and the art packs are archived and readable. The modulation on the front page is the only part that genuinely has no remaining use, which is a reasonable way to think about what actually died. Not the culture. The telephone bill.

The number that is not a board

What a wardialer actually was

A program that dialled every number in a range, listened for a moment, and wrote down which ones answered with a carrier. That is the whole idea. Give it an exchange and a block of ten thousand numbers, leave it running overnight, and read the log over breakfast: fax machines here, somebody's board there, and every so often something that identified itself as a system and asked for a name.

The name comes from the film. "Wardialer" is a contraction of "WarGames dialer", and one of the early programs was called WARDIAL because a filename could only be eight characters long. It is a rare case of a piece of fiction naming a real practice rather than the other way round, which is also why the number in this site's directory that is not a board is where it is.

The best known was ToneLoc, an MS-DOS program of the early 1990s written by two people using the handles Minor Threat and Mucho Maas, the name being short for Tone Locator and a joke about a rapper. Its trick is the interesting part, and it is a command this machine has: a modem's ATX setting decides how much detail it reports back. At ATX0 it says only CONNECT, so a busy signal and thirty seconds of ringing look identical and you wait out the timeout every time. Turn the result codes up and it distinguishes dial tone, busy and no answer, so the dialler can hang up the instant it knows and move on. The difference is hours per night. ToneLoc used a US Robotics extension past the standard set to tell a human voice apart as well.

It is worth separating this from demon dialling, which the two get confused constantly. A wardialer dials many numbers once each, looking for what is there. A demon dialler redials one number over and over, usually a modem pool that is always full, to seize a slot the moment somebody hangs up. One is a survey and the other is queue jumping.

What made it work was that organisations had modems on lines nobody was thinking about: a maintenance port on a PBX, a machine in a lab, a terminal server somebody set up and left. The practice outlived dial-up in spirit rather than in form. Sweeping a range of addresses to see what answers, and what it says about itself when it does, is the same idea with the telephone taken out, and it remains the first thing anybody does when looking at a network. Several states eventually legislated against dialling numbers with no intention of speaking to a person, which is a fair description of the activity.

Wardialing, and what answered

You could tell a modem to work through a range of telephone numbers overnight and log whatever answered with a carrier. In the morning you had a list. Most of it was fax machines. Some of it was other people's boards, which is how you found them before there were lists. And occasionally something answered that was not expecting you.

The dialling directory here has a fourth number, 7025550100, which is not on the list of boards. It is an homage to the 1983 film, and it is worth saying exactly what that means: the system, the installation, the writing and the list of games are written for this project, the film's characters and machines do not appear, and this is not connected to that film or to anyone who made it. One five word question is borrowed, because by now it is a reference rather than a quotation.

It will not simply let you in. What gets you past the prompt is a name, and the way to find a name has not changed: ask the system who built it. A prompt that refuses you will usually still answer WHO, because whoever wired up the maintenance hook was not thinking about somebody dialling in from outside. That is not a plot device. It is how this actually went, over and over, for about twenty years.

The game it will not let you win is real mathematics rather than a script. Noughts and crosses is a solved game: with correct play by both sides it is always a draw, and the opponent on the other end of that number searches the whole tree, so it cannot be beaten. There is a test in this project that proves it by playing out every possible line and checking that none of them is a loss.

Why it looks like a teletype and not like a war room

The thing everyone pictures is a darkened room with a wall of glowing maps. That set was invented. The production was not permitted to photograph the real command centre, so they built what they imagined one would look like, at enormous expense, and its own director later described it as the place's fantasy of itself. The graphics on those wall screens were rendered in advance on a desktop computer.

The real installation of the period was less impressive and more alarming. Its lineage ran back to systems designed in the 1950s, and the output of that generation of machine went to a teletype: uppercase, one line at a time, no colour, because a printing terminal has no colour to give. So the system on the other end of the unlisted number here is deliberately austere, and that is not a stylistic choice against the film. It is closer to what was actually there than the film's set was.

Which is the same point this whole site keeps arriving at. What people remember is the impressive version. The Bell 103 connect is not a screech, the fast modems are the ones that screech, and the room where somebody would have decided whether to believe a warning did not glow.

The part that actually happened

A computer mistaking an exercise for an attack is not a screenwriter's idea, and this is the reason that number exists rather than as a joke about a film.

This is also where the film came from. Its writers were given access to NORAD in 1980 while researching it, and the premise they left with was the one the 1979 incident had just demonstrated: a machine that cannot tell a drill from the real thing.

On 9 November 1979 a training tape simulating a Soviet attack was loaded into a live missile-warning system at NORAD. Interceptors were scrambled, the airborne command post took off, and launch crews were told to prepare, before satellite data showed there was nothing there. Through May and June 1980 the warning system produced three more false alerts, traced to a failed computer chip; a newspaper headline at the time put the component's cost at forty-six cents.

And on 26 September 1983, the year the film came out, a Soviet early warning satellite system reported American missiles inbound. The duty officer, Stanislav Petrov, judged that a real first strike would not consist of a handful of missiles, and reported it as a malfunction. He was right.

The fiction is the gentler version. In the film a machine has to be talked out of it. Twice in reality it was a person deciding the machine was wrong, on their own authority, in a few minutes, with nothing to go on but a judgement about what an attack ought to look like.

Sources

Back to the modem · Every speed, 110 baud to fibre · The walled gardens