68k ASM defines: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
(Undo revision 4141 by Razoola (talk))
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
Here are preliminary ASM defines for memory locations and constants. For detailed descriptions, see [[Memory mapped registers]].
Here are assembly defines/aliases for memory locations and constants. For detailed descriptions, see [[Memory mapped registers]].


This can be made into a file and included in your ASM source code to use register names instead of their (meaningless) addresses in RAM.
These can be copied into a file and included in your assembly project to use register names instead of their (meaningless) addresses.


<syntaxhighlight>
<syntaxhighlight>
SCB1            equ $0000  ;VRAM, Sprite tilemaps
;Hard DIPs:
FIXMAP          equ $7000  ;VRAM, Fix map
DIPSW_SETTINGS  equ 0
SCB2            equ $8000  ;VRAM, Sprite shrink ratios
DIPSW_CHUTES    equ 1
SCB3            equ $8200  ;VRAM, Sprite Y positions and sizes
DIPSW_CTRL      equ 2
SCB4            equ $8400  ;VRAM, Sprite X positions
DIPSW_ID0      equ 3
DIPSW_ID1      equ 4
DIPSW_MULTI    equ 5
DIPSW_FREEPLAY  equ 6
DIPSW_FREEZE    equ 7


;VRAM zones:
SCB1            equ $0000  ;Sprite tilemaps
FIXMAP          equ $7000
SCB2            equ $8000  ;Sprite shrink values
SCB3            equ $8200  ;Sprite Y positions, heights and flags
SCB4            equ $8400  ;Sprite X positions
;Basic colors:
BLACK          equ $8000
BLACK          equ $8000
MIDRED          equ $4700
RED            equ $4F00
MIDGREEN        equ $2070
GREEN          equ $20F0
MIDBLUE        equ $1007
MIDBLUE        equ $1007
BLUE            equ $100F
BLUE            equ $100F
MIDGREEN        equ $2070
MIDYELLOW      equ $6770
GREEN          equ $20F0
YELLOW          equ $6FF0
MIDMAGENTA      equ $5707
MAGENTA        equ $5F0F
MIDCYAN        equ $3077
MIDCYAN        equ $3077
CYAN            equ $30FF
CYAN            equ $30FF
MIDRED          equ $4700
RED            equ $4F00
MIDMAGENTA      equ $5707
MAGENTA        equ $5F0F
ORANGE          equ $6F70
ORANGE          equ $6F70
MIDYELLOW      equ $6770
YELLOW          equ $6FF0
MIDGREY        equ $7777
MIDGREY        equ $7777
WHITE          equ $7FFF
WHITE          equ $7FFF


RAMSTART        equ $100000 ;User RAM start
;Zones:
PALETTES        equ $400000 ;Palette RAM start
RAMSTART        equ $100000   ;68k work RAM
BACKDROPCOLOR  equ PALETTES+(16*2*256)-2
PALETTES        equ $400000   ;Palette RAM
MEMCARD        equ $800000 ;Memory card data start
BACKDROP        equ PALETTES+(16*2*256)-2
BIOSROM        equ $C00000
MEMCARD        equ $800000   ;Memory card
SYSROM          equ $C00000   ;System ROM


REG_P1CNT      equ $300000 ;Joystick port 1
;Registers:
REG_DIPSW      equ $300001 ;Dipswitches/Watchdog
REG_P1CNT      equ $300000
REG_SOUND      equ $320000 ;In/Out Z80
REG_DIPSW      equ $300001   ;Dipswitches/Watchdog
REG_SOUND      equ $320000   ;Z80 I/O
REG_STATUS_A    equ $320001
REG_STATUS_A    equ $320001
REG_P2CNT      equ $340000 ;Joystick port 2
REG_P2CNT      equ $340000
REG_STATUS_B    equ $380000
REG_STATUS_B    equ $380000
REG_POUTPUT    equ $380001 ;Joypad port outputs
REG_POUTPUT    equ $380001   ;Joypad port outputs
REG_SLOT        equ $380021 ;Slot selection
REG_SLOT        equ $380021   ;Slot select


REG_DISPENABL  equ $3A0001 ;Video output ON
REG_NOSHADOW    equ $3A0001  ;Video output normal/dark
REG_DISPDSABL   equ $3A0011 ;Video output OFF
REG_SHADOW     equ $3A0011
REG_SWPROM     equ $3A0013 ;Use ROM vector table
REG_BRDFIX      equ $3A000B   ;Use embedded fix tileset
REG_CRDUNLOCK1  equ $3A0005 ;Allow /WE to pass through to memory card when low
REG_CRTFIX      equ $3A001B   ;Use game fix tileset
REG_CRDLOCK1    equ $3A0015 ;Don't allow /WE to pass through to memory card
REG_PALBANK1    equ $3A000F   ;Use palette bank 1
REG_CRDLOCK2    equ $3A0007 ;Don't allow /WE to pass through to memory card
REG_PALBANK0    equ $3A001F   ;Use palette bank 0 (default)
REG_CRDUNLOCK2  equ $3A0017 ;Allow /WE to pass through to memory card when high
REG_CRDREGSEL equ $3A0009
REG_CRDNORMAL  equ $3A0019
REG_BRDFIX      equ $3A000B ;Use board fix tileset
REG_CRTFIX      equ $3A001B ;Use ROM fix tileset
REG_SRAMLOCK    equ $3A000D ;Write-protect SRAM
REG_SRAMUNLOCK  equ $3A001D ;Write-unprotect SRAM
REG_PALBANK1    equ $3A000F ;Use palette bank 1
REG_PALBANK0    equ $3A001F ;Use palette bank 0 (default)


VRAM_ADDR      equ $3C0000
REG_VRAMADDR    equ $3C0000
VRAM_RW        equ $3C0002
REG_VRAMRW      equ $3C0002
VRAM_MOD        equ $3C0004
REG_VRAMMOD    equ $3C0004
REG_LSPCMODE    equ $3C0006
REG_LSPCMODE    equ $3C0006
REG_TIMERHIGH  equ $3C0008
REG_TIMERHIGH  equ $3C0008
Line 67: Line 72:
REG_TIMERSTOP  equ $3C000E
REG_TIMERSTOP  equ $3C000E


; BIOS calls
;System ROM calls:
BIOSF_SYSTEM_INT1  equ $C00438
SYS_INT1          equ $C00438
BIOSF_SYSTEM_RETURN equ $C00444
SYS_RETURN        equ $C00444
BIOSF_SYSTEM_IO    equ $C0044A ;Sets RAM values from I/O ports
SYS_IO            equ $C0044A
BIOSF_CREDIT_CHECK equ $C00450
SYS_CREDIT_CHECK equ $C00450
BIOSF_CREDIT_DOWN   equ $C00456
SYS_CREDIT_DOWN   equ $C00456
BIOSF_READ_CALENDAR equ $C0045C ;Set calendar addresses (10FDD2+), MVS only
SYS_READ_CALENDAR equ $C0045C   ;MVS only
BIOSF_CARD         equ $C00468 ;Perform memory card operations
SYS_CARD         equ $C00468
BIOSF_CARD_ERROR   equ $C0046E ;In case a memory card error occurred, prompt user for action
SYS_CARD_ERROR   equ $C0046E
BIOSF_VIDEOEN      equ $C00470 ;Enable/disable video layers, CD only
SYS_HOWTOPLAY     equ $C00474   ;MVS only
BIOSF_HOWTOPLAY     equ $C00474 ;Show how-to-play presentation, MVS only
SYS_FIX_CLEAR     equ $C004C2
BIOSF_FIX_CLEAR     equ $C004C2 ;Clear fix layer
SYS_LSP_1ST       equ $C004C8   ;Clear sprites
BIOSF_LSP_1ST       equ $C004C8 ;Clear sprites
SYS_MESS_OUT     equ $C004CE
BIOSF_MESS_OUT     equ $C004CE
BIOSF_UPLOAD        equ $C00546 ;Upload data to DRAM, CD only
BIOSF_CDDACMD      equ $C0056A ;Issue CDDA command, CD only
 
;DMA related:
REG_DMACPYSRC  equ $FF0064 ;longword: Copy source address ?
REG_DMAFILDEST  equ $FF0064 ;longword: Fill destination address ?
REG_DMACPYDEST  equ $FF0068 ;longword: Copy destination address ?
REG_DMAFILVAL  equ $FF006C ;word: Fill value (word) ?
REG_DMASIZE    equ $FF0070 ;longword?: Size (in 16 bit words)
REG_DMASTART    equ $FF0060 ;byte: Start transfer ($40 ?)
 
REG_DISBLSPR    equ $FF0111 ;byte: 0/1 disable sprites
REG_DISBLFIX    equ $FF0115 ;byte: 0/1 disable fix layer
REG_ENVIDEO    equ $FF0119 ;byte: 0/1 enable video output
REG_CDCONFIG    equ $FF011C ;word: jumper and lid switch input
 
REG_UPMAPSPR    equ $FF0121 ;bytes (0 or 1)
REG_UPMAPPCM    equ $FF0123
REG_UPMAPZ80    equ $FF0127
REG_UPMAPFIX    equ $FF0129
REG_UPUNMAPSPR  equ $FF0141
REG_UPUNMAPPCM  equ $FF0143
REG_UPUNMAPZ80  equ $FF0147
REG_UPUNMAPFIX  equ $FF0149
REG_DISBLIRQ    equ $FF016F
REG_ENZ80      equ $FF0183
 
REG_CDDALEFTL  equ $FF0188 ;CD audio levels
REG_CDDARIGHTL  equ $FF018A


BIOS_SYSTEM_MODE  equ $10FD80 ;Game/system mode (bit 7)
;RAM locations:
BIOS_SYSTEM_MODE  equ $10FD80
BIOS_MVS_FLAG    equ $10FD82
BIOS_MVS_FLAG    equ $10FD82
BIOS_COUNTRY_CODE equ $10FD83
BIOS_COUNTRY_CODE equ $10FD83
BIOS_GAME_DIP    equ $10FD84 ;start of soft DIPs settings (up to $10FD93)
BIOS_GAME_DIP    equ $10FD84   ;Start of soft DIPs settings (up to $10FD93)


; Set by BIOSF_SYSTEM_IO
;Set by SYS_IO:
BIOS_P1STATUS  equ $10FD94
BIOS_P1STATUS  equ $10FD94
BIOS_P1PREVIOUS equ $10FD95 ;previous joystick 1 state
BIOS_P1PREVIOUS equ $10FD95
BIOS_P1CURRENT  equ $10FD96 ;joystick 1 state
BIOS_P1CURRENT  equ $10FD96
BIOS_P1CHANGE  equ $10FD97 ;joystick 1 state change
BIOS_P1CHANGE  equ $10FD97
BIOS_P1REPEAT  equ $10FD98 ;joystick 1 repeat
BIOS_P1REPEAT  equ $10FD98
BIOS_P1TIMER    equ $10FD99
BIOS_P1TIMER    equ $10FD99


BIOS_P2STATUS  equ $10FD9A
BIOS_P2STATUS  equ $10FD9A
BIOS_P2PREVIOUS equ $10FD9B ;previous joystick 2 state
BIOS_P2PREVIOUS equ $10FD9B
BIOS_P2CURRENT  equ $10FD9C ;joystick 2 state
BIOS_P2CURRENT  equ $10FD9C
BIOS_P2CHANGE  equ $10FD9D ;joystick 2 state change
BIOS_P2CHANGE  equ $10FD9D
BIOS_P2REPEAT  equ $10FD9E ;joystick 2 repeat
BIOS_P2REPEAT  equ $10FD9E
BIOS_P2TIMER    equ $10FD99
BIOS_P2TIMER    equ $10FD99


;button definitions
BIOS_STATCURNT    equ $10FDAC
CNT_UP         equ 0
BIOS_STATCHANGE  equ $10FDAD
CNT_DN         equ 1
CNT_LE         equ 2
CNT_RI         equ 3
CNT_A         equ 4
CNT_B         equ 5
CNT_C         equ 6
CNT_D         equ 7
 
BIOS_STATCURNT    equ $10FDAC ;joystick 1/2 start/select
BIOS_STATCHANGE  equ $10FDAD ;previous joystick 1/2 start/select
BIOS_USER_REQUEST equ $10FDAE
BIOS_USER_REQUEST equ $10FDAE
BIOS_USER_MODE    equ $10FDAF
BIOS_USER_MODE    equ $10FDAF
Line 149: Line 115:
BIOS_MESS_BUSY    equ $10FDC2
BIOS_MESS_BUSY    equ $10FDC2


; Memory card related:
;Memory card:
BIOS_CRDF      equ $10FDC4 ;byte: function to perform when calling BIOSF_CRDACCESS, see below table
BIOS_CRDF      equ $10FDC4   ;Byte: function to perform when calling BIOSF_CRDACCESS
BIOS_CRDRESULT  equ $10FDC6 ;byte: 00 on success, else 80+ and encodes the error, see below table
BIOS_CRDRESULT  equ $10FDC6   ;Byte: 00 on success, else 80+ and encodes the error
BIOS_CRDPTR    equ $10FDC8 ;longword: pointer to read from/write to
BIOS_CRDPTR    equ $10FDC8   ;Longword: pointer to read from/write to
BIOS_CRDSIZE    equ $10FDCC ;word: how much data to read/write from/to card
BIOS_CRDSIZE    equ $10FDCC   ;Word: how much data to read/write from/to card
BIOS_CRDNGH    equ $10FDCE ;word: usually game NGH. Unique identifier for the game that 'owns' the save file
BIOS_CRDNGH    equ $10FDCE   ;Word: usually game NGH. Unique identifier for the game that owns the save file
BIOS_CRDFILE    equ $10FDD0 ;word: each NGH has up to 16 save 'files' associated with
BIOS_CRDFILE    equ $10FDD0   ;Word: each NGH has up to 16 save files associated with


; Calendar, only on MVS (in BCD)
;Calendar, MVS only (in BCD):
BIOS_YEAR      equ $10FDD2 ;last 2 digits of year
BIOS_YEAR      equ $10FDD2   ;Last 2 digits of year
BIOS_MONTH      equ $10FDD3
BIOS_MONTH      equ $10FDD3
BIOS_DAY        equ $10FDD4
BIOS_DAY        equ $10FDD4
BIOS_WEEKDAY    equ $10FDD5 ;Sunday = 00, Monday = 01 ... Saturday = 06
BIOS_WEEKDAY    equ $10FDD5   ;Sunday = 0, Monday = 1 ... Saturday = 6
BIOS_HOUR      equ $10FDD6 ;24 hour time
BIOS_HOUR      equ $10FDD6   ;24 hour time
BIOS_MINUTE    equ $10FDD7
BIOS_MINUTE    equ $10FDD7
BIOS_SECOND    equ $10FDD8
BIOS_SECOND    equ $10FDD8


BIOS_SELECT_TIMER equ $10FDDA ;Byte: game start countdown
BIOS_SELECT_TIMER equ $10FDDA   ;Byte: game start countdown
BIOS_DEVMODE      equ $10FE80 ;Byte: non-zero for developer mode
BIOS_DEVMODE      equ $10FE80   ;Byte: non-zero for developer mode
 
;Upload system ROM call:
BIOS_UPDEST    equ $10FEF4  ;Longword
BIOS_UPSRC      equ $10FEF8  ;Longword
BIOS_UPSIZE    equ $10FEFC  ;Longword
BIOS_UPZONE    equ $10FEDA  ;Byte: zone (0=PRG, 1=FIX, 2=SPR, 3=Z80, 4=PCM, 5=PAT)
BIOS_UPBANK    equ $10FEDB  ;Byte: bank
 
SOUND_STOP      equ $D00046
 
;Button definitions:
CNT_UP         equ 0
CNT_DOWN equ 1
CNT_LEFT equ 2
CNT_RIGHT equ 3
CNT_A         equ 4
CNT_B         equ 5
CNT_C         equ 6
CNT_D         equ 7
CNT_START1      equ 0
CNT_SELECT1    equ 1
CNT_START2      equ 2
CNT_SELECT2    equ 3
</syntaxhighlight>
 
==CD only==
 
<syntaxhighlight>
;System ROM calls
SYS_VIDEOEN    equ $C00470
SYS_UPLOAD      equ $C00546  ;Upload to DRAM
SYS_CDDACMD    equ $C0056A  ;Issue CDDA command
 
;DMA:
REG_DMACPYSRC  equ $FF0064
REG_DMAFILDEST  equ $FF0064
REG_DMACPYDEST  equ $FF0068
REG_DMAFILVAL  equ $FF006C
REG_DMASIZE    equ $FF0070
REG_DMASTART    equ $FF0060


; Upload to DRAM
REG_DISBLSPR    equ $FF0111
BIOS_UPDEST    equ $10FEF4 ;longword: destination address (!)
REG_DISBLFIX    equ $FF0115
BIOS_UPSRC      equ $10FEF8 ;longword: source address
REG_ENVIDEO     equ $FF0119
BIOS_UPSIZE     equ $10FEFC ;longword: size
REG_CDCONFIG    equ $FF011C
BIOS_UPZONE    equ $10FEDA ;byte: zone (0=PRG, 1=FIX, 2=SPR, 3=Z80, 4=PCM, 5=PAT)
BIOS_UPBANK    equ $10FEDB ;byte: bank


SOUND_STOP      equ $D00046 ;byte
REG_UPMAPSPR    equ $FF0121
REG_UPMAPPCM    equ $FF0123
REG_UPMAPZ80    equ $FF0127
REG_UPMAPFIX    equ $FF0129
REG_UPUNMAPSPR  equ $FF0141
REG_UPUNMAPPCM  equ $FF0143
REG_UPUNMAPZ80  equ $FF0147
REG_UPUNMAPFIX  equ $FF0149
REG_DISBLIRQ    equ $FF016F
REG_ENZ80      equ $FF0183
 
REG_CDDALEFTL  equ $FF0188  ;CD audio levels
REG_CDDARIGHTL  equ $FF018A
</syntaxhighlight>
</syntaxhighlight>


[[Category:Code]]
[[Category:Code]]

Latest revision as of 12:46, 28 May 2017

Here are assembly defines/aliases for memory locations and constants. For detailed descriptions, see Memory mapped registers.

These can be copied into a file and included in your assembly project to use register names instead of their (meaningless) addresses.

;Hard DIPs:
DIPSW_SETTINGS  equ 0
DIPSW_CHUTES    equ 1
DIPSW_CTRL      equ 2
DIPSW_ID0       equ 3
DIPSW_ID1       equ 4
DIPSW_MULTI     equ 5
DIPSW_FREEPLAY  equ 6
DIPSW_FREEZE    equ 7

;VRAM zones:
SCB1            equ $0000   ;Sprite tilemaps
FIXMAP          equ $7000
SCB2            equ $8000   ;Sprite shrink values
SCB3            equ $8200   ;Sprite Y positions, heights and flags
SCB4            equ $8400   ;Sprite X positions

;Basic colors:
BLACK           equ $8000
MIDRED          equ $4700
RED             equ $4F00
MIDGREEN        equ $2070
GREEN           equ $20F0
MIDBLUE         equ $1007
BLUE            equ $100F
MIDYELLOW       equ $6770
YELLOW          equ $6FF0
MIDMAGENTA      equ $5707
MAGENTA         equ $5F0F
MIDCYAN         equ $3077
CYAN            equ $30FF
ORANGE          equ $6F70
MIDGREY         equ $7777
WHITE           equ $7FFF

;Zones:
RAMSTART        equ $100000   ;68k work RAM
PALETTES        equ $400000   ;Palette RAM
BACKDROP        equ PALETTES+(16*2*256)-2
MEMCARD         equ $800000   ;Memory card
SYSROM          equ $C00000   ;System ROM

;Registers:
REG_P1CNT       equ $300000
REG_DIPSW       equ $300001   ;Dipswitches/Watchdog
REG_SOUND       equ $320000   ;Z80 I/O
REG_STATUS_A    equ $320001
REG_P2CNT       equ $340000
REG_STATUS_B    equ $380000
REG_POUTPUT     equ $380001   ;Joypad port outputs
REG_SLOT        equ $380021   ;Slot select

REG_NOSHADOW    equ $3A0001   ;Video output normal/dark
REG_SHADOW      equ $3A0011
REG_BRDFIX      equ $3A000B   ;Use embedded fix tileset
REG_CRTFIX      equ $3A001B   ;Use game fix tileset
REG_PALBANK1    equ $3A000F   ;Use palette bank 1
REG_PALBANK0    equ $3A001F   ;Use palette bank 0 (default)

REG_VRAMADDR    equ $3C0000
REG_VRAMRW      equ $3C0002
REG_VRAMMOD     equ $3C0004
REG_LSPCMODE    equ $3C0006
REG_TIMERHIGH   equ $3C0008
REG_TIMERLOW    equ $3C000A
REG_IRQACK      equ $3C000C
REG_TIMERSTOP   equ $3C000E

;System ROM calls:
SYS_INT1          equ $C00438
SYS_RETURN        equ $C00444
SYS_IO            equ $C0044A
SYS_CREDIT_CHECK  equ $C00450
SYS_CREDIT_DOWN   equ $C00456
SYS_READ_CALENDAR equ $C0045C   ;MVS only
SYS_CARD          equ $C00468
SYS_CARD_ERROR    equ $C0046E
SYS_HOWTOPLAY     equ $C00474   ;MVS only
SYS_FIX_CLEAR     equ $C004C2
SYS_LSP_1ST       equ $C004C8   ;Clear sprites
SYS_MESS_OUT      equ $C004CE

;RAM locations:
BIOS_SYSTEM_MODE  equ $10FD80
BIOS_MVS_FLAG     equ $10FD82
BIOS_COUNTRY_CODE equ $10FD83
BIOS_GAME_DIP     equ $10FD84   ;Start of soft DIPs settings (up to $10FD93)

;Set by SYS_IO:
BIOS_P1STATUS   equ $10FD94
BIOS_P1PREVIOUS equ $10FD95
BIOS_P1CURRENT  equ $10FD96
BIOS_P1CHANGE   equ $10FD97
BIOS_P1REPEAT   equ $10FD98
BIOS_P1TIMER    equ $10FD99

BIOS_P2STATUS   equ $10FD9A
BIOS_P2PREVIOUS equ $10FD9B
BIOS_P2CURRENT  equ $10FD9C
BIOS_P2CHANGE   equ $10FD9D
BIOS_P2REPEAT   equ $10FD9E
BIOS_P2TIMER    equ $10FD99

BIOS_STATCURNT    equ $10FDAC
BIOS_STATCHANGE   equ $10FDAD
BIOS_USER_REQUEST equ $10FDAE
BIOS_USER_MODE    equ $10FDAF
BIOS_START_FLAG   equ $10FDB4
BIOS_MESS_POINT   equ $10FDBE
BIOS_MESS_BUSY    equ $10FDC2

;Memory card:
BIOS_CRDF       equ $10FDC4   ;Byte: function to perform when calling BIOSF_CRDACCESS
BIOS_CRDRESULT  equ $10FDC6   ;Byte: 00 on success, else 80+ and encodes the error
BIOS_CRDPTR     equ $10FDC8   ;Longword: pointer to read from/write to
BIOS_CRDSIZE    equ $10FDCC   ;Word: how much data to read/write from/to card
BIOS_CRDNGH     equ $10FDCE   ;Word: usually game NGH. Unique identifier for the game that owns the save file
BIOS_CRDFILE    equ $10FDD0   ;Word: each NGH has up to 16 save files associated with

;Calendar, MVS only (in BCD):
BIOS_YEAR       equ $10FDD2   ;Last 2 digits of year
BIOS_MONTH      equ $10FDD3
BIOS_DAY        equ $10FDD4
BIOS_WEEKDAY    equ $10FDD5   ;Sunday = 0, Monday = 1 ... Saturday = 6
BIOS_HOUR       equ $10FDD6   ;24 hour time
BIOS_MINUTE     equ $10FDD7
BIOS_SECOND     equ $10FDD8

BIOS_SELECT_TIMER equ $10FDDA   ;Byte: game start countdown
BIOS_DEVMODE      equ $10FE80   ;Byte: non-zero for developer mode

;Upload system ROM call:
BIOS_UPDEST     equ $10FEF4   ;Longword
BIOS_UPSRC      equ $10FEF8   ;Longword
BIOS_UPSIZE     equ $10FEFC   ;Longword
BIOS_UPZONE     equ $10FEDA   ;Byte: zone (0=PRG, 1=FIX, 2=SPR, 3=Z80, 4=PCM, 5=PAT)
BIOS_UPBANK     equ $10FEDB   ;Byte: bank

SOUND_STOP      equ $D00046

;Button definitions:
CNT_UP	        equ 0
CNT_DOWN	equ 1
CNT_LEFT	equ 2
CNT_RIGHT	equ 3
CNT_A	        equ 4
CNT_B	        equ 5
CNT_C	        equ 6
CNT_D	        equ 7
CNT_START1      equ 0
CNT_SELECT1     equ 1
CNT_START2      equ 2
CNT_SELECT2     equ 3

CD only

;System ROM calls
SYS_VIDEOEN     equ $C00470
SYS_UPLOAD      equ $C00546   ;Upload to DRAM
SYS_CDDACMD     equ $C0056A   ;Issue CDDA command

;DMA:
REG_DMACPYSRC   equ $FF0064
REG_DMAFILDEST  equ $FF0064
REG_DMACPYDEST  equ $FF0068
REG_DMAFILVAL   equ $FF006C
REG_DMASIZE     equ $FF0070
REG_DMASTART    equ $FF0060

REG_DISBLSPR    equ $FF0111
REG_DISBLFIX    equ $FF0115
REG_ENVIDEO     equ $FF0119
REG_CDCONFIG    equ $FF011C

REG_UPMAPSPR    equ $FF0121
REG_UPMAPPCM    equ $FF0123
REG_UPMAPZ80    equ $FF0127
REG_UPMAPFIX    equ $FF0129
REG_UPUNMAPSPR  equ $FF0141
REG_UPUNMAPPCM  equ $FF0143
REG_UPUNMAPZ80  equ $FF0147
REG_UPUNMAPFIX  equ $FF0149
REG_DISBLIRQ    equ $FF016F
REG_ENZ80       equ $FF0183

REG_CDDALEFTL   equ $FF0188   ;CD audio levels
REG_CDDARIGHTL  equ $FF018A