Introduction

This is a project I've started a few months ago. I know there are already tons of 8080 emulators out there but I wanted to try my hand at one as well.

I'm writing this emulator in C with the intent on running it on one of my micro-controller units. I'm also using a smaller test library called munit instead of my original plan of using google test.

What is the 8080 processor?

The Intel 8080 is an 8-bit microprocessor released in 1984. It's the spiritual successor to the Intel 8008 and has a clock speed of 2 - 4 Mhz with the ability to address up to 64 KB of RAM. I am using this CPU to emulate space invaders due to it's simplicity and thorough documentation.

Setting up the Appveyor and Travis-CI build scripts

I used the following scripts: (Travis-CI):

language: ccompiler: gcc
before_script:
    - mkdir build
    - cd build
    - cmake ..
script: make && ./emu8080_tests

And for appveyor (AppVeyor):

version: 1.0.{build}
image: Ubuntu
build_script:- sh: >-
    mkdir build
    cd build
    cmake ..
    make
test_script:
- sh: ./emu8080_tests

This will build the solution and immediately run my unit test program which will return -1 if bad or 0 if it succeeds like normal.

Screenshots

It currently processes a very limited set of OPcodes (Only 10 right now). It will panic if the opcode does not exist.

Files

8080 Programmer's manual: https://drakeor.com/uploads/8080-Programmers-Manual.pdf

Mirror for the Space Invaders ROM: https://drakeor.com/uploads/invaders.zip

Munit testing framework: https://github.com/nemequ/munit