Control Page: Difference between revisions

From NerdConsole
Jump to navigationJump to search
No edit summary
Tag: Reverted
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
== CPU Table ==
The Control Page is a page of memory that is devoted to connecting to other parts of NerdConsole. All of the other systems that can be addressed are collected in the Control Page to ensure the maximum amount of contiguous available memory. The Control Page gives access to the controllers, audio, RAM and ROM banking, and the graphics system.
{| class='wikitable'
 
! Region !! Address !! colspan='8' | Page
== Control Page Map ($02xx) ==
 
{| class="wikitable"
|
! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! A !! B !! C !! D !! E !! F
|-
|-
| rowspan='8' | Main RAM
! 0x
| align='center' | $0000
| class="input_latch_clock" title="$0200 - Input Latch/Clock" | W
| title='Zero Page' class='zero_page' | 00
| class="input_data" title="$0201 - Input Data" | R
| title='Stack Page' class='stack_page' | 01
| class="audio_address_flag" title="$0202 - Audio Address Flag" | W
| title='Control Page' class='control_page' | 02
| class="audio_address_data" title="$0203 - Audio Address Data" | W
| title='Main RAM' class='main_ram' | 03
| class="select_main_ram" title="$0204 - Main RAM Select" | W
| title='Main RAM' class='main_ram' | 04
| class="select_extended_ram" title="$0205 - Extended RAM Select" | W
| title='Main RAM' class='main_ram' | 05
| class="select_low_rom" title="$0206 - Low ROM Select" | W
| title='Main RAM' class='main_ram' | 06
| class="select_high_rom" title="$0207 - High ROM Select" | W
| title='Main RAM' class='main_ram' | 07
| - || - || - || - || - || - || - || -
|-
|-
| align='center' | $0800
! 1x
| title='Main RAM' class='main_ram' | 08
| - || - || - || - || - || - || - || - || - || - || - || - || - || - || - || -
| title='Main RAM' class='main_ram' | 09
| title='Main RAM' class='main_ram' | 0A
| title='Main RAM' class='main_ram' | 0B
| title='Main RAM' class='main_ram' | 0C
| title='Main RAM' class='main_ram' | 0D
| title='Main RAM' class='main_ram' | 0E
| title='Main RAM' class='main_ram' | 0F
|-
|-
| align='center' | $1000
! 2x
| title='Main RAM' class='main_ram' | 10
| - || - || - || - || - || - || - || - || - || - || - || - || - || - || - || -
| title='Main RAM' class='main_ram' | 11
| title='Main RAM' class='main_ram' | 12
| title='Main RAM' class='main_ram' | 13
| title='Main RAM' class='main_ram' | 14
| title='Main RAM' class='main_ram' | 15
| title='Main RAM' class='main_ram' | 16
| title='Main RAM' class='main_ram' | 17
|-
|-
| align='center' | $1800
! 3x
| title='Main RAM' class='main_ram' | 18
| - || - || - || - || - || - || - || - || - || - || - || - || - || - || - || -
| title='Main RAM' class='main_ram' | 19
| title='Main RAM' class='main_ram' | 1A
| title='Main RAM' class='main_ram' | 1B
| title='Main RAM' class='main_ram' | 1C
| title='Main RAM' class='main_ram' | 1D
| title='Main RAM' class='main_ram' | 1E
| title='Main RAM' class='main_ram' | 1F
|-
|-
| align='center' | $2000
! 4x
| title='Main RAM' class='main_ram' | 20
| - || - || - || - || - || - || - || - || - || - || - || - || - || - || - || -
| title='Main RAM' class='main_ram' | 21
| title='Main RAM' class='main_ram' | 22
| title='Main RAM' class='main_ram' | 23
| title='Main RAM' class='main_ram' | 24
| title='Main RAM' class='main_ram' | 25
| title='Main RAM' class='main_ram' | 26
| title='Main RAM' class='main_ram' | 27
|-
|-
| align='center' | $2800
! 5x
| title='Main RAM' class='main_ram' | 28
| - || - || - || - || - || - || - || - || - || - || - || - || - || - || - || -
| title='Main RAM' class='main_ram' | 29
| title='Main RAM' class='main_ram' | 2A
| title='Main RAM' class='main_ram' | 2B
| title='Main RAM' class='main_ram' | 2C
| title='Main RAM' class='main_ram' | 2D
| title='Main RAM' class='main_ram' | 2E
| title='Main RAM' class='main_ram' | 2F
|-
|-
| align='center' | $3000
! 6x
| title='Main RAM' class='main_ram' | 30
| - || - || - || - || - || - || - || - || - || - || - || - || - || - || - || -
| title='Main RAM' class='main_ram' | 31
| title='Main RAM' class='main_ram' | 32
| title='Main RAM' class='main_ram' | 33
| title='Main RAM' class='main_ram' | 34
| title='Main RAM' class='main_ram' | 35
| title='Main RAM' class='main_ram' | 36
| title='Main RAM' class='main_ram' | 37
|-
|-
| align='center' | $3800
! 7x
| title='Main RAM' class='main_ram' | 38
| - || - || - || - || - || - || - || - || - || - || - || - || - || - || - || -
| title='Main RAM' class='main_ram' | 39
| title='Main RAM' class='main_ram' | 3A
| title='Main RAM' class='main_ram' | 3B
| title='Main RAM' class='main_ram' | 3C
| title='Main RAM' class='main_ram' | 3D
| title='Main RAM' class='main_ram' | 3E
| title='Main RAM' class='main_ram' | 3F
|-
|-
! colspan='10' |
|
|-
|-
| rowspan='8' | Extended RAM
! 8x
| align='center' | $4000
| class="scroll0" title="$0280 - X Scroll (BG0) [Low]" | W
| title='Extended RAM' class='extended_ram' | 40
| class="scroll0" title="$0281 - X Scroll (BG0) [High]" | W
| title='Extended RAM' class='extended_ram' | 41
| class="scroll0" title="$0282 - Y Scroll (BG0) [Low]" | W
| title='Extended RAM' class='extended_ram' | 42
| class="scroll0" title="$0283 - Y Scroll (BG0) [High]" | W
| title='Extended RAM' class='extended_ram' | 43
| class="scroll1" title="$0284 - X Scroll (BG1) [Low]" | W
| title='Extended RAM' class='extended_ram' | 44
| class="scroll1" title="$0285 - X Scroll (BG1) [High]" | W
| title='Extended RAM' class='extended_ram' | 45
| class="scroll1" title="$0286 - Y Scroll (BG1) [Low]" | W
| title='Extended RAM' class='extended_ram' | 46
| class="scroll1" title="$0287 - Y Scroll (BG1) [High]" | W
| title='Extended RAM' class='extended_ram' | 47
| class="scroll2" title="$0288 - X Scroll (BG2) [Low]" | W
| class="scroll2" title="$0289 - X Scroll (BG2) [High]" | W
| class="scroll2" title="$028A - Y Scroll (BG2) [Low]" | W
| class="scroll2" title="$028B - Y Scroll (BG2) [High]" | W
| class="scroll3" title="$028C - X Scroll (BG3) [Low]" | W
| class="scroll3" title="$028D - X Scroll (BG3) [High]" | W
| class="scroll3" title="$028E - Y Scroll (BG3) [Low]" | W
| class="scroll3" title="$028F - Y Scroll (BG3) [High]" | W
|-
|-
| align='center' | $4800
! 9x
| title='Extended RAM' class='extended_ram' | 48
| class="fixed_regions_top_bottom" title="$0290 - Fixed Regions Top/Bottom" | W
| title='Extended RAM' class='extended_ram' | 49
| class="fixed_regions_left_right" title="$0291 - Fixed Regions Left/Right" | W
| title='Extended RAM' class='extended_ram' | 4A
| - || - || - || - || - || -
| title='Extended RAM' class='extended_ram' | 4B
| class="select_name_table" title="$0298 - Name Table Select" | W
| title='Extended RAM' class='extended_ram' | 4C
| - || - || - || - || -
| title='Extended RAM' class='extended_ram' | 4D
| class="select_tileset_read" title="$0298E - Tileset Render Select" | W
| title='Extended RAM' class='extended_ram' | 4E
| class="select_tileset_write" title="$0298F - Tileset Write Select" | W
| title='Extended RAM' class='extended_ram' | 4F
|-
|-
| align='center' | $5000
! Ax
| title='Extended RAM' class='extended_ram' | 50
| class="color_cycle_speed_bg" title="$02A0 - Background Color Cycle Speed" | W
| title='Extended RAM' class='extended_ram' | 51
| class="color_cycle_speed_sprite" title="$02A1 - Sprite Color Cycle Speed" | W
| title='Extended RAM' class='extended_ram' | 52
| - || - || - || - || - || -
| title='Extended RAM' class='extended_ram' | 53
| class="tileset_cycle_speed_bg" title="$02A8 - Background Tileset Cycle Speed" | W
| title='Extended RAM' class='extended_ram' | 54
| class="tileset_cycle_limit_bg" title="$02A9 - Background Tileset Cycle Limit" | W
| title='Extended RAM' class='extended_ram' | 55
| class="tileset_cycle_speed_sprite" title="$02AA - Sprite Tileset Cycle Speed" | W
| title='Extended RAM' class='extended_ram' | 56
| class="tileset_cycle_limit_sprite" title="$02AB - Sprite Tileset Cycle Limit" | W
| title='Extended RAM' class='extended_ram' | 57
|| - || - || - || -
|-
|-
| align='center' | $5800
! Bx
| title='Extended RAM' class='extended_ram' | 58
| class="last_sprite" title="$02B0 - Last Sprite" | W
| title='Extended RAM' class='extended_ram' | 59
| - || - || - || - || - || - || - || - || - || - || - || - || - || - || -
| title='Extended RAM' class='extended_ram' | 5A
| title='Extended RAM' class='extended_ram' | 5B
| title='Extended RAM' class='extended_ram' | 5C
| title='Extended RAM' class='extended_ram' | 5D
| title='Extended RAM' class='extended_ram' | 5E
| title='Extended RAM' class='extended_ram' | 5F
|-
|-
| align='center' | $6000
! Cx
| title='Extended RAM' class='extended_ram' | 60
| class="special_command_param" title="$02C0 - Special Command Param 0" | W
| title='Extended RAM' class='extended_ram' | 61
| class="special_command_param" title="$02C1 - Special Command Param 1" | W
| title='Extended RAM' class='extended_ram' | 62
| class="special_command_param" title="$02C2 - Special Command Param 2" | W
| title='Extended RAM' class='extended_ram' | 63
| class="special_command_param" title="$02C3 - Special Command Param 3" | W
| title='Extended RAM' class='extended_ram' | 64
| class="special_command_param" title="$02C4 - Special Command Param 4" | W
| title='Extended RAM' class='extended_ram' | 65
| class="special_command_param" title="$02C5 - Special Command Param 5" | W
| title='Extended RAM' class='extended_ram' | 66
| class="special_command_param" title="$02C6 - Special Command Param 6" | W
| title='Extended RAM' class='extended_ram' | 67
| class="special_command_param" title="$02C7 - Special Command Param 7" | W
| class="special_command_return" title="$02C8 - Special Command Return 0" | R
| class="special_command_return" title="$02C9 - Special Command Return 1" | R
| class="special_command_return" title="$02CA - Special Command Return 2" | R
| class="special_command_return" title="$02CB - Special Command Return 3" | R
| class="special_command_return" title="$02CC - Special Command Return 4" | R
| class="special_command_return" title="$02CD - Special Command Return 5" | R
| class="special_command_return" title="$02CE - Special Command Return 6" | R
| class="special_command_return" title="$02CF - Special Command Return 7" | R
|-
|-
| align='center' | $6800
! Dx
| title='Extended RAM' class='extended_ram' | 68
| class="special_command" title="$02D0 - Special Command" | W
| title='Extended RAM' class='extended_ram' | 69
| class="special_command_status" title="$02D1 - Special Command Status" | R
| title='Extended RAM' class='extended_ram' | 6A
| - || - || - || - || - || - || - || - || - || - || - || - || - || -
| title='Extended RAM' class='extended_ram' | 6B
| title='Extended RAM' class='extended_ram' | 6C
| title='Extended RAM' class='extended_ram' | 6D
| title='Extended RAM' class='extended_ram' | 6E
| title='Extended RAM' class='extended_ram' | 6F
|-
|-
| align='center' | $7000
! Ex
| title='Extended RAM' class='extended_ram' | 70
| class="bitmap_config" title="$02E0 - Bitmap Config" | W
| title='Extended RAM' class='extended_ram' | 71
| class="bitmap_control" title="$02E1 - Bitmap Control" | W
| title='Extended RAM' class='extended_ram' | 72
| - || - || - || - || - || -
| title='Extended RAM' class='extended_ram' | 73
| class="bitmap_address" title="$02E8 - Bitmap Address [Low]" | W
| title='Extended RAM' class='extended_ram' | 74
| class="bitmap_address" title="$02E9 - Bitmap Address [Mid]" | W
| title='Extended RAM' class='extended_ram' | 75
| class="bitmap_address" title="$02EA - Bitmap Address [High]" | W
| title='Extended RAM' class='extended_ram' | 76
| - || - || - || -
| title='Extended RAM' class='extended_ram' | 77
| class="bitmap_data" title="$02EF - Bitmap Data" | W
|-
|-
| align='center' | $7800
! Fx
| title='Extended RAM' class='extended_ram' | 78
| class="debug_display" title="$02F0 - Debug Display" | W
| title='Extended RAM' class='extended_ram' | 79
| class="debug_display" title="$02F1 - Debug Display" | W
| title='Extended RAM' class='extended_ram' | 7A
| - || - || - || - || - || -  
| title='Extended RAM' class='extended_ram' | 7B
| class="active_features" title="$02F8 - Active Features" | W
| title='Extended RAM' class='extended_ram' | 7C
| class="active_features" title="$02F9 - Active Features" | W
| title='Extended RAM' class='extended_ram' | 7D
| class="active_features" title="$02FA - Active Features" | W
| title='Extended RAM' class='extended_ram' | 7E
| - || - || - || -  
| title='Extended RAM' class='extended_ram' | 7F
| class="graphics_mode" title="$02FF - Graphics Mode" | W
|-
 
! colspan='10' |
|-
| rowspan='8' | Low ROM
| align='center' | $8000
| title='Low ROM' class='low_rom' | 80
| title='Low ROM' class='low_rom' | 81
| title='Low ROM' class='low_rom' | 82
| title='Low ROM' class='low_rom' | 83
| title='Low ROM' class='low_rom' | 84
| title='Low ROM' class='low_rom' | 85
| title='Low ROM' class='low_rom' | 86
| title='Low ROM' class='low_rom' | 87
|-
| align='center' | $8800
| title='Low ROM' class='low_rom' | 88
| title='Low ROM' class='low_rom' | 89
| title='Low ROM' class='low_rom' | 8A
| title='Low ROM' class='low_rom' | 8B
| title='Low ROM' class='low_rom' | 8C
| title='Low ROM' class='low_rom' | 8D
| title='Low ROM' class='low_rom' | 8E
| title='Low ROM' class='low_rom' | 8F
|-
| align='center' | $9000
| title='Low ROM' class='low_rom' | 90
| title='Low ROM' class='low_rom' | 91
| title='Low ROM' class='low_rom' | 92
| title='Low ROM' class='low_rom' | 93
| title='Low ROM' class='low_rom' | 94
| title='Low ROM' class='low_rom' | 95
| title='Low ROM' class='low_rom' | 96
| title='Low ROM' class='low_rom' | 97
|-
| align='center' | $9800
| title='Low ROM' class='low_rom' | 98
| title='Low ROM' class='low_rom' | 99
| title='Low ROM' class='low_rom' | 9A
| title='Low ROM' class='low_rom' | 9B
| title='Low ROM' class='low_rom' | 9C
| title='Low ROM' class='low_rom' | 9D
| title='Low ROM' class='low_rom' | 9E
| title='Low ROM' class='low_rom' | 9F
|-
| align='center' | $A000
| title='Low ROM' class='low_rom' | A0
| title='Low ROM' class='low_rom' | A1
| title='Low ROM' class='low_rom' | A2
| title='Low ROM' class='low_rom' | A3
| title='Low ROM' class='low_rom' | A4
| title='Low ROM' class='low_rom' | A5
| title='Low ROM' class='low_rom' | A6
| title='Low ROM' class='low_rom' | A7
|-
| align='center' | $A800
| title='Low ROM' class='low_rom' | A8
| title='Low ROM' class='low_rom' | A9
| title='Low ROM' class='low_rom' | AA
| title='Low ROM' class='low_rom' | AB
| title='Low ROM' class='low_rom' | AC
| title='Low ROM' class='low_rom' | AD
| title='Low ROM' class='low_rom' | AE
| title='Low ROM' class='low_rom' | AF
|-
| align='center' | $B000
| title='Low ROM' class='low_rom' | B0
| title='Low ROM' class='low_rom' | B1
| title='Low ROM' class='low_rom' | B2
| title='Low ROM' class='low_rom' | B3
| title='Low ROM' class='low_rom' | B4
| title='Low ROM' class='low_rom' | B5
| title='Low ROM' class='low_rom' | B6
| title='Low ROM' class='low_rom' | B7
|-
| align='center' | $B800
| title='Low ROM' class='low_rom' | B8
| title='Low ROM' class='low_rom' | B9
| title='Low ROM' class='low_rom' | BA
| title='Low ROM' class='low_rom' | BB
| title='Low ROM' class='low_rom' | BC
| title='Low ROM' class='low_rom' | BD
| title='Low ROM' class='low_rom' | BE
| title='Low ROM' class='low_rom' | BF
|-
! colspan='10' |
|-
| rowspan='8' | High ROM
| align='center' | $C000
| title='High ROM' class='high_rom' | C0
| title='High ROM' class='high_rom' | C1
| title='High ROM' class='high_rom' | C2
| title='High ROM' class='high_rom' | C3
| title='High ROM' class='high_rom' | C4
| title='High ROM' class='high_rom' | C5
| title='High ROM' class='high_rom' | C6
| title='High ROM' class='high_rom' | C7
|-
| align='center' | $C800
| title='High ROM' class='high_rom' | C8
| title='High ROM' class='high_rom' | C9
| title='High ROM' class='high_rom' | CA
| title='High ROM' class='high_rom' | CB
| title='High ROM' class='high_rom' | CC
| title='High ROM' class='high_rom' | CD
| title='High ROM' class='high_rom' | CE
| title='High ROM' class='high_rom' | CF
|-
| align='center' | $D000
| title='High ROM' class='high_rom' | D0
| title='High ROM' class='high_rom' | D1
| title='High ROM' class='high_rom' | D2
| title='High ROM' class='high_rom' | D3
| title='High ROM' class='high_rom' | D4
| title='High ROM' class='high_rom' | D5
| title='High ROM' class='high_rom' | D6
| title='High ROM' class='high_rom' | D7
|-
| align='center' | $D800
| title='High ROM' class='high_rom' | D8
| title='High ROM' class='high_rom' | D9
| title='High ROM' class='high_rom' | DA
| title='High ROM' class='high_rom' | DB
| title='High ROM' class='high_rom' | DC
| title='High ROM' class='high_rom' | DD
| title='High ROM' class='high_rom' | DE
| title='High ROM' class='high_rom' | DF
|-
| align='center' | $E000
| title='High ROM' class='high_rom' | E0
| title='High ROM' class='high_rom' | E1
| title='High ROM' class='high_rom' | E2
| title='High ROM' class='high_rom' | E3
| title='High ROM' class='high_rom' | E4
| title='High ROM' class='high_rom' | E5
| title='High ROM' class='high_rom' | E6
| title='High ROM' class='high_rom' | E7
|-
| align='center' | $E800
| title='High ROM' class='high_rom' | E8
| title='High ROM' class='high_rom' | E9
| title='High ROM' class='high_rom' | EA
| title='High ROM' class='high_rom' | EB
| title='High ROM' class='high_rom' | EC
| title='High ROM' class='high_rom' | ED
| title='High ROM' class='high_rom' | EE
| title='High ROM' class='high_rom' | EF
|-
| align='center' | $F000
| title='High ROM' class='high_rom' | F0
| title='High ROM' class='high_rom' | F1
| title='High ROM' class='high_rom' | F2
| title='High ROM' class='high_rom' | F3
| title='High ROM' class='high_rom' | F4
| title='High ROM' class='high_rom' | F5
| title='High ROM' class='high_rom' | F6
| title='High ROM' class='high_rom' | F7
|-
| align='center' | $F800
| title='High ROM' class='high_rom' | F8
| title='High ROM' class='high_rom' | F9
| title='High ROM' class='high_rom' | FA
| title='High ROM' class='high_rom' | FB
| title='High ROM' class='high_rom' | FC
| title='High ROM' class='high_rom' | FD
| title='High ROM' class='high_rom' | FE
| title='High ROM' class='high_rom' | FF
|}
|}


''' Key '''
''' Key '''
{| class='wikitable'
{| class="wikitable"
! Color !! Address !! Description
! Color !! Address !! Description
|-
|-
| class='zero_page' |
| class="input_latch_clock" |  
| $0000 - $00FF || [[Memory Region - CPU Zero Page|Zero Page]]
| $0200 || [[Register - Input|Input Latch/Clock]]
|-
| class='stack_page' |
| $0100 - $01FF || [[Memory Region - CPU Stack Page|Stack Page]]
|-
| class='control_page' |  
| $0200 - $02FF || [[Memory Region - CPU Control Page|Control Page]]
|-
| class='main_ram' |
| $0300 - $3FFF || [[Memory Region - CPU Main RAM|Main RAM]]
|-
| class='extended_ram' |
| $4000 - $7FFF || [[Memory Region - CPU Extended RAM|Extended RAM]]
|-
| class='low_rom' |
| $8000 - $BFFF || [[Memory Region - CPU Low ROM|Low ROM]]
|-
| class='high_rom' |
| $C000 - $FFFF || [[Memory Region - CPU High ROM|High ROM]]
|}
 
== PPU Table ==
{| class='wikitable'
! Region !! Address !! colspan='8' | Page
|-
| rowspan='8' | Main RAM
| align='center' | $0000
| title='Zero Page (Inaccessible)' class='inaccessible' | 00
| title='Stack Page (Inaccessible)' class='inaccessible' | 01
| title='Control Page' class='control_page' | 02
| title='Reserved' class='reserved' | 03
| title='Reserved' class='reserved' | 04
| title='Reserved' class='reserved' | 05
| title='Reserved' class='reserved' | 06
| title='Reserved' class='reserved' | 07
|-
| align='center' | $0800
| title='Background Palettes' class='background_palettes' | 08
| title='Background Palettes' class='background_palettes' | 09
| title='Background Palettes' class='background_palettes' | 0A
| title='Background Palettes' class='background_palettes' | 0B
| title='Background Palettes' class='background_palettes' | 0C
| title='Background Palettes' class='background_palettes' | 0D
| title='Sprite Palettes' class='sprite_palettes' | 0E
| title='Sprite Palettes' class='sprite_palettes' | 0F
|-
| align='center' | $1000
| title='Sprite Palettes' class='sprite_palettes' | 10
| title='Sprite Palettes' class='sprite_palettes' | 11
| title='Sprite Palettes' class='sprite_palettes' | 12
| title='Sprite Palettes' class='sprite_palettes' | 13
| title='Sprite Table' class='sprite_table' | 14
| title='Sprite Table' class='sprite_table' | 15
| title='Sprite Table' class='sprite_table' | 16
| title='Sprite Table' class='sprite_table' | 17
|-
| align='center' | $1800
| title='Fixed Name Table' class='fixed_name_table' | 18
| title='Fixed Name Table' class='fixed_name_table' | 19
| title='Fixed Name Table' class='fixed_name_table' | 1A
| title='Fixed Name Table' class='fixed_name_table' | 1B
| title='Fixed Name Table' class='fixed_name_table' | 1C
| title='Fixed Name Table' class='fixed_name_table' | 1D
| title='Fixed Name Table' class='fixed_name_table' | 1E
| title='Fixed Name Table' class='fixed_name_table' | 1F
|-
| align='center' | $2000
| title='Main Name Table' class='main_name_table' | 20
| title='Main Name Table' class='main_name_table' | 21
| title='Main Name Table' class='main_name_table' | 22
| title='Main Name Table' class='main_name_table' | 23
| title='Main Name Table' class='main_name_table' | 24
| title='Main Name Table' class='main_name_table' | 25
| title='Main Name Table' class='main_name_table' | 26
| title='Main Name Table' class='main_name_table' | 27
|-
| align='center' | $2800
| title='Main Name Table' class='main_name_table' | 28
| title='Main Name Table' class='main_name_table' | 29
| title='Main Name Table' class='main_name_table' | 2A
| title='Main Name Table' class='main_name_table' | 2B
| title='Main Name Table' class='main_name_table' | 2C
| title='Main Name Table' class='main_name_table' | 2D
| title='Main Name Table' class='main_name_table' | 2E
| title='Main Name Table' class='main_name_table' | 2F
|-
| align='center' | $3000
| title='Main Name Table' class='main_name_table' | 30
| title='Main Name Table' class='main_name_table' | 31
| title='Main Name Table' class='main_name_table' | 32
| title='Main Name Table' class='main_name_table' | 33
| title='Main Name Table' class='main_name_table' | 34
| title='Main Name Table' class='main_name_table' | 35
| title='Main Name Table' class='main_name_table' | 36
| title='Main Name Table' class='main_name_table' | 37
|-
| align='center' | $3800
| title='Main Name Table' class='main_name_table' | 38
| title='Main Name Table' class='main_name_table' | 39
| title='Main Name Table' class='main_name_table' | 3A
| title='Main Name Table' class='main_name_table' | 3B
| title='Main Name Table' class='main_name_table' | 3C
| title='Main Name Table' class='main_name_table' | 3D
| title='Main Name Table' class='main_name_table' | 3E
| title='Main Name Table' class='main_name_table' | 3F
|-
! colspan='10' |
|-
| rowspan='8' | Extended RAM
| align='center' | $4000
| title='Background Tile Table' class='background_tile_table' | 40
| title='Background Tile Table' class='background_tile_table' | 41
| title='Background Tile Table' class='background_tile_table' | 42
| title='Background Tile Table' class='background_tile_table' | 43
| title='Background Tile Table' class='background_tile_table' | 44
| title='Background Tile Table' class='background_tile_table' | 45
| title='Background Tile Table' class='background_tile_table' | 46
| title='Background Tile Table' class='background_tile_table' | 47
|-
| align='center' | $4800
| title='Background Tile Table' class='background_tile_table' | 48
| title='Background Tile Table' class='background_tile_table' | 49
| title='Background Tile Table' class='background_tile_table' | 4A
| title='Background Tile Table' class='background_tile_table' | 4B
| title='Background Tile Table' class='background_tile_table' | 4C
| title='Background Tile Table' class='background_tile_table' | 4D
| title='Background Tile Table' class='background_tile_table' | 4E
| title='Background Tile Table' class='background_tile_table' | 4F
|-
| align='center' | $5000
| title='Background Tile Table' class='background_tile_table' | 50
| title='Background Tile Table' class='background_tile_table' | 51
| title='Background Tile Table' class='background_tile_table' | 52
| title='Background Tile Table' class='background_tile_table' | 53
| title='Background Tile Table' class='background_tile_table' | 54
| title='Background Tile Table' class='background_tile_table' | 55
| title='Background Tile Table' class='background_tile_table' | 56
| title='Background Tile Table' class='background_tile_table' | 57
|-
| align='center' | $5800
| title='Background Tile Table' class='background_tile_table' | 58
| title='Background Tile Table' class='background_tile_table' | 59
| title='Background Tile Table' class='background_tile_table' | 5A
| title='Background Tile Table' class='background_tile_table' | 5B
| title='Background Tile Table' class='background_tile_table' | 5C
| title='Background Tile Table' class='background_tile_table' | 5D
| title='Background Tile Table' class='background_tile_table' | 5E
| title='Background Tile Table' class='background_tile_table' | 5F
|-
| align='center' | $6000
| title='Sprite Tile Table' class='sprite_tile_table' | 60
| title='Sprite Tile Table' class='sprite_tile_table' | 61
| title='Sprite Tile Table' class='sprite_tile_table' | 62
| title='Sprite Tile Table' class='sprite_tile_table' | 63
| title='Sprite Tile Table' class='sprite_tile_table' | 64
| title='Sprite Tile Table' class='sprite_tile_table' | 65
| title='Sprite Tile Table' class='sprite_tile_table' | 66
| title='Sprite Tile Table' class='sprite_tile_table' | 67
|-
|-
| align='center' | $6800
| class="input_data" |  
| title='Sprite Tile Table' class='sprite_tile_table' | 68
| $0201 || [[Register - Input|Input Data]]
| title='Sprite Tile Table' class='sprite_tile_table' | 69
| title='Sprite Tile Table' class='sprite_tile_table' | 6A
| title='Sprite Tile Table' class='sprite_tile_table' | 6B
| title='Sprite Tile Table' class='sprite_tile_table' | 6C
| title='Sprite Tile Table' class='sprite_tile_table' | 6D
| title='Sprite Tile Table' class='sprite_tile_table' | 6E
| title='Sprite Tile Table' class='sprite_tile_table' | 6F
|-
|-
| align='center' | $7000
| class="audio_address_flag" |  
| title='Sprite Tile Table' class='sprite_tile_table' | 70
| $0202 || [[Register - Audio|Audio Address Flag]]
| title='Sprite Tile Table' class='sprite_tile_table' | 71
| title='Sprite Tile Table' class='sprite_tile_table' | 72
| title='Sprite Tile Table' class='sprite_tile_table' | 73
| title='Sprite Tile Table' class='sprite_tile_table' | 74
| title='Sprite Tile Table' class='sprite_tile_table' | 75
| title='Sprite Tile Table' class='sprite_tile_table' | 76
| title='Sprite Tile Table' class='sprite_tile_table' | 77
|-
|-
| align='center' | $7800
| class="audio_address_data" |  
| title='Sprite Tile Table' class='sprite_tile_table' | 78
| $0203 || [[Register - Audio|Audio Address/Data]]
| title='Sprite Tile Table' class='sprite_tile_table' | 79
| title='Sprite Tile Table' class='sprite_tile_table' | 7A
| title='Sprite Tile Table' class='sprite_tile_table' | 7B
| title='Sprite Tile Table' class='sprite_tile_table' | 7C
| title='Sprite Tile Table' class='sprite_tile_table' | 7D
| title='Sprite Tile Table' class='sprite_tile_table' | 7E
| title='Sprite Tile Table' class='sprite_tile_table' | 7F
|-
|-
! colspan='10' |
| class="select_main_ram" |
| $0204 || [[Register - Main RAM Select|Main RAM Select]]
|-
|-
| rowspan='8' | Low ROM
| class="select_extended_ram" |  
| align='center' | $8000
| $0205 || [[Register - Extended RAM Select|Extended RAM Select]]
| title='Low ROM (Inaccessible)' class='inaccessible' | 80
| title='Low ROM (Inaccessible)' class='inaccessible' | 81
| title='Low ROM (Inaccessible)' class='inaccessible' | 82
| title='Low ROM (Inaccessible)' class='inaccessible' | 83
| title='Low ROM (Inaccessible)' class='inaccessible' | 84
| title='Low ROM (Inaccessible)' class='inaccessible' | 85
| title='Low ROM (Inaccessible)' class='inaccessible' | 86
| title='Low ROM (Inaccessible)' class='inaccessible' | 87
|-
|-
| align='center' | $8800
| class="select_low_rom" |  
| title='Low ROM (Inaccessible)' class='inaccessible' | 88
| $0206 || [[Register - Low ROM Select|Low ROM Select]]
| title='Low ROM (Inaccessible)' class='inaccessible' | 89
| title='Low ROM (Inaccessible)' class='inaccessible' | 8A
| title='Low ROM (Inaccessible)' class='inaccessible' | 8B
| title='Low ROM (Inaccessible)' class='inaccessible' | 8C
| title='Low ROM (Inaccessible)' class='inaccessible' | 8D
| title='Low ROM (Inaccessible)' class='inaccessible' | 8E
| title='Low ROM (Inaccessible)' class='inaccessible' | 8F
|-
|-
| align='center' | $9000
| class="select_high_rom" |  
| title='Low ROM (Inaccessible)' class='inaccessible' | 90
| $0207 || [[Register - High ROM Select|High ROM Select]]
| title='Low ROM (Inaccessible)' class='inaccessible' | 91
| title='Low ROM (Inaccessible)' class='inaccessible' | 92
| title='Low ROM (Inaccessible)' class='inaccessible' | 93
| title='Low ROM (Inaccessible)' class='inaccessible' | 94
| title='Low ROM (Inaccessible)' class='inaccessible' | 95
| title='Low ROM (Inaccessible)' class='inaccessible' | 96
| title='Low ROM (Inaccessible)' class='inaccessible' | 97
|-
|-
| align='center' | $9800
| class="scroll0" |  
| title='Low ROM (Inaccessible)' class='inaccessible' | 98
| $0280 - $0283 || [[Register - Scroll|Scroll Register]] (BG0)
| title='Low ROM (Inaccessible)' class='inaccessible' | 99
| title='Low ROM (Inaccessible)' class='inaccessible' | 9A
| title='Low ROM (Inaccessible)' class='inaccessible' | 9B
| title='Low ROM (Inaccessible)' class='inaccessible' | 9C
| title='Low ROM (Inaccessible)' class='inaccessible' | 9D
| title='Low ROM (Inaccessible)' class='inaccessible' | 9E
| title='Low ROM (Inaccessible)' class='inaccessible' | 9F
|-
|-
| align='center' | $A000
| class="scroll1" |  
| title='Low ROM (Inaccessible)' class='inaccessible' | A0
| $0284 - $0287 || [[Register - Scroll|Scroll Register]] (BG1)
| title='Low ROM (Inaccessible)' class='inaccessible' | A1
| title='Low ROM (Inaccessible)' class='inaccessible' | A2
| title='Low ROM (Inaccessible)' class='inaccessible' | A3
| title='Low ROM (Inaccessible)' class='inaccessible' | A4
| title='Low ROM (Inaccessible)' class='inaccessible' | A5
| title='Low ROM (Inaccessible)' class='inaccessible' | A6
| title='Low ROM (Inaccessible)' class='inaccessible' | A7
|-
|-
| align='center' | $A800
| class="scroll2" |  
| title='Low ROM (Inaccessible)' class='inaccessible' | A8
| $0288 - $028B || [[Register - Scroll|Scroll Register]] (BG2)
| title='Low ROM (Inaccessible)' class='inaccessible' | A9
| title='Low ROM (Inaccessible)' class='inaccessible' | AA
| title='Low ROM (Inaccessible)' class='inaccessible' | AB
| title='Low ROM (Inaccessible)' class='inaccessible' | AC
| title='Low ROM (Inaccessible)' class='inaccessible' | AD
| title='Low ROM (Inaccessible)' class='inaccessible' | AE
| title='Low ROM (Inaccessible)' class='inaccessible' | AF
|-
|-
| align='center' | $B000
| class="scroll3" |  
| title='Low ROM (Inaccessible)' class='inaccessible' | B0
| $028C - $028F || [[Register - Scroll|Scroll Register]] (BG3)
| title='Low ROM (Inaccessible)' class='inaccessible' | B1
| title='Low ROM (Inaccessible)' class='inaccessible' | B2
| title='Low ROM (Inaccessible)' class='inaccessible' | B3
| title='Low ROM (Inaccessible)' class='inaccessible' | B4
| title='Low ROM (Inaccessible)' class='inaccessible' | B5
| title='Low ROM (Inaccessible)' class='inaccessible' | B6
| title='Low ROM (Inaccessible)' class='inaccessible' | B7
|-
|-
| align='center' | $B800
| class="fixed_regions_top_bottom" |  
| title='Low ROM (Inaccessible)' class='inaccessible' | B8
| $0290 || [[Register - Fixed Regions|Fixed Regions Top/Bottom]]
| title='Low ROM (Inaccessible)' class='inaccessible' | B9
| title='Low ROM (Inaccessible)' class='inaccessible' | BA
| title='Low ROM (Inaccessible)' class='inaccessible' | BB
| title='Low ROM (Inaccessible)' class='inaccessible' | BC
| title='Low ROM (Inaccessible)' class='inaccessible' | BD
| title='Low ROM (Inaccessible)' class='inaccessible' | BE
| title='Low ROM (Inaccessible)' class='inaccessible' | BF
|-
|-
! colspan='10' |
| class="fixed_regions_left_right" |
| $0291 || [[Register - Fixed Regions|Fixed Regions Left/Right]]
|-
|-
| rowspan='8' | High ROM
| class="select_name_table" |  
| align='center' | $C000
| $0298 || [[Register - Name Table Select|Name Table Select]]
| title='High ROM (Inaccessible)' class='inaccessible' | C0
| title='High ROM (Inaccessible)' class='inaccessible' | C1
| title='High ROM (Inaccessible)' class='inaccessible' | C2
| title='High ROM (Inaccessible)' class='inaccessible' | C3
| title='High ROM (Inaccessible)' class='inaccessible' | C4
| title='High ROM (Inaccessible)' class='inaccessible' | C5
| title='High ROM (Inaccessible)' class='inaccessible' | C6
| title='High ROM (Inaccessible)' class='inaccessible' | C7
|-
|-
| align='center' | $C800
| class="select_tileset_read" |  
| title='High ROM (Inaccessible)' class='inaccessible' | C8
| $029E || [[Register - Tileset Select|Tileset Render Select]]
| title='High ROM (Inaccessible)' class='inaccessible' | C9
| title='High ROM (Inaccessible)' class='inaccessible' | CA
| title='High ROM (Inaccessible)' class='inaccessible' | CB
| title='High ROM (Inaccessible)' class='inaccessible' | CC
| title='High ROM (Inaccessible)' class='inaccessible' | CD
| title='High ROM (Inaccessible)' class='inaccessible' | CE
| title='High ROM (Inaccessible)' class='inaccessible' | CF
|-
|-
| align='center' | $D000
| class="select_tileset_write" |  
| title='High ROM (Inaccessible)' class='inaccessible' | D0
| $029F || [[Register - Tileset Select|Tileset Write Select]]
| title='High ROM (Inaccessible)' class='inaccessible' | D1
| title='High ROM (Inaccessible)' class='inaccessible' | D2
| title='High ROM (Inaccessible)' class='inaccessible' | D3
| title='High ROM (Inaccessible)' class='inaccessible' | D4
| title='High ROM (Inaccessible)' class='inaccessible' | D5
| title='High ROM (Inaccessible)' class='inaccessible' | D6
| title='High ROM (Inaccessible)' class='inaccessible' | D7
|-
|-
| align='center' | $D800
| class="color_cycle_speed_bg" |  
| title='High ROM (Inaccessible)' class='inaccessible' | D8
| $02A0 || [[Register - Color Cycle|Background Color Cycle Speed]]
| title='High ROM (Inaccessible)' class='inaccessible' | D9
| title='High ROM (Inaccessible)' class='inaccessible' | DA
| title='High ROM (Inaccessible)' class='inaccessible' | DB
| title='High ROM (Inaccessible)' class='inaccessible' | DC
| title='High ROM (Inaccessible)' class='inaccessible' | DD
| title='High ROM (Inaccessible)' class='inaccessible' | DE
| title='High ROM (Inaccessible)' class='inaccessible' | DF
|-
|-
| align='center' | $E000
| class="color_cycle_speed_sprite" |  
| title='High ROM (Inaccessible)' class='inaccessible' | E0
| $02A1 || [[Register - Color Cycle|Sprite Color Cycle Speed]]
| title='High ROM (Inaccessible)' class='inaccessible' | E1
| title='High ROM (Inaccessible)' class='inaccessible' | E2
| title='High ROM (Inaccessible)' class='inaccessible' | E3
| title='High ROM (Inaccessible)' class='inaccessible' | E4
| title='High ROM (Inaccessible)' class='inaccessible' | E5
| title='High ROM (Inaccessible)' class='inaccessible' | E6
| title='High ROM (Inaccessible)' class='inaccessible' | E7
|-
|-
| align='center' | $E800
| class="tileset_cycle_speed_bg" |  
| title='High ROM (Inaccessible)' class='inaccessible' | E8
| $02A8 || [[Register - Tileset Cycle|Background Tileset Cycle Speed]]
| title='High ROM (Inaccessible)' class='inaccessible' | E9
| title='High ROM (Inaccessible)' class='inaccessible' | EA
| title='High ROM (Inaccessible)' class='inaccessible' | EB
| title='High ROM (Inaccessible)' class='inaccessible' | EC
| title='High ROM (Inaccessible)' class='inaccessible' | ED
| title='High ROM (Inaccessible)' class='inaccessible' | EE
| title='High ROM (Inaccessible)' class='inaccessible' | EF
|-
|-
| align='center' | $F000
| class="tileset_cycle_limit_bg" |  
| title='High ROM (Inaccessible)' class='inaccessible' | F0
| $02A9 || [[Register - Tileset Cycle|Background Tileset Cycle Limit]]
| title='High ROM (Inaccessible)' class='inaccessible' | F1
| title='High ROM (Inaccessible)' class='inaccessible' | F2
| title='High ROM (Inaccessible)' class='inaccessible' | F3
| title='High ROM (Inaccessible)' class='inaccessible' | F4
| title='High ROM (Inaccessible)' class='inaccessible' | F5
| title='High ROM (Inaccessible)' class='inaccessible' | F6
| title='High ROM (Inaccessible)' class='inaccessible' | F7
|-
|-
| align='center' | $F800
| class="tileset_cycle_speed_sprite" |  
| title='High ROM (Inaccessible)' class='inaccessible' | F8
| $02AA || [[Register - Tileset Cycle|Sprite Tileset Cycle Speed]]
| title='High ROM (Inaccessible)' class='inaccessible' | F9
| title='High ROM (Inaccessible)' class='inaccessible' | FA
| title='High ROM (Inaccessible)' class='inaccessible' | FB
| title='High ROM (Inaccessible)' class='inaccessible' | FC
| title='High ROM (Inaccessible)' class='inaccessible' | FD
| title='High ROM (Inaccessible)' class='inaccessible' | FE
| title='High ROM (Inaccessible)' class='inaccessible' | FF
|}
 
''' Key '''
{| class='wikitable'
! Color !! Address !! Description
|-
|-
| class='inaccessible' |  
| class="tileset_cycle_limit_sprite" |  
| $0000 - $00FF || [[Memory Region - PPU Zero Page (Inaccessible)|Zero Page (Inaccessible)]]
| $02AB || [[Register - Tileset Cycle|Sprite Tileset Cycle Limit]]
|-
|-
| class='inaccessible' |  
| class="last_sprite" |  
| $0100 - $01FF || [[Memory Region - PPU Stack Page (Inaccessible)|Stack Page (Inaccessible)]]
| $02B0 || [[Register - Last Sprite|Last Sprite]]
|-
|-
| class='control_page' |  
| class="special_command_param" |  
| $0200 - $02FF || [[Memory Region - PPU Control Page|Control Page]]
| $02C0 - $02C7 || [[Register - Special Command|Special Command Parameters]]
|-
|-
| class='reserved' |  
| class="special_command_return" |  
| $0300 - $07FF || [[Memory Region - PPU Reserved|Reserved]]
| $02C8- $02CF || [[Register - Special Command|Special Command Returns]]
|-
|-
| class='background_palettes' |  
| class="special_command" |  
| $0800 - $0DFF || [[Memory Region - PPU Background Palettes|Background Palettes]]
| $02D0 || [[Register - Special Command|Special Command]]
|-
|-
| class='sprite_palettes' |  
| class="special_command_status" |  
| $0E00 - $13FF || [[Memory Region - PPU Sprite Palettes|Sprite Palettes]]
| $02D1 || [[Register - Special Command|Special Command Status]]
|-
|-
| class='sprite_table' |  
| class="bitmap_config" |  
| $1400 - $17FF || [[Memory Region - PPU Sprite Table|Sprite Table]]
| $02E0 || [[Register - Bitmap Config|Bitmap Config]]
|-
|-
| class='fixed_name_table' |  
| class="bitmap_control" |  
| $1800 - $1FFF || [[Memory Region - PPU Fixed Name Table|Fixed Name Table]]
| $02E1 || [[Register - Bitmap Control|Bitmap Control]]
|-
|-
| class='main_name_table' |  
| class="bitmap_address" |  
| $2000 - $3FFF || [[Memory Region - PPU Main Name Table|Main Name Table]]
| $02E8 - $02EA || [[Register - Bitmap Data|Bitmap Address]]
|-
|-
| class='background_tile_table' |  
| class="bitmap_data" |  
| $4000 - $5FFF || [[Memory Region - PPU Background Tile Table|Background Tile Table]]
| $02EF || [[Register - Bitmap Data|Bitmap Data]]
|-
|-
| class='sprite_tile_table' |  
| class="debug_display" |  
| $6000 - $7FFF || [[Memory Region - PPU Sprite Tile Table|Sprite Tile Table]]
| $02F0 - $02F1 || [[Register - Debug Display|Debug Display]]
|-
|-
| class='inaccessible' |  
| class="active_features" |  
| $8000 - $BFFF || [[Memory Region - PPU Low ROM (Inaccessible)|Low ROM (Inaccessible)]]
| $02F8 - $02FA || [[Register - Active Features|Active Features]]
|-
|-
| class='inaccessible' |  
| class="graphics_mode" |  
| $C000 - $FFFF || [[Memory Region - PPU High ROM (Inaccessible)|High ROM (Inaccessible)]]
| $02FF || [[Register - Graphics Mode|Graphics Mode]]
|}
|}
 
{{#css:User:NerdOfEpic/control-page.css}}
{{#css:User:NerdOfEpic/memory-regions.css}}

Latest revision as of 20:00, 28 August 2024

The Control Page is a page of memory that is devoted to connecting to other parts of NerdConsole. All of the other systems that can be addressed are collected in the Control Page to ensure the maximum amount of contiguous available memory. The Control Page gives access to the controllers, audio, RAM and ROM banking, and the graphics system.

Control Page Map ($02xx)

0 1 2 3 4 5 6 7 8 9 A B C D E F
0x W R W W W W W W - - - - - - - -
1x - - - - - - - - - - - - - - - -
2x - - - - - - - - - - - - - - - -
3x - - - - - - - - - - - - - - - -
4x - - - - - - - - - - - - - - - -
5x - - - - - - - - - - - - - - - -
6x - - - - - - - - - - - - - - - -
7x - - - - - - - - - - - - - - - -
8x W W W W W W W W W W W W W W W W
9x W W - - - - - - W - - - - - W W
Ax W W - - - - - - W W W W - - - -
Bx W - - - - - - - - - - - - - - -
Cx W W W W W W W W R R R R R R R R
Dx W R - - - - - - - - - - - - - -
Ex W W - - - - - - W W W - - - - W
Fx W W - - - - - - W W W - - - - W

Key

Color Address Description
$0200 Input Latch/Clock
$0201 Input Data
$0202 Audio Address Flag
$0203 Audio Address/Data
$0204 Main RAM Select
$0205 Extended RAM Select
$0206 Low ROM Select
$0207 High ROM Select
$0280 - $0283 Scroll Register (BG0)
$0284 - $0287 Scroll Register (BG1)
$0288 - $028B Scroll Register (BG2)
$028C - $028F Scroll Register (BG3)
$0290 Fixed Regions Top/Bottom
$0291 Fixed Regions Left/Right
$0298 Name Table Select
$029E Tileset Render Select
$029F Tileset Write Select
$02A0 Background Color Cycle Speed
$02A1 Sprite Color Cycle Speed
$02A8 Background Tileset Cycle Speed
$02A9 Background Tileset Cycle Limit
$02AA Sprite Tileset Cycle Speed
$02AB Sprite Tileset Cycle Limit
$02B0 Last Sprite
$02C0 - $02C7 Special Command Parameters
$02C8- $02CF Special Command Returns
$02D0 Special Command
$02D1 Special Command Status
$02E0 Bitmap Config
$02E1 Bitmap Control
$02E8 - $02EA Bitmap Address
$02EF Bitmap Data
$02F0 - $02F1 Debug Display
$02F8 - $02FA Active Features
$02FF Graphics Mode