This is an emulator for the 8-bit Intel 8080 microprocessor from the 1970s. This emulator passes a comprehensive suite of tests that you can use to verify its equivalence with a real Intel 8080 chip.
You will need cargo
installed on your machine to build the emulator from source. Once you've cloned
the repository, navigate to its root directory and run the following command:
cargo build --release
If you have a program compiled for the Intel 8080, this emulater will be able
to run it using the run
command:
i8080emu run /path-to-program/program.COM
You will need to download the tests before you can run them. If you have curl
installed on your machine, you can download the tests with the following
command:
curl \
-O https://altairclone.com/downloads/cpu_tests/8080PRE.COM \
-O https://altairclone.com/downloads/cpu_tests/TST8080.COM \
-O https://altairclone.com/downloads/cpu_tests/CPUTEST.COM \
-O https://altairclone.com/downloads/cpu_tests/8080EXM.COM
Then, run a test of your choosing with the run
command:
i8080emu run CPUTEST.COM
Any printing during the course of the program's execution will be directed to your terminal's standard output:
DIAGNOSTICS II V1.2 - CPU TEST
COPYRIGHT (C) 1981 - SUPERSOFT ASSOCIATES
ABCDEFGHIJKLMNOPQRSTUVWXYZ
CPU IS 8080/8085
BEGIN TIMING TEST
END TIMING TEST
CPU TESTS OK
The longest test suite is 8080EXM.COM
, which takes around 30 minutes to run.
The other test files only take a few seconds each.
Below are resources that were helpful during the development of this emulator.
- Intel 8080 Microcomputer Systems User's Manual September 1975
- Intel 8080 Assembly Language Programming Manual
- Intel MCS-80/85™ Family User's Manual October 1979
- Also available here
- 8080/8085 Assembly Language Programming Manual
- CP/M Plus Operating System Programming Guide
- altairclone.com provides a variety of downloads related to the Intel 8080: manuals, ROMs, CPU tests, etc.
- 8080 by superzazu (GitHub) is an Intel 8080 emulator written in C.
- i8080-core by begoon (GitHub) is an Intel 8080 emulator written in C specifically for the KR580VM80A, which was a Russian clone of the Intel 8080.
- i8080-javascript by chris-j-akers (GitHub) is an Intel 8080 emulator written in Javascript that you can use online here.