In 1983 Texas Instruments (TI) licensed the rights to produce an MIT-derived Lisp machine from Lisp Machine Incorporated (LMI). LMI was one of two companies (the other was Symbolics) spun off from the MIT Artificial Intelligence Laboratory in order to develop workstations descending from the MIT CONS and CADR, computers which ran an operating system and environment written entirely in Lisp.
Also in 1983 TI purchased the Nu Machine and the NuBus (again children of MIT) from Western Digital. The Nu Machine was the hardware platform of the LMI Lambda, LMI's second generation Lisp machine. Using the Nu Machine and NuBus platform, TI produced their own flavor of Lisp machine, the TI Explorer. (Subsequently LMI acquired from TI the right to sell their own version of the Explorer.)
Further development of the Explorer hardware continued at TI and in 1987 TI introduced the Explorer II based around a custom CPU, the 553k-transistor MegaChip. As with the discrete IC-based Explorer I processor, the Explorer II MegaChip was a microcode processor which ran software that executed Lisp-specific macrocode instructions. Unlike the Explorer I processor, the Explorer II used a 64-bit microcode rather than a 56-bit microcode. The macrocode executed by both processors was however only 16-bits, with 32-bit type-tagged and CDR-coded data. Following the Explorer II TI created the MicroExplorer, an Explorer II system built on a single Apple NuBus card that ran inside a Mac II series computer (eg the IIfx, Quadra 950).
The principal goal of the E3 Project is to develop a software emulation of the macrocode executor that ran on all versions of the Explorer (with a few changes from model to model). Since the microcode for both the E1 and E2 was larger than the 32-bit machine word on most of today's common desktop systems (56 and 64-bit, respectively) the E3 is not designed as an emulator of an Explorer microcode processor. Instead it emulates the 16-bit macroinstruction set and processes the 32-bit tagged data that the macroinstructions operate upon.
The emulator (known as 'E3', or the 'Explorer III') is desgined to run as an ordinary user program on most modern desktop workstations. It is intended to be portable between different processor architectures and different operating systems. It is also intended to be an open development project, with little licensing restrictions. A license has not yet been developed, but it is assumed that the current status of the project falls somewhere under the MIT X or BSD-style license.
The project has a mailing list for communication amongst the developers. A CVS repository is used to maintain the source code. This repository is open for viewing with web browsers but pserver and write access are restricted. There is also a mailing list for the CVS repository to which commit logs are automatically posted. It is recommended that if you intend to hack on E3 that you also join this list.
Anonymous read-only access to the CVS server is available. The following commands give an example of using anonymous CVS access.
$ cvs -d :pserver:email@example.com:/home/cvsroot login CVS password: [empty] $ cvs -d :pserver:firstname.lastname@example.org:/home/cvsroot checkout e3 cvs server: Updating e3 U e3/.ctypes U e3/.cvsignore U e3/Makefile U e3/TODO U e3/app.cc U e3/app.h [...]
A snapshot of the output from a recent revision of the sources is available. The system is not completely booted yet, but it goes far enough to find the first function in the band and dump its contents. An occasionally updated tarball of the sources is also available. To use the program you must also have a load band. We have collected two load bands for the Explorer II, one of which (N928.LOAD) is our test candidate. The other remains to be investigated. Both of these are large files, greater than 9 MB in compressed form. Please only download them if you need them. You can get them here.
The Explorer system sources are occasionally useful in clarifying statements in the SSDN2. A selection of the system software sources is available for public perusal, mostly those directories that contain low level details useful for building the emulator. Yes there are a lot of funny ^Fs in the code. Ignore them and the character that follows them. If you've used ZWEI before then you already should know what they are. If you are snarfing these please use the tarballs rather than downloading each file individually.
Before starting to hack the emulator please join the mailing list. Once on the list you can ask for CVS pserver write access. To actually test and hack the emulator you will also need the load band which the emulator boots from as well as the Lisp sources to the operating system. Both files are quite large, be warned. To decrease repetetive questioning about how to get started we now have some notes on the subject.
The list of platforms which E3 has been tested on is given below. If you have compiled and tested E3 on a platform other than the ones given here please write to the mailing list and let us know the results.
|Linux||x86||now||Primary development platform.|
|Linux||UltraSparc (IIi)||2002-Mar-28||Correct output.|
|MacOS X||PPC G3||2001-Dec-31||Correct output.|
|Windows 2k (Cygwin)||x86||2001-Dec-??||Bad includes, correct output.|
Documentation on the internals of the Explorer is scarce. The one particularly important document that is available is the System Software Design Notes, 2nd revision. This document can be had either in a single PostScript or PDF file, or as of 2002-Jan-5 (3168-Cha-5) text versions of most individual chapters are available (following the above link) courtesy of Alastair Bridgewater and others. More may appear if he or some other adventurous soul is inspired to convert other sections of the document. Please do not download the PDF or PS versions of the entire manual unless this is absolutely necessary for you. Save the bandwidth for better purposes.
For historical interest we present the paper which introduced the CADR, the second MIT Lisp machine. It is also available in PDF format.