8608/memoryMap.md
2024-02-14 13:35:52 -05:00

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.