Retroputer emulates a machine with the following pieces of hardware:

The 6516 Central Processing Unit

The 6516 is a 16-bit processor with four 16-bit general-purpose registers (A, B, C, D), two 16-bit index registers (X, Y) two 16-bit stack registers (SP, BP), an 8-bit processor status register (FLAGS) and a 16-bit program counter (PC). There is an 8-bit alias for the low eight bits of the registers A - D, X and Y — this alias adds an L to the register name. So AL represents the low eight bits of A.

The CPU can perform 16-bit mathematical operations on any of the 16-bit registers except the program counter. The CPU can perform add, subtract, multiple, divide (integer), and modulus (integer) operations. The CPU is also capable of bit shifting and byte swapping.

Memory can be loaded and stored a byte at a time or a word (16 bits) at a time. There are many different methods of memory access, including absolute, indirect, relative, base-relative, and data-relative addressing. Memory addresses can be further indexed by the index registers and optionally scaled by two to simulate arrays with word-sized elements.

Although the processor can load memory from any of the eight available banks, instructions can only be executed in bank 0. This limits programs to 64KB in size, although in reality, programs will be further limited due to the fact that trap vectors, stacks, and ROM all exist in bank 0.

The processor supports 256 interrupts by way of vectors at the low end of memory. These can be triggered by external events (say, a soft-reset), internal events (a timer reaches zero), or by software.

The processor also supports sending and receiving data over 256 ports. Ports have no timing; requesting a value from a port will let the next piece of data take its place on the next instruction cycle. Likewise, sending data over a port can be done in a tight loop without regard for timing mechanisms.

The 4025 Video Generator

The 4025 Video Generator is a sophisticated piece of hardware that composites several different types of graphical data into a single 320x200 graphical display using a 256-color palette (from a 24-bit color palette). This display is refreshed sixty times per second. Various memory locations control the operation and configuration of the video generator.

The 4025 is capable of compositing multiple layers of graphical content each frame. The following types of content are supported: