Giter Club home page Giter Club logo

i8080-emulator's Introduction

i8080-emulator

This repo contains a simple generic Intel 8080 emulator that can be used to emulate systems. It contains two example emulators which demonstrate usage. The The first emulator compiled as i8080-emulator runs old test executables written for CP/M. The other emulates the original TAITO 8080 Space Invaders machine.

Building

Building through a git clone requires GNU Autoconf & Automake, a 'make' implementation, and POSIX utilizes and shell. Any C compiler should work, though GCC is recommended. The Space Invaders emulator requires SDL2. This can be downloaded through most systems package manager or through an official tarball.

Once installed you can clone the repo and build using:

$ git clone https://github.com/collinfunk/i8080-emulator
$ cd i8080-emulator
$ ./autogen.sh
$ ./configure
$ make all

Space Invaders

Space Invaders requires the original files to play. I'm not sure of the copyright status and I do not want to get banned off GitHub (I need a job) so they are not linked here. If there happened to be four 2 KB files online named, for example, invaders.e, invaders.f, invaders.g, and invaders.h the emulator would expect them to be combined into an 8 KB file. It would then expect the file name to be passed as a command-line argument. These two steps can be done with the following commands:

$ cat invaders.h invaders.g invaders.f invaders.e > invaders.rom
$ ./space-invaders ./path/to/invaders.rom

Controls

  • 1: 1 Player
  • 2: 2 Player
  • 3: Insert coin
  • ESC: Quit
  • E: Toggle color
  • Q: Toggle pause
  • A: Move left
  • D: Move right
  • Space: Shoot

Video Demo

You can watch a basic gameplay demo of the Space Invaders emulator here:

Screenshots

Space Invaders with color toggle on

Space Invaders with color toggle off

CPU Test Outputs

CPUTEST.COM

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

Instruction count: 33971311
Cycle count:       255665052

TST8080.COM

MICROCOSM ASSOCIATES 8080/8085 CPU DIAGNOSTIC
VERSION 1.0  (C) 1980

CPU IS OPERATIONAL
Instruction count: 651
Cycle count:       4924

8080PRE.COM

8080 Preliminary tests complete
Instruction count: 1061
Cycle count:       7814

8080EXM.COM

8080 instruction exerciser
dad <b,d,h,sp>................  PASS! crc is:14474ba6
aluop nn......................  PASS! crc is:9e922f9e
aluop <b,c,d,e,h,l,m,a>.......  PASS! crc is:cf762c86
<daa,cma,stc,cmc>.............  PASS! crc is:bb3f030c
<inr,dcr> a...................  PASS! crc is:adb6460e
<inr,dcr> b...................  PASS! crc is:83ed1345
<inx,dcx> b...................  PASS! crc is:f79287cd
<inr,dcr> c...................  PASS! crc is:e5f6721b
<inr,dcr> d...................  PASS! crc is:15b5579a
<inx,dcx> d...................  PASS! crc is:7f4e2501
<inr,dcr> e...................  PASS! crc is:cf2ab396
<inr,dcr> h...................  PASS! crc is:12b2952c
<inx,dcx> h...................  PASS! crc is:9f2b23c0
<inr,dcr> l...................  PASS! crc is:ff57d356
<inr,dcr> m...................  PASS! crc is:92e963bd
<inx,dcx> sp..................  PASS! crc is:d5702fab
lhld nnnn.....................  PASS! crc is:a9c3d5cb
shld nnnn.....................  PASS! crc is:e8864f26
lxi <b,d,h,sp>,nnnn...........  PASS! crc is:fcf46e12
ldax <b,d>....................  PASS! crc is:2b821d5f
mvi <b,c,d,e,h,l,m,a>,nn......  PASS! crc is:eaa72044
mov <bcdehla>,<bcdehla>.......  PASS! crc is:10b58cee
sta nnnn / lda nnnn...........  PASS! crc is:ed57af72
<rlc,rrc,ral,rar>.............  PASS! crc is:e0d89235
stax <b,d>....................  PASS! crc is:2b0471e9
Tests complete
Instruction count: 2919050698
Cycle count:       23835665055

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.