                     The Expandable MIX Emulator v1.0b
                     --- ---------- --- -------- -----

by Daniel Andrade
   Marcus Pereira

Introduction
------------

        The EMIX is intended to be a full MIX development system written in
C++ using C++ Builder 3 for Virus 95. MIX is the virtual machine that Dr.
Donald Knuth invented for describing the algorithms in his historical "Art
of Computer Programming" series.
        EMIX is planned to be not just a simple emulator but a complete
development suite for testing and creating MIX program in the Win32
environment. It will be composed by an emulator, an assembler and a debugger.
        We are two computer engineering students in PUC-RJ, a nice university
located in Rio de Janeiro, Brazil, and EMIX will be our final work in the
university (we need "graduation works" in order to graduate).

                      * * * I M P O R T A N T * * *

        This version is a final beta. I provided here the source code for
    examination, but I would like that you folks wait for the final 1.0
    release at the end of june. Then, the source code will be completely
    free and anyone will be allowed to change the program in any way.
   

Current progress
------- --------

*NEW* in version 1.0b:

- Fixed minor GUI bugs.
- Implemented the Run option in the Debug Console.
- full documentation in the source code.
- SOURCE CODE RELEASED !!

What we have until now:

- CPU Editor fully implemented.
- Memory Editor and disassembler fully implemented.
- Debug console fully implemented
- All possible instructions fully implemented. Just some details:
  > The HALT and I/O instructions are not working, but are
    being partially emulated. The HALT instruction will have a meaning
    when we implement the "Run" command. The I/O will work when we
    emulate the devices attached to the MIX computer.
  > The NUM instruction is not "overflowing". I could not figure well
    the specification given in the book. Maybe this will change in
    future versions.

- All the instructions emulated:

        0  NOP
        1  ADD
        2  SUB
        3  MUL
        4  DIV
        5  NUM(0),CHAR(1),HALT(2)
        6  SLA(0),SRA(1),SLAX(2),SRAX(3),SLC(4),SRC(5)
        7  MOVE
        8  LDA
        9  LD1
        10 LD2
        11 LD3
        12 LD4
        13 LD5
        14 LD6
        15 LDX
        16 LDAN
        17 LD1N
        18 LD2N
        19 LD3N
        20 LD4N
        21 LD5N
        22 LD6N
        23 LDXN
        25 STA
        26 ST1
        27 ST2
        28 ST3
        29 ST4
        30 ST5
        31 ST6
        32 STX
        33 STJ
        34 STZ
        39 JMP(0),JSJ(1),JOV(2),JNOV(3),JL(4),JE(5),JG(6),JGE(7),JNE(8),JLE(9)
        40 JAN(0),JAZ(1),JAP(2),JANN(3),JANP(4),JANP(5)
        41 J1N(0),J1Z(1),J1P(2),J1NN(3),J1NP(4),J1NP(5)
        42 J2N(0),J2Z(1),J2P(2),J2NN(3),J2NP(4),J2NP(5)
        43 J3N(0),J3Z(1),J3P(2),J3NN(3),J3NP(4),J3NP(5)
        44 J4N(0),J4Z(1),J4P(2),J4NN(3),J4NP(4),J4NP(5)
        45 J5N(0),J5Z(1),J5P(2),J5NN(3),J5NP(4),J5NP(5)
        46 J6N(0),J6Z(1),J6P(2),J6NN(3),J6NP(4),J6NP(5)
        47 JXN(0),JXZ(1),JXP(2),JXNN(3),JXNP(4),JXNP(5)
        48 INCA(0),DECA(1),ENTA(2),ENNA(3)
        49 INC1(0),DEC1(1),ENT1(2),ENN1(3)
        50 INC2(0),DEC2(1),ENT2(2),ENN2(3)
        51 INC3(0),DEC3(1),ENT3(2),ENN3(3)
        52 INC4(0),DEC4(1),ENT4(2),ENN4(3)
        53 INC5(0),DEC5(1),ENT5(2),ENN5(3)
        54 INC6(0),DEC6(1),ENT6(2),ENN6(3)
        55 INCX(0),DECX(1),ENTX(2),ENNX(3)
        56 CMPA
        57 CMP1
        58 CMP2
        59 CMP3
        60 CMP4
        61 CMP5
        62 CMP6
        63 CMPX

More information
---- -----------

        It is greatly recommended to get a copy of "The Art of Computer
Programming Vol.1" by Donald Knuth, if you want to understand the MIX
language.

Copyright Notice
--------- ------

        In fact, I'm really not sure why I am writing a copyright notice. If I
said that you could not copy the software, you would do it anyway... :)
	Well, but you really can copy the software as long as you don't modify it.
Don't also distribute EMIX without this README file.
	Please also don't use this software for any voodoo rites.

Next Version
---- -------

        We would like very much if people on the Net could send us suggestions
and report ANY bugs found. Our graduation depends on this! :)

        Send e-mail regarding emulator/debugger issues to

        dandrade@modulo.com.br

        and about the programming IDE/assembler (NOT IMPLEMENTED YET) to 

        mjsp@centroin.com.br

        Thanks for choosing EMIX! :-)

        Daniel Andrade
        Marcus Pereira
