IO Pages

From F256 Foenix
Revision as of 15:42, 8 October 2025 by WF (talk | contribs) (Initial formatting test)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

IO Page 0

Gamma Lookup
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
Master Control
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

Layer Configuration
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.

Layer Codes
Code Graphics Map
0 Bitmap 0
1 Bitmap 1
2 Bitmap 2
4 Tilemap 0
5 Tilemap 1
6 Tilemap 2
Border
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
Integer Math Coprocessor
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

Text Mode Font Sets
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.

Graphics CLUTS
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.