1.7 KiB
Boot ROM
Execution starts here, at address $0000
.
The OS bootloader is located here.
GPIO
Contains hardware multiplication ($0400
-$0401
) and division ($0402
-$0403
), popcount ($0404
), and a timer ($0405
).
Keyboard
Read address $0500
to get the next key event (7-bit Windows VKey code, MSB on indicates press/release). Returns 0 if empty.
Write 1 to $0500
to enable interrupts.
Serial Peripheral Interface
Not yet implemented.
Robot Controller
Not directly mentioned in the provided code snippets, but if it follows a similar addressing scheme, it would have a specific range not covered here.
Text Display
Write ASCII values to addresses $0800
to $0FFF
to display characters at certain positions on the screen.
$0800
is the top left, $0FFF
would be the bottom right, considering the character display dimensions and memory layout.
Text Display Color
Write 6-bit color IDs to addresses $0800
to $0FFF
to set the color of characters on screen.
MSB = whether to invert character mask (i.e., for highlighting). This might need clarification or correction based on the actual implementation, as it seems to overlap with the Text Display's address range.
System RAM
The OS may use this memory for the stack, system variables, etc., located at $1000
to $1FFF
.
User ROM
Your program and data go here, located at $2000
to $2FFF
.
User RAM
Your code can use this memory for variables, arrays, a heap, etc., located at $3000
to $3FFF
.
Video Display
Not directly mentioned in the provided snippets for addressing, but based on the peripheral configuration, it would be addressed from $8000
to $FFFF
for direct pixel manipulation or other video-related functions.