Hacking nevermore – A TI-Explorer Lisp Machine emulator

Another interesting emulator is nevermore, a lisp machine emulator for the TI-Explorer written originally by Alastair Bridgewater. The Explorer was built by Texas Instruments, a workstation-class machine made roughly in the mid-late 1980’s. Intended for symbolic AI applications, The Explorer had the processor built on two cards in a 7-slot NuBus backplane, SCSI and SMD disk drive controllers, and ethernet, and could use memory boards from 2Mb to 32Mb each.

Nevermore simulates the Explorer at the microcode and hardware level much like usim and LambdaDelta, though doesn’t simulate the actual code being used on NuBus boards, like LambdaDelta.

The coolest part is that nevermore is written in Common Lisp rather than C, which has a certain aesthetic appeal! Having hacked quite a bit already with C during my misspent youth, most of my fun these days relates to learning more Lisp while hacking on nevermore.

I use a slightly hacked version based on the above; let’s see how it works and looks.

Nevermore Setup

On Ubuntu 18.04, the apt installed version of SBCL (Steel Bank Common Lisp) works fine for nevermore. We’ll also need quicklisp to pick up the X11 client library, clx:

$ sudo apt install sbcl
$ curl -O https://beta.quicklisp.org/quicklisp.lisp
$ sbcl –load quicklisp.lisp
> (quicklisp-quickstart:install)
> (ql:add-to-init-file)
> (ql:quickload :clx)

Now we’ll have to fire up our favorite editor… while I use emacs for Lisp programming, anything will work.

You’ll need to get your own disk image files; I’d recommend looking at meroko. The PROM files supplied here are the same as those found on bitsavers.org.

We’ll have to edit nevermore.lisp to tell the emulator where to find the PROM and disk image files:

Nevermore TI-Explorer path configuration
Nevermore – path configuration

Once the paths are set up, we can give it a spin:

sbcl –load nevermore.lisp

Nevermore TI-Explorer boot prom
Nevermore – boot prom

Nevermore will spam out a lot of diagnostics in the terminal window; that’s normal. Many of those messages indicate NuBus transactions that need to be handled in a more reasonable way within the emulator. Since nevermore is a Common Lisp program, debugging under emacs with SLIME makes the guts of the emulator reasonably transparent.

TI-Explorer Operations

Pressing ‘d’ for the “Default load” or just letting the boot prom time out will load the Lisp world, and eventually reward us with:

Nevermore TI-Explorer emulator ready to work
Nevermore – Rockin’ like it’s 1988!

Nevermore is Y2K compliant so a normal, modern date will work.

The keymap should mostly work as with other emulators, with Meta mapped to Alt, Super mapped to the Menu key (on 104 keyboards). The file sib-xlib.lisp contains the mappings from X11 keysyms to TI-Explorer keycodes. You’ll find that F5 is the System key, Zmacs will work, but the time is wrong and mouse motion/menus don’t yet work as expected, and bitsavers.org has a big pile of useful documentation for the Explorer. Here’s the emulator working and showing us the disk label for the primary hard drive:

Nevermore – business as usual

Eventually your emulator will crash in the microcode like so:

Nevermore – microcode halt

Looking at this microcode fault is my next project to work on after straightening out the emulation of the real-time clock and interval timers. The irrepressible Daniel Seagraves has done some good work with another TI-Explorer lisp machine emulator, meroko, that has some good hints about how to do this; his work has been a great source of inspiration.

Happy hacking!