[LispM] A brief history of Explorer emulation

nyef at sc.am nyef at sc.am
Mon May 17 22:11:44 PDT 2004


Hello all.

I was asked (on IRC) to provide URLs and an explanation of what is what 
in the world of Explorer emulation.

In the beginning, there was the Explorer III project, or E3 ( 
http://www.unlambda.com/lispm/ ). This was an ambitious project to 
replicate the TI environment at a macrocode level. Unfortunately, the 
project stopped progressing once it could read a load band and 
disassemble the first function. People on the mailing list spent months 
talking about how hard it would be to emulate function calling, and 
nobody really wanted to do the work.

Next, there was Exploiter (cvsweb at 
http://www.unlambda.com/cgi-bin/viewcvs.cgi/exploiter/ ), which was 
originally a throwaway program to read a load band and figure out 
exactly what was involved in the first case for function calling. At the 
time when I wrote the first version I couldn't run E3 on my computer. 
This project stopped progressing once it could run a load band as far as 
the second task switch (the state of an inactive stack group is not 
well documented, nor is the behavior of stack group switching with 
respect to the binding stack well understood). Of all of the emulators, 
this is the one that runs the most Lisp code (or, more accurately, is 
the only one that runs any Lisp code).

At the same time that Exploiter was getting started, someone else on the 
list was doing their own emulator. This emulator was a microcode-level 
simulation of the Explorer II processor, but was never released. We know 
that it got as far as accessing the display board, but we don't know how 
much further it got.

Our final emulator for today is Nevermore ( 
http://www.dridus.com/~nyef/lispm/ ), which is a microcode-level 
simulation of the Explorer I processor. As the README file will tell 
you, I originally wrote it as a disassembler (my third attempt) for the 
Explorer microcode. This is the first Explorer emulator to be able to 
produce screenshots. It will start from the STBM microcode (stored in 
ROMs on one of the processor boards), and can load the standalone 
processor diagnostics from a disk image, but can only pass seven or 
eight out of sixteen CPU tests at this time. Presumably once it can pass 
all of the CPU tests the Lisp world will be easy enough to get working.

For the curious, E3 is written in C++, Exploiter is written in C, and 
Nevermore is written in Lisp. I don't know if that means anything.

On a side note, if anyone on the list has a working Explorer I (not the 
Explorer II or microExplorer) and would be willing to help out, let me 
know? I just need this one ROM image that can best be obtained from a 
working system...

--Alastair Bridgewater


More information about the LispM mailing list