Retrocomputing - MIT CADR Lisp Machines

MIT lisp machine logo MIT lisp machine top

updated 07/11/2006

I took the red pill... two, in fact :-)

MIT CADR Lisp Machine Source code

You can find the MIT CADR Lisp Machine Source code here.

CADR Emulation

It boots a load band, uses the network & the FILE server!
Mac OS X Version! Win32 Version!

08/07/06 CADR usim v0.9 - fixed Mac OSX little endian support; now usim and the chaosd file server work. Added code to sync the SDL mouse with the microcode. The mouse now stays with cursor. Add ability to save the memory state (-S) and then do warm start (-w). Warm start get the machine running instantly instead of the impossibly long delay you get on cold boot. Includes some simple speed ups.

Included in the disks/ subdirectory are also some LMFS FILE partition images with the 78.48 and System 99 sources. There is a README file which describes how to install the file partitions into a disk image.

In the new/ directory are some lisp files which will allow you to resize the screen (statically) and fix the date display on the who line.

07/11/06 CADR usim v0.8+ - more bug fixes and speedups. chaos code now supports (si:recompile-world). Fixed long standing bug which overflowed cycle counter and crashed emulator. New improved diskmaker. chaosd works better. you can resize the screen now.

Fixed ALU bug which seems to have been causing crashes in the scheduler. Now should stay up much longer. I was able to load an assemble the 841 microcode, for example.

New chaos fileserver code. easier to use, better README, bug fixes.

The network daemon now starts the required servers so you can access the linux file system via chaosnet. Nice for recompiling sources and running demos.

V0.7: Finally got OS X (10.4) version working. Some speadups. Improved diskmaker. Bjorn's new keyboard mapping code. Updated README.

V0.6: I built a version of the CADR emulator for Win32. The zip file contains the binary executable and all the files you need. Be warned, however, it creates a big window. The win32 version does not currently support networking.

New release of CADR emulator (V0.5) with Chaos networking and FILE server

Bjorn Victor has been helping me debug the chaos code and enhance the emulator. It now will talk to the FILE server and read and write files from a linux host. It's still fragile but it works enough to experiment with. The emulator is more stable now and support C-M key combinations. You can debug, compile functions and run code.

Start the chaosd and then server. The server will start the FILE program when the first question comes in. I use this sequence to set up the file system

(login 'name t)
(si:set-sys-host "server" ':unix 0404 "//")
This command will take a while to complete (2-3 minutes). Once it's working you can start emacs (F2-e) and then open a file (C-x C-f server:/tmp/filename). Ah - the moment I've been waiting for. The original lisp code in zwei, on the screen!

You can also make a local file system in the FILE partition with

Use the file system editor to make a directory to save your files in.

Obligatory screen shot:

ZMACS running on CADR

Another showing lisp and more output

Released the MIT CADR LispM source code.

I've been working on an automated conversion of the original CADR schematics to verilog. After a long delay (read real work) it's starting to run and gets about 1000 instructions into the boot prom.

Also Bjorn Victor has taken a interest and has been extremely helpful finding bugs and giving me patches. With his help we have the simulator working on the network and I'm working on a FILE server. We've fixed a few bugs and sped things up a little and it's getting much better.

I've been working on a emulator of the MIT CADR. Basically a program to run its microcode. It is now running to the point where it runs a load band. There is basic display, mouse and keyboard support. There is some code for the chaosnet interface but it's not (yet) wired into the real network.

The emulation is still a bit raw. I fixed a long standing bug in the divide logic which caused the dates to be wrong and floating math to be incorrect (i.e. 1.1 printed as 0.4).

The microcode (as you might imagine) takes advantage of many "features" of the hardware, some of which are subtle. I hope to do a verilog version of the hardware next and that will no doubt uncover a few of the things I missed. I wanted a clunky "C" version first, however, to verify the basic notions. And, I wanted a place to run zetalisp :-)

The source tar file includes a prom binary from a actual CADR. The disk image file has a label, microcode and load band. It looks like a Trident T-300 disk.

There are several utilities for making disks and looking inside load bands.

I'm written a small questions/errata page on AI Memo 528, please comment on it if you have used a CADR and/or know the architecture.

Below is also a large .pdf (11mb) of the AI labs "memo 528" which describes the CADR. Some some reason the other on-line versions stop after page 42 and are missing page 18. This version is 75 pages.

This version of the emulator is just a quick and dirty hack intended to prove out the concept. It's not intended to be pretty or fast - just accurate. It seems to run at about the same speed or slightly faster than an actual CADR.

And please feel free to email diffs :-)


CADR Emulator


CADR Hardware