|Lisp, Lisp Machines and More!         |
Retrocomputing - MIT CADR Lisp Machines
I took the red pill... two, in fact :-)
You can find the MIT CADR Lisp Machine Source code here.
This a software emulation of MIT CADR lisp machine. It's basically a program to run the lisp machine microcode. The emulator includes support for the keyboard, mouse and disk so that it can boot from an original lisp machine 'load band' (a load band is basically a disk image of memory pages). Several load bands and micrcode images are provided as well a program to make complete disk images.
The emulator runs pretty reliably and includes network support for Chaosnet. A basic chaosnet file server is included.
It boots a load band, uses the network & the FILE server!
Mac OS X Version! Win32 Version!
Included in the
In the <tt>new/</tt> directory are some lisp files which will allow you to resize the screen (statically) and fix the date display on the who line.
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.
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.</p> <p>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
Obligatory screen shot:
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.
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.</p> <p>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.</p> <p>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 files
Disk Image files