Skip to content

IO Devices

Diogo Valadares Reis dos Santos edited this page Aug 26, 2025 · 4 revisions

[Português]

[← Previous Page | Next Page →]

The Input/Output Devices

Input/Output devices are external components that communicate through the processor's IO Bus and pads.

Currently, the simulation includes 8 IO devices and 3 memory devices. The following table provides a summary of the address ranges used for each device:

Address Range Device Notes
[0x000000000x00fffffc[ RAM Stores instructions and data
0x00fffffc Random Number Generator Generates a random byte on each read
0x00fffffd Switches Provides one byte of binary input
0x00fffffe Joystick Provides 2D input with 4 bits per axis
0x00ffffff Keyboard Provides ASCII input
[0x010000000x01100000[ Screen Each address corresponds to a pixel on the screen
[0x011000000x01100002[ Terminal First byte receives ASCII characters; second byte clears the terminal
[0x011000020x80000000[ Not Allocated --
[0x800000000x81000000[ Trap Handler ROM containing a special program to handle interrupts and exceptions
[0x810000000x81000010[ Real-Time Device Provides time and timer interrupt signals
0x81000010 Software Interrupt Reg Writable bit that triggers a software interrupt signal
[0x810000110xff000000[ Not Allocated --
[0xff0000000xffffffff[ OS RAM Secondary RAM used alongside the Trap Handler ROM

The simulation allows users to add custom IO devices by removing existing ones or using unallocated address ranges.

Clone this wiki locally