IO Pages
IO Page 0
| MMU | Flat | R/W | Name | Description |
|---|---|---|---|---|
| $C000 - $C0FF | $F0:0000 - $F0:00FF | Blue conversion | ||
| $C400 - $C4FF | $F0:0400 - $F0:04FF | Green conversion | ||
| $C800 - $C8FF | $F0:0800 - $F0:08FF | Red conversion |
| MMU | Flat | R/W | Name | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| $D000 | $F0:1000 | RW | MSTR_CTRL_0 | — | GAMMA | SPRITE | TILE | BITMAP | GRAPH | OVRLY | TEXT |
| $D001 | $F0:1001 | RW | MSTR_CTRL_1 | — | — | FON_SET | FON_OVLY | MON_SLP | DBL_Y | DBL_X | CLK_70 |
TEXT: Enable text layer
OVRLY: Overlay text on graphics, by making text background transparent. See FON_OVLY
GRAPH: Enable graphics layers (tile, sprites, bitmaps)
BITMAP: Enable bitmap layers (if GRAPH is also set)
TILE: Enable tile layers (if GRAPH is also set)
SPRITE: Enable sprite layers (if GRAPH is also set)
GAMMA: Enable gamma correction
CLK_70: Enable 400p70, else 480p60
DBL_X, DBL_Y: Double text mode character width & height
MON_SLP: Turn off monitor SYNC, putting it into sleep mode
FON_OVLY: Only BG color 0 is transparent in OVRLY mode. Else, all BG colors are transparent.
FON_SET: Chooses font set 0 or 1
| MMU | Flat | R/W | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|
| $D002 | RW | — | Layer 1 | — | Layer 0 | |||||
| $D003 | RW | — | — | — | — | — | Layer 2 | |||
There are 6 configurable graphics maps that can be placed into any of the 3 visible layers. Layer 0 is the front graphics layer.
| Code | Graphics Map |
|---|---|
| 0 | Bitmap 0 |
| 1 | Bitmap 1 |
| 2 | Bitmap 2 |
| 4 | Tilemap 0 |
| 5 | Tilemap 1 |
| 6 | Tilemap 2 |
| MMU | Flat | R/W | Name | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| $D004 | RW | BRDR_CTRL | — | SCROLL_X | — | — | — | ENABLE | |||
| $D005 | RW | BRDR_BLUE | Border color Blue component | ||||||||
| $D006 | RW | BRDR_GREEN | Border color Green component | ||||||||
| $D007 | RW | BRDR_RED | Border color Red component | ||||||||
| $D008 | RW | BRDR_WIDTH | — | — | — | SIZE_X | |||||
| $D009 | RW | BRDR_HEIGHT | — | — | — | SIZE_Y | |||||
| MMU | Flat | R/W | Name | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| $DE00 - $DE01 | RW | MULU_A | Multiplication A (Unsigned 16-bit) | ||||||||
| $DE00 - $DE02 | RW | MULU_B | Multiplication B (Unsigned 16-bit) | ||||||||
| $DE04 - $DE05 | RW | DIVU_DEN | Denominator (Unsigned 16-bit) | ||||||||
| $DE06 - $DE07 | RW | DIVU_NUM | Numerator (Unsigned 16-bit) | ||||||||
| $DE08 - $DE0B | RW | ADD_A | Addition A (Unsigned 32-bit) | ||||||||
| $DE0C - $DE0F | RW | ADD_B | Addition B (Unsigned 32-bit) | ||||||||
| $DE10 - $DE13 | RW | MULU | Multiplication A×B (Unsigned 32-bit) | ||||||||
| $DE14 - $DE15 | RW | QUOU | Quotient of Num/Den (Unsigned 16-bit) | ||||||||
| $DE16 - $DE17 | RW | REMU | Remainder of Num/Den (Unsigned 16-bit) | ||||||||
| $DE18 - $DE1B | RW | ADD_R | Addition A+B Result (Unsigned 32-bit) | ||||||||
Multiplication, division, and addition operations are completely independent of each other. Results are available immediately.
| MMU | Flat | R/W | Name | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|
IO Page 1
| MMU | Flat | R/W | Name | Description |
|---|---|---|---|---|
| $C000 - $C7FF | $F0:4000 - $F0:47FF | Font set 0 (256 × 8-byte chars) | ||
| $C800 - $CFFF | $F0:4800 - $F0:4FFF | Font set 1 (256 × 8-byte chars) |
Characters are 8×8 pixels. Each byte is an 8-pixel row of bits, with MSB at the left. 8 rows top to bottom.
| MMU | Flat | R/W | Name | Description |
|---|---|---|---|---|
| $D000 - $D3FF | $F0:5000 - $F0:53FF | Graphics CLUT 0 (256 × BGRx) | ||
| $D400 - $D7FF | $F0:5400 - $F0:57FF | Graphics CLUT 1 (256 × BGRx) | ||
| $D800 - $DBFF | $F0:5800 - $F0:5BFF | Graphics CLUT 2 (256 × BGRx) | ||
| $DC00 - $DFFF | $F0:5C00 - $F0:5FFF | Graphics CLUT 3 (256 × BGRx) |
The 4th byte ('x') in each entry is unused.