What are Lisp Machines? See here (also has links to more information).
After hacking the CADR emulator (much fun!), I hacked emulators for the TI Explorer: the Meroko and Nevermore for a while. Currently I'm bit by the Lambda bug: the LambdaDelta emulator for the LMI Lambda by Daniel Seagraves.I sometimes run a real Symbolics 3650, but it's very very noisy (and the screen is now illegible)... Back in the old days I worked on real CADRs, LMI Lambdas, and TI Explorers.
The Lambda emulator (LambdaDelta) is really really good: on a modern machine it's at least as fast as the original (although it interprets the microcode), and you don't have to re-seat the boards every now and then, like on the original! So far I made small contributions to it, like implementing the visual and audible bell, and fixing small bugs.
I also ported the DNS implementation I did for TI Explorers back in 1987 to the LMI system, and implemented DHCP for it. Let me know if you want a copy.
I hacked the keyboard emulation for the "new" keyboard, and the Chaosnet interface.
See some files for setting up the CADR system. To compile it on macOS 11.12, I needed a tiny patch to syms.c and to the Makefile.
Check the Explorer manuals.
Occasional MD CLOBBER PROTECTION STOP 7 crashes, reading
#<SYS:DTP-TRAP 1> from random places, and "real" crashes, show the emulator isn't bug free.
I'm not actively hacking this anymore - sadly, it's way too slow. The idea of writing a LispM emulator in Lisp is very nice though.
The problem is that the third disk isn't found. In nupi-nubus.lisp, the function
(ash (+ 2 2) 2) to
(ash (+ 2 3) 2). (This stuff should use a configuration.)
I have changed
nupi-handle-command-drive-write so they don't open the disk files on each request, but keep them open. Will post the patch later.
I'm hacking the RTC support, and interval timers. The clock seems to be fairly correct, but microsecond-time is not - this shows up in timeouts and in the console idle time.
I have made some basic mouse support.
|© Björn Victor <Bjorn@Victor.se>|
|Senast ändrad: 30 augusti 2017.|