[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