This archive contains a software simulation of the MIL (Microsystems
International Limited) MOD8 (Modular-8) microcomputer, which is one of the
earliest microprocessor based systems to be manufactured in Canada. Based
on the Intel 8008, this machine was intended mainly as a LAB/evaluation
tool. Modular in design, a fully configured MOD8 contains various cards
which provide CPU, ROM, RAM, TTY interface and parallel I/O, as well as
a 1702 EPROM programmer built onto the main board. Most of the material
I have is dated 1974.

The same system was also offered as the "GNC8" (Great Northern Computers)
in 1975. Still later, a version of the system with an 8080 CPU board was
manufactured as the "MOD80".

This simulation will allow you to experience actually running a microcomputer
system from 1974 - a period of time before the Altair, Imsai and the era of
the "personal computer".

To begin the simulation, just run "MOD8" - then type 'G' to begin execution
of the MONITOR-8 monitor ROM - from this point forward you can use the MOD8
from your PC keyboard exactly as you would have done from a teletype in 1974.

More information is available in the online HELP (press F1), however I have
not attempted to provide comprehensive documentation on the MOD8 system.
A brief intro and examples on using MONITOR-8 is available in the file
MONITOR8.TXT

For detailed information on the MOD8 - including the monitor commands,
please visit my classic computer web site : search "Daves Old Computers".
This will take to you my collection page, where you will find an entry for
the MOD8. Within the MOD8 page you will find the documentation scans.

NOTES: My MOD8 is currently incomplete - I am missing several of the
boards and the monitor ROMS - If you can help with MOD8 parts, please
contact me.

Since I don't have the ROMs, I have recreated the monitor code by entering
it from the listing at the back of the manuals. I have made every attempt
to insure that it is correct, however errors may have occured - if you find
an error in the ROM content (1), please notify me.

(1) The 8008 unconditional JMP/CAL and RET instructions have three unused
    bits each (where the condition field is located in the conditional
    versions). These bits are "don't care" to the instruction decoder. When
    I wrote my 8008 assembler, I set the unused bits to zero, however the
    assembler used by MIL appears to have "randomly" set bit 5 which is one
    of the unused bits. As a result of this, you will find instances where:
        JMP = 114 (normally 104)
        CAL = 146 (normally 106)
        RET = 047 (normally 007)
   in the MIL listings, where my assembler always encodes to the x0x version.
   This shouldn't affect the operation of the code (and doesn't appear to).

Files in this archive:
----------------------
00README.TXT - This file
MOD8.COM     - executable MOD8 simulator
MOD8.HLP     - Help file for MOD8 simulator
ASM88.TXT    - 8008 assembler documentation
ASM88.EXE    - executable 8008 assembler
ASM2WF.COM   - Utiilty to convert split-octal source to word-format
LST2SB.COM   - Utility to convert word-format listing to split-octal
MONITOR8.ASM - Source code to MONITOR-8
MONITOR8.TXT - Intro and examples on using MONITOR-8
BASIC.ASM    - Scelbi 8008 BASIC interpreter adapted to MOD8 *
 * Scelbi 8008 BASIC is quite possibly the earliest microcontroller BASIC
   produced (1974), originally for the SCELBI computer, it has been ported
   to the MOD8 - to experience this bit of computing history:
     ASM88 BASIC -F       <= Assemble source to loadable code
     MOD8 L=BASIC /G      <= Run BASIC under simulator
      .. You should see the 'READY' prompt ..
     SCR                  <= Important! Scelbi BASIC does not auto-clear
     10 for i=1 to 10
     20 print i
     30 next i
     LIST
      .. Program is listed ..
     RUN


Dunfield Development Services (DDS) offers software and firmware
development services specializing in systems and embedded applications.
For more information, visit:  https://dunfield.themindfactory.com
