I have ported the MAME 6800 CPU emulator core to this emulator, and it looks like the bugs before (such as single step) have been fixed!
The emulator can now run all HeathKit sample programs without any apparent problems. However, there is still a lot of testing to do.
I have added some basic code for a memory viewer and dissassembler. A lot of code was ported over from the MAME code, so I hope there aren't any legal issues.
I have created a "MAME" branch to hold the new code.
was a microprocessor trainer kit sold in the 70's and 80's and was designed to be assembled by the end user and was used to teach fundamentals of microprocessors.
The kit had the following features:
- Motorola 6800 8-bit CPU clocked at 1MHz
- Six 7-segment LED displays used to display address and data information, and as a visual output device (i.e. screen)
- 17 push-button switches used as a Hex keypad
- 8 LEDs for general purpose visual output
- 1 8-position DIP switch for data input
- 1 KB ROM
- 2 x 256 bytes RAM
- buffered 8-bit data and 16-bit address ports
The ROM contained a program allowing the user to (tediously, i.e. byte-by-byte) enter, run and monitor programs in RAM using the keypad and the screen.
This project simulates the ET-3400 by emulating the 6800 CPU and memory-mapped access to simulated 7-segment displays and keypad for I/O. The ROM program is included.
The emulator core and 7 segment display are written from scratch in 100% C#, I only got the basic idea of how an emulator should run from Marat Fayzullin's page How To Write a Computer Emulator
. It was originally implemented in Visual Basic 6, ported to C++, then finally C#.
You can download the trainer's Manual here
Loading S19 format files
The emulator supports S19 format files. Click File > Load and select your S19 OBJ file to load it into memory. Press D on the keypad to bring up the Do prompt. You will be required to enter a 16-bit hex address in RAM. Usually this will be 0000. The ROM will then execute the program.
The manual contains program listings in assembly/machine code and the ROM listing which can be useful for calling functions such as monitoring the keyboard and displaying text on screen.
Quick ET-3400 Guide
- View contents of Accumulator A RegisterACCB
- View contents of Accumulator B RegisterPC
- View contents of Program Counter RegisterINDEX
- View contents of Index Pointer RegisterCC
- View contents of Condition Codes RegisterSP
- View contents of Stack Pointer RegisterRTI
- Return from InterruptSS
- Single StepBR
- Start entering hex at specified addressBACK
- During EXAM
ine mode, move address backCHAN
- During EXAM
ine mode, edit hex at specified address. During ACCA/ACCB/PC
mode, edit hex in selected registerDO
- Execute RAM at given addressEXAM
- Start viewing hex at specified addressFWD
- During EXAM
ine mode, move address forward