68k memory map: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
m (9 revisions: Import from wikkii)
m (Fixed link to MAME source code)
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{| style="border-spacing: 10px;"
==In [[:Category:Cartridge systems|Cartridge systems]]==
|style="vertical-align: top;"|


==In [[:Category:Cartridge systems|Cartridge systems]]==
To do: More details in the $300000 range, especially mirroring. See MAME's source and address decoding signals.


{| class="regdef"
{| class="regdef"
| '''Start address'''
| '''Start'''
| '''End address'''
| '''End'''
| '''Size'''
| '''Size'''
| '''[[ASM Defines|DEF]] Name'''
| '''[[68k ASM defines|DEF]] Name'''
| '''[[Wait cycle]]s'''
| '''Description'''
| '''Description'''
|-
|-
Line 15: Line 15:
| 1MiB
| 1MiB
|  
|  
| Vector table, First fixed bank of the [[68k]] binary ([[P ROM|P1 ROM]])
| 0 or 1 (4/5 clks) depending on {{Sig|ROMWAIT|ROMWAIT}}.
| [[68k_vector_table|Vector table]], first fixed bank of the {{Chipname|68k}} program ROM ({{Chipname|P ROM}})
|-
|-
| $100000
| $100000
Line 21: Line 22:
|rowspan="2"|64KiB
|rowspan="2"|64KiB
|rowspan="2"|WORKRAM
|rowspan="2"|WORKRAM
|rowspan="2"|0 (4 clks)
| [[68k user RAM|User RAM]]
| [[68k user RAM|User RAM]]
|-
|-
| $10F300
| $10F300
| $10FFFF
| $10FFFF
| [[BIOSes|BIOS]]-reserved RAM
| [[System ROM]]-reserved RAM
|-
| $110000
| $1FFFFF
|
|
| 0 (4 clks)
| Work RAM mirror
|-
|-
| $200000
| $200000
Line 31: Line 40:
| 1MiB
| 1MiB
|
|
| Second bank of the 68k binary (bankswitch possible on some carts, $2FFFE0 ?)
| 0 to 3 (4/7 clks) depending on {{Sig|PWAIT|PWAIT}}.
| Second bank of the 68k program ROM (also used for bankswitching and access to special chips)
|-
|-
| $300000
| $300000
Line 37: Line 47:
|
|
|  
|  
| [[Memory mapped registers]]
| 0 (4 clks)
| I/O. See [[Memory mapped registers]] and [[GPU]].
|-
|-
| $400000
| $400000
| $401FFF
| $401FFF
| 8KiB
| 8KiB
| PALETTERAM
| PALETTES
| 0 (4 clks)
| Banked [[palette RAM]]
| Banked [[palette RAM]]
|-
| $402000
| $7FFFFF
|
|
| 0 (4 clks)
| Palette RAM mirror
|-
|-
| $800000
| $800000
| $801FFF
| $BFFFFF
| 4 KiB
| 8 MiB max
| MEMORYCARD
| MEMCARD
| [[Memory card]] (8bit, even bytes are always $FF)
| 2 (6 clks)
| [[Memory card]]
|-
|-
| $C00000
| $C00000
| $C1FFFF
| $C1FFFF
| 128KiB
| 128KiB
| BIOSROM
| SYSTEMROM
| System's [[BIOSes|BIOS]]
| 0 (4 clks)
| [[System ROM]]
|-
| $C20000
| $CFFFFF
|
|
| 0 (4 clks)
| System ROM mirror
|-
|-
| $D00000
| $D00000
Line 61: Line 89:
| 64KiB
| 64KiB
|  
|  
| [[battery-backed RAM]] (MVS only)
| 0 (4 clks)
| [[Backup RAM]] (MVS only)
|-
| $D10000
| $DFFFFF
|
|
| 0 (4 clks)
| Backup RAM mirror
|}
|}
|style="vertical-align: top;"|


==In [[:Category:CD systems|CD systems]]==
==In [[:Category:CD systems|CD systems]]==


{| class="regdef"
{| class="regdef"
| '''Start address'''
| '''Start'''
| '''End address'''
| '''End'''
| '''Size'''
| '''Size'''
| '''[[ASM Defines|DEF]] Name'''
| '''[[68k ASM defines|DEF]] Name'''
| '''Description'''
| '''Description'''
|-
|-
| $000000
| $000000
| $1FFFFF
| $0FFFFF
| 2MiB
| 1MiB
|  
|  
| Vector table, 68k binaries ([[PRG file]]s), 68k RAM
| Vector table, 68k program ([[PRG file]]s)
|-
|-
| $100000
| $100000
| $10F2FF
| $10F2FF
|rowspan="2"|64KiB<br>Shared with the 68k code [[DRAM]] ?
|rowspan="2"|64KiB<br>Shared with the 68k code [[DRAM]].
|rowspan="2"| WORKRAM
|rowspan="2"| WORKRAM
| [[68k user RAM|User RAM]]
| [[68k user RAM|User RAM]]
Line 89: Line 123:
| $10F300
| $10F300
| $10FFFF
| $10FFFF
| [[BIOSes|BIOS]]-reserved RAM
| [[System ROM]]-reserved RAM
|-
|-
| $200000
| $110000
| $2FFFFF
| $1FFFFF
|  
|  
|
|
| ?
| Buffers, 68k program
|-
|-
| $300000
| $300000
| $39FFFF
|
|
| Input ports (See [[Memory mapped registers]])
|-
| $3A0000
| $3BFFFF
|
|
| Ouput ports (See Memory mapped registers)
|-
| $3C0000
| $3FFFFF
| $3FFFFF
|
|
|  
|  
| [[Memory mapped registers]]
| [[GPU]] ports (See Memory mapped registers)
|-
|-
| $400000
| $400000
| $401FFF
| $401FFF
| 8KiB
| 8KiB
| PALETTERAM
| PALETTES
| Banked [[palette RAM]]
| Banked [[palette RAM]]
|-
|-
Line 112: Line 158:
| $803FFF
| $803FFF
| 8 KiB
| 8 KiB
| MEMORYCARD
| MEMCARD
| Virtual memory card (onboard [[battery-backed RAM]])<br>
| Virtual memory card (onboard [[battery-backed RAM]])<br>
(8bit, even bytes are always $FF)
(8bit, even bytes are always $FF)
Line 120: Line 166:
| 512KiB
| 512KiB
| BIOSROM
| BIOSROM
| System's [[BIOSes|BIOS]]
| [[System ROM]]
|-
|-
| $D00000
| $D00000
Line 138: Line 184:
|
|
|
|
| CD system registers
| CD and DMA specific I/O registers
|}
|}


== For [[Neo Print]] boards ==
Infos from [[https://github.com/mamedev/mame/blob/master/src/mame/drivers/neoprint.cpp MAME's source]].
{| class="regdef"
| '''Start'''
| '''End'''
| '''Size'''
| '''[[68k ASM defines|DEF]] Name'''
| '''Description'''
|-
| $000000
| $07FFFF
| 512KiB
|
| 68k program (P ROM).
|-
| $100000
| $17FFFF
|
|
| Banked 68k program or I/O (writes done here).
|-
| $200000
| $20FFFF
| 64KiB
|
| 68k RAM
|-
| $300000
| $30FFFF
| 64KiB
|
| Backup RAM
|-
| $400000
| $43FFFF
|
|
| VRAM ?
|-
| $500000
| $51FFFF
| 128KiB
|
| Palette RAM
|-
| $600000
| $600001
|
|
| Z80 I/O
|-
| $600002
| $600003
|
|
| RTC I/O
|-
| $600004
| $60000D
|
|
| I/O registers
|-
| $700000
| $70001B
|
|
| GPU registers
|-
| 70001E
| 70001F
|
|
| Watchdog
|}
|}


[[Category:Base system]]
[[Category:Base system]]

Revision as of 22:45, 23 June 2017

In Cartridge systems

To do: More details in the $300000 range, especially mirroring. See MAME's source and address decoding signals.

Start End Size DEF Name Wait cycles Description
$000000 $0FFFFF 1MiB 0 or 1 (4/5 clks) depending on ROMWAIT. Vector table, first fixed bank of the 68k program ROM (P ROM)
$100000 $10F2FF 64KiB WORKRAM 0 (4 clks) User RAM
$10F300 $10FFFF System ROM-reserved RAM
$110000 $1FFFFF 0 (4 clks) Work RAM mirror
$200000 $2FFFFF 1MiB 0 to 3 (4/7 clks) depending on PWAIT. Second bank of the 68k program ROM (also used for bankswitching and access to special chips)
$300000 $3FFFFF 0 (4 clks) I/O. See Memory mapped registers and GPU.
$400000 $401FFF 8KiB PALETTES 0 (4 clks) Banked palette RAM
$402000 $7FFFFF 0 (4 clks) Palette RAM mirror
$800000 $BFFFFF 8 MiB max MEMCARD 2 (6 clks) Memory card
$C00000 $C1FFFF 128KiB SYSTEMROM 0 (4 clks) System ROM
$C20000 $CFFFFF 0 (4 clks) System ROM mirror
$D00000 $D0FFFF 64KiB 0 (4 clks) Backup RAM (MVS only)
$D10000 $DFFFFF 0 (4 clks) Backup RAM mirror

In CD systems

Start End Size DEF Name Description
$000000 $0FFFFF 1MiB Vector table, 68k program (PRG files)
$100000 $10F2FF 64KiB
Shared with the 68k code DRAM.
WORKRAM User RAM
$10F300 $10FFFF System ROM-reserved RAM
$110000 $1FFFFF Buffers, 68k program
$300000 $39FFFF Input ports (See Memory mapped registers)
$3A0000 $3BFFFF Ouput ports (See Memory mapped registers)
$3C0000 $3FFFFF GPU ports (See Memory mapped registers)
$400000 $401FFF 8KiB PALETTES Banked palette RAM
$800000 $803FFF 8 KiB MEMCARD Virtual memory card (onboard battery-backed RAM)

(8bit, even bytes are always $FF)

$C00000 $C7FFFF 512KiB BIOSROM System ROM
$D00000 $DFFFFF ?
$E00000 $EFFFFF 1MiB UPLOAD Upload zone
$FF0000 $FF01FF ? CD and DMA specific I/O registers

For Neo Print boards

Infos from [MAME's source].

Start End Size DEF Name Description
$000000 $07FFFF 512KiB 68k program (P ROM).
$100000 $17FFFF Banked 68k program or I/O (writes done here).
$200000 $20FFFF 64KiB 68k RAM
$300000 $30FFFF 64KiB Backup RAM
$400000 $43FFFF VRAM ?
$500000 $51FFFF 128KiB Palette RAM
$600000 $600001 Z80 I/O
$600002 $600003 RTC I/O
$600004 $60000D I/O registers
$700000 $70001B GPU registers
70001E 70001F Watchdog