Skip to content

Latest commit

 

History

History
32 lines (29 loc) · 813 Bytes

File metadata and controls

32 lines (29 loc) · 813 Bytes

cpu-emulator

Build Status

Experimental CPU emulator written in C

Goals

  • Learn more about CPU emulation
  • Build a compiler
  • Build a unix-like operating system
  • Build a filesystem
  • Build a network stack
  • Implement Unix tools usually found in /bin (ls, cat, etc)
  • Implement a simple web server
  • Run a CPU emulator inside another emulator

Architecture

CPU

typedef struct cpu_t {
    // Registers
    uint8_t  A;         // Accumulator register
    uint16_t I;         // Memory address register
    uint16_t PC;        // Program counter register
} cpu_t;

Full system (CPU + memory)

typedef struct system_t {
    cpu_t *cpu;
    uint8_t memory[MEMORY_SIZE];
} system_t;