saul.pw/ software writing art links crosswords

Mag World: Computers

The scale of computing achieved over the past 50-75 years has been breathtaking in both capability and adoption. We’ve become so accustomed to exponential growth, such that terabytes and teraflops–once inconceivably large quantities of computing power–are now standard units in consumer devices. This exponential development has gone so far, so fast, that we haven’t had the time to appreciate one level, before the next higher one has displaced it.

So we’ve only been in contact with each of these levels for a very short period of time–generally less than 10 years. This makes it easy to forget, as a culture certainly, but even as individuals, what it was like to use lower level technology. Most importantly those positive qualities which are lost due to the emergent complexity of the next higher level.

Mag Computer

Our primary anchor is computer memory, which roughly correlates with computing power. (At higher levels, the need for RAM levels out and multi-core/superscalar contributes more to compute capability.)

So let’s define a general scale of computer, as a combination of RAM and FLOPS (and maybe other considerations). A ↑0 computer has a few bytes of memory and can do one operation per second, while a ↑10 computer is a MacBook Pro with 64GB of RAM.

↑0 Computer: Human

↑0 is “human computation”, using fingers or stones or other mechanical aid. Storage media progressed from stone to clay to paper, but otherwise the technology has been stable for thousands of years.

A human can hold several bytes in short-term memory, and a human computer on the Manhattan Project (1944) could do up to a thousand calculations per hour by hand–almost 1 per second.

So a human can be a ↑0 computer that can do ↑0 arithmetic operations per second (ops) with ↑0 memory (bytes).

There has never been a ↑0 electronic computer. Any electronic computer has more than 10 bytes of RAM, even if it can only do a few operations per second.

A cash register might be considered a ↑0 mechanical computer.

↑1 Computer: Calculator

Hollerith Tabulator
(1889)

HP-35
(1972)

Atari Home Pong
(1975)

A ↑1 computer has some 16-64 bytes of memory. For instance, the HP-35 scientific calculator (1972) has ~40 bytes of memory.

We might consider unit record equipment as ↑1 computers, or mechanical tabulators, which from 1890-1930 became well-established for the tabulation of punchcards for the census and running large organizations. They provided higher precision calculations, medium-term storage, sustained performance, and immediately printed output.

We should probably also consider first generation video game consoles like the original Magnavox Odyssey (1972) and Atari Home Pong (1976) as ↑1 computers, even though they did not have any literal “Random-Access Memory” (as they used analog or discrete logic).

↑2 Computer: 8-bit (1975-1979 gaming consoles)

Fairchild Channel F
(1975)

Atari 2600
(1977)

Intellivision
(1979)

A ↑2 computer has an 8-bit address space with up to 256 bytes of RAM (possibly 512 or 1024 with bank-switching). It’s engineered for a single specific use case, and isn’t really a general purpose computer, even if it is officially programmable.

There were very few ↑2 computers before 1970. Computers were so expensive, that if you needed more than a ↑1 calculator, you bought at least a ↑3 computer. (And if you didn’t need it full-time, you could sell access to it by the hour, like a previous generation of the cloud).

The most common ↑2 computers were second-generation video game consoles in the 1970s, which had minimalist “graphics” (dozens of pixels!) and “music” (square waves or explosion noises). The Fairchild Channel F (1975, 64 bytes RAM, 2kB video buffer) used cartridges while the Nintendo Game&Watch (1980, 256 bytes RAM) had stencil graphics and only one game, but it was portable and also functioned as a timepiece.

↑3 Computer: 12-bit (1975-1979 PC)

Altair 8800
(1974)

Apple I
(1976)

TRS-80 Model I
(1977)

Sinclair ZX80
(1980)

Nintendo Famicon
(1983)

Nintendo Gameboy
(1989)

A ↑3 computer has a 12-bit or 16-bit address space, and 1kB to 8kB of RAM.

At levels lower than ↑3, computers must be programmed directly in machine code. Possibly in assembly language, but the assembler would have to be hosted on a (different) higher-level computer.

At ↑3, you can use a simple higher-level language like BASIC (1964) or Forth (1969). It’s incredibly cramped, but it’s possible.

For example, the Altair 8800 (1975), which kicked off the PC revolution, had a base of 256 bytes RAM, which was only enough for basic machine code experiments and simple I/O. But when an additional 4kB or 8kB of RAM was installed, it became a ↑3 computer which could run Microsoft’s first product, 4K BASIC, leaving about 790 bytes free for your program.

The ↑3 general-purpose computer from the late 1970s was barely useful. Small games like Hunt The Wumpus could be loaded in from cassette tape, which was slow and unreliable. Or, computer magazines would print the source code to be typed in manually, which was even slower and less reliable.

But third-generation video game consoles like ColecoVision (1982, 1kB RAM, 16kB video RAM) and the NES/Famicon (1983, 6kB RAM), are also ↑3 computers, with colorful backgrounds, animated sprites, and NES chiptune music.

↑4 Computer: 16-bit (1979-1984 PC)

VisiCalc
(1979, Apple ][)

Turbo Pascal
(1983, MS-DOS)

Prince of Persia
(1990, Commodore 64)

A ↑4 computer has 16-bits of address space, which means up to 64kB of main memory. This includes the entire PDP line, from the PDP-1 (1959, 9kB RAM), to the PDP-11 (1970, 56kB). Then the Apple II (1977), TRS-80 Model III (1980), ZX Spectrum (1982), Commodore 64 (1982).

Now we’re getting somewhere. At ↑4, computers become “shut up and take my money” useful.

↑5 Computer: 20-bit (1985-1990 PC)

640K should be enough for anyone.

not Bill Gates

MacPaint
(1984, Macintosh)

WordPerfect
(1987, DOS)

Secret of Monkey Island
(1990, Amiga)

A ↑5 computer has 128kB to 1MB of RAM. It’s either a 32-bit CPU with very little memory, or a 16-bit CPU with too much memory. The latter was the IBM PC (and all its clones), the original Apple Macintosh, and the Commodore Amiga.

640kB really was a decent amount of memory, and you could do a lot with it. But there’s always a desire for more:

Yet, as spreadsheets grew richer, memory ran short. For IBM PCs, the 640K-byte barrier was so limiting that Lotus, Intel, and Microsoft coauthored a standard for accessing expanded memory, which most spreadsheets quickly adopted.

Byte, 1989

This was a really big deal. What happened was, the ↑5 computer that was already stretched from a ↑4 computer had become so popular, that the 3 biggest software companies in the world agreed on a hack, which worked from 1985 to 1995 to prop their ↑5 system up to ↑6 (until Windows 95 and Linux delivered true ↑6 platforms).

The PDP-11 was another such ↑4 computer which over time developed a more sophisticated MMU to make it last until ↑6.

↑6 Computer: Minimal Reality (1991-1995)

Microsoft Word
(1990, Windows 3.0)

Adobe Photoshop
(1990, Mac Plus)

Doom
(1993, MS-DOS)

A ↑6 computer has 1MB to 8MB of RAM, and most ↑6 computers are 32-bit. There are some 16-bit ↑6 computers as mentioned above, but that’s pushing it.

Part 2: ↑7-↑12 Computers