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.

4 Responses to 'My own LispM (sort of)'

  1. Joe Oswald Says:

    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.

  2. Robert Pratte Says:

    Really exciting work here! What version of OS X and which Lisp (sbcl, openmcl, etc) are you building this under?

  3. mrbill Says:

    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.

  4. Joe Oswald Says:

    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.