muir↗CADR PRESERVED.
QUUX EVOLVED.

THE LISP MACHINE · WHAT IT IS

A computer
built for Lisp,
and written in it.

A Lisp Machine is a whole computer — a processor, main memory, a disk, a screen, a keyboard and mouse, and a network — whose processor and memory are built around the Lisp language. Even its microcode is written as Lisp data, for a microassembler written in Lisp.

This page goes through it a layer at a time, from the hardware up. How it runs follows one boot, and what the system does once it is up: its memory, its processes, its interrupts and its keyboard.

“Everything on the Lisp Machine is written in Lisp, including all system programs; there is never any need to program in machine language.”

— the Lisp Machine Manual, its introduction.

01 / THE IDEA

One person,
one machine,
all Lisp.

Lisp, from the instruction set
to the windows on the screen.

The Lisp Machine was built at the MIT Artificial Intelligence Laboratory to relieve the problems of running large Lisp programs on time-sharing systems. It is a personal computer: whoever uses one has its processor and its memory to themselves for the whole session.

Everything on it is Lisp. Not only the programs a user writes: the window system, the editor, the compiler, the network and the access to files — what another computer calls its operating system — are Lisp programs in the same memory as the user’s, and are changed the same way, by loading new definitions of their functions.

The hardware is built for it. Every Lisp pointer carries a data type as well as an address, and the instruction set is made for compiled Lisp: the translation between Lisp and it is, in MIT’s manual’s words, very simple, and many Lisp functions, such as get and assq, are single instructions of their own.

02 / THE LAYERS

From the boards
to the listener.

Five layers, each brought up by the one below it. The band is the Lisp world the machine boots into, and the Lisp system is that world, running.

FIG. 01 — THE LAYERS OF A LISP MACHINEFROM THE BOTTOM UP
LAYER WHERE IT LIVES 5 the Lisp system virtual memory, one address space processes, windows, the editor, the compiler, the network, files; your programs 4 the band a partition of the disk the saved Lisp world, brought back at boot and paged in as it is used 3 the microcode the control store, loaded at boot runs Lisp’s instructions; handles page faults, interrupts, stack groups 2 the boot PROM read-only memory tests the hardware, loads the microcode, hands over 1 the hardware the boards processor, main memory, disk, display, keyboard and mouse, network
The Lisp system is drawn tinted: it is the only layer a user normally sees, and it is the band’s world, running.
1 / THE HARDWARETHE BOARDS

The machine itself

A processor, main memory, a disk, a display, a keyboard and a mouse, and a network interface. The CADR’s processor is a 32-bit one on two boards of its own: one carries the data paths, the other the control memory. Everything else is on the two buses beside it.

The disk holds the microcode and the Lisp world. The screen is a bitmap, one bit a pixel: the picture is exactly what the software has written into the frame buffer.

2 / THE BOOT PROMREAD-ONLY

The first program

A small program in read-only memory, and the first thing the processor runs when it starts. It knows nothing of Lisp, bands or virtual memory.

It tests the hardware a bit at a time, clears the processor’s memories, finds the current microcode on the disk and loads it into the control store, and then hands the machine over to it. Which microcode a machine runs is written on its disk, not in its PROM.

3 / THE MICROCODETHE CONTROL STORE

The instruction set, in software

The processor’s own instructions are microinstructions, 48 bits each on the CADR and 64 on QUUX, kept in a writable memory, the control store, of 16K of them. The microcode is the program written in them, loaded from the disk at every boot.

It carries out the instructions the Lisp compiler produces, the 16-bit macroinstructions, fetching each and dispatching on its opcode to the microinstructions that do its work.

4 / THE BANDA PARTITION OF THE DISK

A saved Lisp world

A band is a saved image of a whole Lisp world: every function, object and window, as they were in memory when it was saved. MIT’s bands are the disk partitions named LOD1, LOD2 and on; disk-save writes one.

Loading a large system from its files takes a long time, so it is loaded once, saved in a band, and every boot starts from there.

5 / THE LISP SYSTEMVIRTUAL MEMORY

The system, running

One Lisp world in one address space. The processes and their scheduler, the window system, the editor, the Inspector, the network, the file access and the compiler are all programs in it; the System key and a letter selects one (how it runs).

A change to the system is loaded into a running world as a patch, new function definitions over the old, and saved in a new band.

03 / WHY MICROCODE

An instruction
that does a lot.

An instruction for Lisp does much more than an addition does. A function call sets up a frame and its arguments before the function’s first instruction runs; a read of memory may meet an invisible pointer, a word that says the value is somewhere else, and follow it; and many Lisp functions are instructions by themselves, written by hand in microcode.

The CADR’s processor is a general one, designed for convenient emulation of complex instruction sets, and on it the microcode interprets the Lisp instruction set. The microcode’s main loop fetches a macroinstruction, dispatches on its opcode to the microcode that does it, and comes back for the next.

The microcode does more than run instructions. It takes page faults and reads pages from the disk, it answers the devices’ interrupts, and it switches the processor from one stack group, one computation’s saved state, to another. How it runs says what each of these is.

Because it is loaded at boot, the microcode can change without the hardware changing. MIT kept it apart from the Lisp world on the disk, in partitions of its own named MCR1, MCR2 and on, so that it could be changed without generating a new system.

04 / TWO MACHINES

CADR
and QUUX.

Everything above holds for both. What differs is in the details of each layer.

THE MIT ORIGINALAROUND 1978

CADR

The Lisp Machine built at MIT’s Artificial Intelligence Laboratory around 1978: the machine the Lisp Machine system was written for. Its clock is its display’s frame, it gets its files and the time from a host on the network, and it runs MIT’s microcode and system, and muir-sys’s releases for it.

Inside the CADR
THE CADR, EVOLVED2026

QUUX

The CADR evolved: changed where a change pays for itself, and everything it does not change is the CADR’s. Its boot PROM has addresses of its own, its disk has a GPT partition table, its clock is an interval timer, and it reads files from folders of its host through a file device. It runs microcode and a system written for it by muir-sys.

What QUUX changes

05 / READ MORE

More information.

  • How it runs: the boot, memory and paging, processes and the scheduler, interrupts and sequence breaks, windows and the keyboard, files and the network.