Mag Computer (pre-1995, pre-internet)
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
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)
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)
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.
- Useful software: The PDP-1 had the first text editor, the first word processor, the first interactive debugger, and the first credible computer chess program. Likewise, on the Apple II with 32kB, you could run VisiCalc and WordStar, and on the IBM PC you had dBase II.
- Compiled languages: A ↑4 computer can host a C or Pascal compiler; for example, Turbo Pascal (1983) could run in 64kB of RAM. This makes it possible to write more and better software faster.
- Floppy disks: Floppies were needed for everything in ↑4 PCs: software distribution, runtime execution, data storage, data transfer, and backups. You would buy the software on a floppy, stick it into your computer, and run it off that same floppy disk, until it became too worn. [Therein lies the reason for the Computer Software Rental Amendments Act of 1990, to give users the legal right to make copies of software for their own personal use (!)]
- Synth chiptune. The Commodore 64 could synthesize more sophisticated waveforms, resulting in SID chiptune music.
↑5 Computer: 20-bit (1985-1990 PC)
640K should be enough for anyone.
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.
- Hard disk. At ↑5 larger persistent storage becomes necessary. This was true of ↑5 mainframes and minicomputers too; they had a rotating drum or other mechanism to store data. Floppies were still used as an installation medium, for data transfer, and for backups (it was quite tedious to backup a computer onto dozens of floppies). But at least you didn’t have to run your software off floppies anymore.
- Graphical applications. At ↑5, you can have a graphical interface with a mouse. This allows desktop publishing, presentation software, spreadsheet graphs, and cartoon animation.
- MIDI. 16 channels of high-resolution samples and sophisticated synthesizers.
- Utility multitasking. A ↑5 system can run multiple small utilities at once, but it has to be clever and consume minimal resources. The overhead and complexity of protecting access to memory and devices is not worth it at ↑5–if the hardware even supports it.
- Connectivity. Although the first BBS ran on a ↑4 Apple II, a ↑5 BBS has a hard drive and the ability to process multiple simultaneous clients.
- Code reuse. Higher-level languages mean portability between platforms. At ↑5 you can start to incorporate meaningful amounts of code written by other people into your own system.
- “Enough” space. VisiCalc could run in 48kB (↑4), but it was cramped–every last byte was precious. And even then, it only supported 254 rows by 63 columns. Lotus 1-2-3 allowed much larger spreadsheets, and colorful graphs besides.
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.
This was a really big deal. The ↑5 computer, which 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 (1970) 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)
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.
- CD-quality audio. 16-bit stereo 44.1kHz is as good as it gets, and it could finally be played on a general purpose computer (with a 16-bit sound card).
- CD-ROM. Floppies were still used for software installation of ↑6. But the beautiful multimedia puzzle game Myst (1993) was a killer application for CD-ROM drives.
- Low-resolution video and 3D. Video playback and 3D rendering at 10-30 frames per second (fps) and 320x240. This is minimal, but recognizable.
- Local Area Network (LAN). At the office, computers were connected to a Local Area network 1 megabit (↑5 bandwidth) LAN. At home, people used dialup (↑3 bandwidth) with Compuserve, Prodigy, or AOL.
- Application multitasking. A ↑6 computer can run multiple full applications, but with cooperative multitasking any one of them can still hang the whole computer.
Hollerith Tabulator
HP-35
Atari Home Pong
Fairchild Channel F
Atari 2600
Intellivision
VisiCalc
Turbo Pascal
Prince of Persia
MacPaint
WordPerfect
Secret of Monkey Island
Microsoft Word
Adobe Photoshop
Doom