My own LispM (sort of)
I finally got Brad Parker’s MIT CADR emulator up and running. Here are some screenshots.
This weekend I’ll try to port the code to OS X (with X11). There’s some OS X-specific stuff commented out in the provided Makefile, but I still haven’t gotten a clean compile yet.
December 1st, 2005 at 10:12 am
I’ve gotten the CADR emulator working (mostly?) on Mac OS X with PPC.
1) got SDL installed
2) added some #includes, adjusted some printf codes to get rid of warnings, probably some typecasts. I also tried to make typedefs to clarify the widths of various types, instead of depending on the size of int and long long.
3) the most important: added byte swapping on disk I/O to account for PPC/Intel differences
Still to do: get the CHAOS user-mode emulation to actually work. There are some annoying differences between Mac OS X on sockets (an extra entry in a structure for BSD 4.4 that the chaos code does not properly account for: the symptom is that the socket names drop a character for some calls.) Also, there seems to be some issue with setting permissions, etc., which I commented out. I got it to work enough (socket to exist) that I didn’t need fake chaos support, but still can’t talk to the server process properly; probably some residual endian-ness assumptions in the type unions. CHAOS addresses get flipped around in bad ways.
Also, disk *writing* appears not to work right for me; initializing the FILE partition causes C error messages to be logged.
December 1st, 2005 at 7:17 pm
Really exciting work here! What version of OS X and which Lisp (sbcl, openmcl, etc) are you building this under?
December 1st, 2005 at 7:22 pm
Robert - I’m running OS X 10.4.3, but this isn’t running under a modern Common Lisp; it’s a binary emulation of the original MIT CADR hardware and software (and I’m running it under Linux for now until I get it working under OSX)
See http://www.heeltoe.com/retro/cadr/ for more information.
December 2nd, 2005 at 10:28 am
False alarm on the disk writing, by the way. The provided disk.img was not long enough to contain all the blocks that were claimed in the disk header. I added on enough zeros to the end of the file, and I was able to at least format an LMFS file system onto a partition.
Also, to avoid typing hell, I changed the backspace key to send Rubout instead of Overwrite, which it did before.