Giter VIP home page Giter VIP logo

emma's Introduction

Emma the emulator.

Emma is a brief, educational introduction to emulating CPU architecture made by amateur programmer Chris Browne.

Its main function is to serve as an introduction to emulation for the author, and anybody interested enough to read the code.

Building:

$ make

Building debug mode:

$ make debug

Running:

$ ./emma [input file]

Features

  • Generic, simplified architecture
  • 16-bit Accumulator
  • Two 16-bit registers, named reg_b and reg_c
  • Program Counter (register)
  • 16-bit FLAGS register (Zero, Carry and Error currently supported)
  • Error Number for diagnostic purposes
  • Dynamically-allocated stack and heap, default size gives roughly 1KB of total memory at startup. There is currently no way to programmatically increase the stack/heap sizes, though a debug interrupt may be added in the future for this purpose.
  • Interrupts (non-programmable, in the future there may be programmable interrupts)
  • Output console (port 0xFFFF) that dumps hex-formatted data to stdout. In the future, there may be more output consoles that do more interesting things added.

License

This source is licensed under the GPLv3 license unless stated otherwise.

If you haven't got a copy of the GPLv3 license, google GPLv3 because I can't be bothered to spoon-feed you a URL or a file containing the license. I don't really care what you do with this source, either, to be honest.

emma's People

Contributors

hyperfocusaurus avatar

Stargazers

 avatar  avatar

Watchers

 avatar

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.