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: there was one telephone line, so there was one caller. Not one caller per page or one caller at a time on a busy evening. 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 they were all turn-based, without exception

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.

Sources

Back to the modem · Every speed, 110 baud to fibre