Written down

Fatterns 486: an evening in 1994, rebuilt part by part

A working 486 in the browser. You can take the lid off, move a jumper, pull a memory module, read what a card is set to, turn a lead round on the front panel header, and then spend forty minutes finding out why the game will not start. It is not an emulator with a case drawn round it. The case is the point.

The name

Fattern is Oslo slang for dad. East side specifically, where I grew up, and not a word you would use in front of a teacher.

The machine was his. I requisitioned it, which is the verb I still use, because took implies he got it back. It stayed under my desk until it stopped being a computer and started being parts.

The name is the same on the English side of the site, because a thing with two names is a thing nobody can refer to.

What it is

A 486DX2-66 on a Socket 3 board. MB-486 REV 2.1, MADE IN TAIWAN, dated 19 November 1994. Baby AT, six mounting holes, five jumpers, two banks of four memory sockets, three expansion slots with cards in them.

It boots, runs MS-DOS 5.0, answers about forty commands, and reads its own CONFIG.SYS rather than just printing it. It also comes apart: the lid lifts off and the board underneath is drawn component by component, every placement a row in a table rather than a shape in a picture.

On the desk there is a box of diskettes, twenty-four of them labelled and ten still blank, a shelf with sixteen manuals and sheets on it, a multimeter, a screwdriver, and a dot matrix printer on LPT1 that actually prints. There is also a stopwatch, which out of pure malice reports how little of the evening you spent playing.

Above the desk there is a second shelf with four sealed cartons on it. That shelf is the newest thing in the room and it changed what the room is about, which I will come back to.

Why the evening was the game

This is the bit that is genuinely hard to explain to anyone who arrived after about 2005.

Getting software to run was a negotiation. You had a finite amount of memory below one megabyte, and DOS, the mouse driver, the disk cache and the sound card driver all wanted to live there. The game wanted 570 kilobytes. You had 501.

Nothing told you this usefully. The game said it needed more memory and stopped. What you did next was open CONFIG.SYS in a text editor, work out what each line was for, decide which drivers you could live without that evening, find out that DOS itself could be moved above one megabyte if you asked correctly, reboot, and run MEM /C to see whether you had gained anything.

The middle line is the one I care about. The puzzle cannot be brute-forced. The last forty kilobytes are the operating system itself, and the only route to them is knowing it can be moved. That was the actual lesson of the era, and a puzzle you can solve by deleting things at random does not teach it.

There are two programs asking now, and they ask for different amounts. The game wants 570. The ClickSpace installer wants 512 of the first 640, which is above what the machine has as delivered and below what you get by throwing every driver out by hand. So there is a state where the desktop installs and the game still will not run. Two programs, two numbers, one lesson.

It runs MS-DOS 5.0 rather than 6.22 for the same reason. Version 6 shipped MemMaker, which does the whole thing in one command, and a reader who asked the machine what it was would have found the button that skips the best part.

The rule everything follows

A fault has to be findable from inside the machine.

Every failure I add has to come with the instrument that reveals it. If there is no such instrument, it is a wall rather than a puzzle and it does not get built.

The sound card is jumpered to interrupt 7, which is the printer's. That was real, common, and mostly harmless, because nobody printed while a game was running. It is also invisible from the command line: two things on one interrupt look exactly like one thing being broken. So the machine has MSD, which draws the interrupt map, and the map is generated from the same table the cards are drawn from, so the diagnostic cannot disagree with the hardware.

The same rule decides what the settings panel is allowed to do. Eight switches now, for eyes and ears and for how much the machine tells you, and one line above all of them: a setting may remove help, it may never remove an instrument. The hint button is help. The interrupt map is an instrument. Switch off an instrument and a fault stops being a puzzle and becomes a wall.

Seventeen faults, ranked by how far the cause is from the symptom rather than by how much typing they take. The hardest is "it does nothing": the fan turns, the panel light is on, and there is a standoff under a part of the board with no hole above it, shorting a rail to the chassis. To find it you check the fan, then DC volts on the power connectors, then ohms with the harness off, and then the board has to come out.

Under the lid

What you can actually do:

Move any of the five board jumpers. Voltage, multiplier, bus speed, and a pair that tells the board how much cache is in the sockets.

Change the processor. Six fit. Lift the lever, unclip the heatsink, and the two lines of print on the ceramic are underneath it, which is the entire reason they are there. Feed a 3.3 volt part five volts and it dies permanently. There is a spare in the bag. This is the only irreversible thing in the room.

Pull memory modules. Four to a bank, and a bank is four or it is nothing, because the processor reads 32 bits and a 30-pin module gives it eight. Three modules is a bank that does not exist, and the machine says so in three short beeps.

Count the cache sockets. Eight, four filled, and the jumpers offer a setting for more than is in there. Told too much, the board stops mid-boot with one line. Told too little, it runs slower and says nothing at all.

Turn the front panel leads round. Seven groups over sixteen pins. Polarity only matters for the two that are lights: a switch works either way, a diode does not, and an indicator fitted backwards simply never comes on.

Wire the desk. Ten leads run between the case, the mains, the screen, the keyboard, the mouse, the tablet, the printer, the modem and the telephone socket. Any of them can be in the wrong socket, or in no socket at all, and the back of the case is drawn so you can see which.

Measure things. The multimeter has three positions that each do something real. Measuring resistance on a live circuit gives digits that never settle, and nothing on screen explains that, because no meter ever did. It is printed on the back, next to a calibration sticker with a date on it, because the one question the front of a meter cannot answer is whether you should believe it.

The dividing rule throughout: the object carries the mark, the paper carries the rule. The board says where pin one is. The manual says the red conductor goes over it. Neither says both, and holding those two facts in two different objects is the whole task.

The manuals are English on both language columns, because a manual for a no-name board assembled in Taiwan was English in Norway as it was everywhere. One of them, for a multi-I/O card, is fourteen jumper tables and a reference to Table 7, which is not included in this revision. The colophon on another notes that a Norwegian edition was discussed at some length and then not printed, which is how these things went.

The shelf, where a box is an event

There are four cartons on the shelf above the desk. A graphics card with a blitter on it, a sound card with a CD-ROM drive in the same box, a 28.8 modem, and ClickSpace 3.11 on eight diskettes.

Sealed, nothing in the machine can reach what is inside. Torn open, the box is empty for good, and there is no confirmation dialog in front of that button, because a machine that asks whether you meant it is a machine that does not believe you. The warning sits next to the hand, before the hand moves.

The back of a carton is not decoration. It is the requirements list, and every refusal the installer prints quotes it word for word: 386 or better, 4 MB recommended, VGA with 256 colours recommended, at least 20 MB free, mouse recommended. That is the object-and-paper rule again, with the paper being the box the reader has just torn open.

The card inside the box is the difference between a fast 486 and a 486 that feels like a different machine. A 486 has no blitter, so the processor writes every single pixel on the screen. Vision Master has one. That is what the word accelerator meant on a carton in 1994, and you feel it in the one place you would have felt it then, which is how long a window takes to come back after you drag another one over it.

ClickSpace 3.11

An installation that fails and tells you why is already an experience, and it is the part most people over forty have a relationship with.

So the setup program is character mode, it asks for the disk it wants by name eight times, and it has six refusals that you can actually reach: not enough memory, no hard disk, a full root directory, the wrong diskette, a diskette that is not a ClickSpace diskette at all, and an empty drive. The memory one is the one that means something, and the line under it names an instrument rather than an answer: MEM shows you what is loaded, and where it went.

The pack says ONE PACKAGE, TWO LANGUAGES on the front, so setup asks which language you want on its second screen and speaks that one from then on, whichever side of the site you are reading. The answer costs you something. Diskette 8 is the Norwegian half: choose Norsk and it is eight swaps, choose English and it is seven, and the last diskette stays in the box. It is the only answer on this machine you feel in your hands.

What you get is a desktop with a file manager, a text editor, a paint program, Solitaire and a terminal, and each of them measures something nothing else on the machine can measure.

PaintStudio is the clearest. The screen has 256 colours and the printer has one bit, so printing is a trade, and what comes out is your picture dithered down to it. The file size is not a formula either. A PCX is run length encoded per scanline, so the file is as big as the picture is busy, and the status line runs the real encoder over what is actually on the canvas. Empty canvas, 1 344 bytes. A dense pattern, 24 855. Take video memory out and the palette drops to four bits, the grey ramp disappears, and the same drawing comes out at 12 568. It is the one place in the room where removing something makes a number better.

Solitaire is Klondike, draw three, and it holds 52 cards as bitmaps, which is 13 400 bytes of its own listed weight. It is the program you close when you need the memory back, and that was true of it before it was playable.

The terminal talks to the modem before it talks to anything else, which is the half of it that can be set up wrong. You type AT and it comes back OK, or nothing comes back at all, and which of the several possible reasons that is, is what the terminal is for.

Three games, and they are the actual games

Wolfenstein 3D, Commander Keen 1 and Doom run on the machine. Not a video of them. A real DOS emulator inside the room, taking the zip off a diskette, with the case still drawn round it.

The sizes are the whole story and they sit next to each other on one shelf now. 364 kilobytes, 1.3 megabytes, 5.5 megabytes. December 1990, December 1992, February 1995, on the same desk. Keen ran on the machine you already had. Wolfenstein made you trim CONFIG.SYS. Doom did not fit on a diskette at all.

So Doom has an installation, and the installation is not ceremony. Five and a half megabytes does not go on a 1.44 diskette, so id cut one archive in two and shipped DEICE to put it back together, and that was the only way the game could be carried. Disk one has no slack in it either. The raw total is 1 456 945 of 1 457 664 bytes, but a diskette allocates in 512 byte units, so the four files round up to exactly the capacity and DIR says 0 bytes free. I wrote 719 in three drafts before the machine told me otherwise. The number on the screen is the one a reader can check, and the raw sum was mine.

The processor jumper becomes something you feel. Doom runs at 24.0 frames a second with the board set to 66 MHz and 13.4 with the multiplier halved, both measured on the machine. Wolfenstein owns the memory lesson. Doom owns the processor and the card.

And Doom's own SETUP.EXE is the best argument the room has. It asks which sound card you have, at which address, on which interrupt, on which channel, and lets you test it. That is the interrupt puzzle asked by the game itself, in 1994, and the last menu item is Save parameters and launch DOOM.

Everything borrowed here is shareware, and the licence is on the diskette rather than in a footnote. TYPE VENDOR.DOC gives you Apogee's distribution terms on the machine, which is the only way a museum can show its own title to the things it displays. The fourth game, the one that wants 570 kilobytes, is the house's own: three diskettes and a demo, written here, with nothing borrowed in it.

The notebook

On the desk there is a school exercise book with DATA on the cover in ballpoint, a company name crossed out and a better one written over it, and PRIVAT!! at an angle in the corner.

Twenty pages. A numbered list of plans on the inside cover, ending on «Bli den største tavla i Oslo». A dated entry from 2 February 1993 about a motherboard and a power supply that gave up on the same day. A chapter on memory with the commands printed rather than written, because a DOS command is the one thing a twelve-year-old stops and prints carefully.

There is a build recipe in it now too, eleven steps over two pages, dated 19.11.94, which is the day the board was made. The break between the two pages is where the order changes character: the things that have to go underneath something else, and the things that plug into it.

And 33 laws, De udiskutable naturlovene for PC-bygging, three of them underlined in red. The red is a different pen, which is the point: three things he got up and fetched something for. The first is «IKKE RØR EN DRITT MED STRØMMEN PÅ».

There is a small English flag at the top of the book. It opens a card whose entire content is that there is no English edition, and then why.

Three ways in

The room has a door now. A shared link used to build the machine on the spot and drop you inside a 1992 case, in whatever language the address happened to carry, with nothing having said what this is. So the door says what it is, offers English and Norsk as two finished addresses, and then offers three ways in, in the order the work gets heavier.

The sandbox. Nothing is wrong, no stopwatch, and the bag holds every processor ever made for the socket, including three the board's own manual is too old to have heard of. Everything still bites. A sandbox where nothing can be broken is a sandbox where nothing can be learned.

Building. An empty case, no standoffs, no screws, no board, an empty socket, nothing in the slots and the power off. The machine says nothing at all, because without a motherboard there is nothing in the case that can beep, and it is the one premise where you have to do something before the machine answers anything. Then five upgrade jobs that run the other way: here is what the machine should say when you are finished, go and make it say that. Memory test 8192K. 1024 kB of video memory. Cache 256 KB. A 486DX4-100 in the socket, which takes the voltage jumper before the multiplier and bites you if you do it in the other order.

Something is wrong. Three evenings and seventeen faults where only the symptom is known. The card that offers them quotes the machine rather than explaining it:

«It writes a semicolon when you press ø.» «There is music in the menu. Then it hangs as the level loads.» «There is 36 megabytes free and it refuses to create the directory.» «A light that never comes on.» «It does nothing.»

The diskette that says IKKE SLETT

There is one diskette in the box with no proper label, and the password on it is the one every reader of a certain age already knows. It is a service tool, and it has grown into the most honest thing in the room.

Nine tabs. A live log that has been taking notes since your first click, unfiltered and far enough back to be worth reading, derived from the three places the machine already passes through rather than written by hand at eighty-five call sites. A full interrupt, DMA and I/O map with the free entries listed. Graphs of speed. Fixtures that put the machine in a known state in one press.

And a tab that answers why not. Eighteen predicates, seventy-two terms on a finished machine, and the machine runs on the same table the tab reads, so the tool cannot have an opinion of its own about why the CD drive is not ready.

The ninth tab is the answer key: all 31 scenarios, 155 steps, each one a summary and a numbered list with a button that loads the scenario underneath it. There is no list of steps anywhere. A step exists because somebody wrote it, and the tab counts them by reading the words, so the day a step is missing the machine says so instead of quietly renumbering the rest.

Building that tab meant walking every one of the 31 in a browser and checking that the symptom is what the machine actually does and that the fix actually fixes it. Two steps got rewritten because the measurement said something other than what I had written down.

Not finished

Queued: a dead print head pin, which puts a white stripe through every character on the page and is diagnosed by looking at the paper and counting which of the nine rows is missing. A second motherboard, which is now a row of data and a manual that writes itself. And the sound card jumpers have never been driven through a real game's own sound test from end to end, which is the next thing I want to watch someone do.

The assignment I wanted to get to is built. Here are the specifications, build this machine is the empty case, and the recipe in the notebook is dated the day the board was made.

Nobody misses waiting for computers. But there was a period, roughly the fifteen years before everything started configuring itself, when a machine could be held whole in your head. Not a simplified version of it. The actual one, down to which interrupt the card was on. It would not tell you, and the reward for working it out was that it then did exactly what you wanted, and you knew why.

More

VectorUP

VectorUP is still under development, and I want to be clear about that from the start. This is not a finished product with a locked feature set and a grand announcement waiting around the corner. It started because I needed something myself. My launcher had become increasingly cluttered with applications, folders, websites, tools and all the other little things I use all the time, and at some point the thing that was supposed to make life easier had started becoming part of the mess. VectorUP grew out of that problem. The name means Vector Unified Portal. “Vector” is about direction, getting from intention to action with as little friction as possible. “Unified Portal” is the idea of having one sensible entry point into the things you actually use, whether that happens to be an app, a folder, a website, a command, a workspace or something else entirely. Where the project eventually ends up is still unknown, but the direction is becoming much clearer.

Read more

AI Made the Tool Faster. It Did Not Remove the Responsibility.

I was asked to share my thoughts on artificial intelligence, specifically whether I'm for or against it. I quickly realized that a simple yes or no wouldn't do the subject justice, so I decided the only fair way to answer was to write an article. When discussing something as complex and far-reaching as AI, I believe we owe it to ourselves to understand more than just what the technology makes possible. We also need to understand its limitations, consequences and potential threats. That should be the bare minimum before we start using it, especially as we continue to give it greater responsibility and influence over our lives. After all, how can we form a meaningful opinion about a technology we haven't even bothered to understand?

Read more

From Dial Tone to Fiber

A personal journey through the technology that transformed everyday life, from floppy disks, modems and BBSs to the always-connected world we take for granted today.

Read more

All the posts