#
# README for Exploiter
#

Exploiter is a TI Explorer emulator. It is not yet complete enough to use.

You will need a load band image in order to use this program. On the upside, if you managed to find this program you can probably find a load band without too much extra trouble.

You will need GCC, GNU Make, and Perl in order to compile this program. Compilation should be a simple matter of running gmake in the source directory.


Known open issues:

    The disassembler needs its mainop table checked against ucode/defop.lisp.

    The disassembler doesn't handle arefiops or moduleops.

    Nowhere is there a check for region attributes during a write to boxed storage (this is nessecary in order to implement the GC write barrier). This is probably best implemented as a simulation of the upper levels of the Explorer VMM hardware.

    The GC read barrier has not been implemented.

    The GC write barrier has not been implemented.

    The GC return barrier has not been implemented.

    There is no tracking of what part of the PDL is "in the machine" (in the PDL-buffer) (this is needed in order to make low-overhead number consing work and to reduce the load on the read and write barriers).

    Stack group switching has not been implemented.

    The system has no notion of error handling. At some point (after stack-group switching is in place) this has to be added.

    Allocating memory is only partially implemented.

    Flavor method dispatch has not been implemented.

    Closures have not been implemented.

    A-Mem handling is somewhat bogus.

    There are a lot of places in the interpreter that either keel over or return bogus results when stressed even slightly (results that don't fit in a FIXNUM is a good example).

    There is no support for calling "out" or returning from calling "out".

    There are a large number of unhandled cases in function calling and return.

    Function calling and starting up the initial function need to be checked against what the error handler and stack group creation functions expect.

    Many instructions are unimplemented and many of the rest are missing large portions of their functionality.

    The only numeric type thus far implemented is DTP-FIX.

    Array references only handle a small subset of the valid array types.

    CDR of a CDR-Next DTP-STACK-LIST should probably be of type DTP-STACK-LIST, not of type DTP-LIST.

    Most subprimitives such as %DATA-TYPE (but not %DATA-TYPE itself) are treating the value on the top of the stack as an invisible forwarding pointer, even if they aren't supposed to follow such.

    Need to set *boot-memory-board-slot* correctly.

    NuBus access functions need some way to signal bus timeouts and whatnot.


Contributors:

    Alastair Bridgewater
    Robert Swindells
    John Leuner
    Carl Shapiro


Thank-yous to:

    James Crippen
    John Morrisen
    Daniel Seagraves
    Tim Moore
    Paul Fuqua
    Steve Ford
    Dave Richards

    And apologies to anyone I missed.


#
# EOF
#
