Retrocomputing - MIT CADR Lisp Machines
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 EmulationIt 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.
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.
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
(lmfs:fsmaint-fs-initialize)Use the file system editor to make a directory to save your files in.
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.
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 :-)