68k ASM defines: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
|||
Line 1: | Line 1: | ||
Here are | 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. | |||
<syntaxhighlight> | <syntaxhighlight> | ||
SCB1 equ $0000 ; | ;VRAM zones: | ||
FIXMAP equ $7000 | SCB1 equ $0000 ;Sprite tilemaps | ||
SCB2 equ $8000 ; | FIXMAP equ $7000 | ||
SCB3 equ $8200 ; | SCB2 equ $8000 ;Sprite shrink values | ||
SCB4 equ $8400 ; | 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 | ||
MIDYELLOW equ $6770 | |||
YELLOW equ $6FF0 | |||
MIDMAGENTA equ $5707 | |||
MAGENTA equ $5F0F | |||
MIDCYAN equ $3077 | MIDCYAN equ $3077 | ||
CYAN equ $30FF | CYAN equ $30FF | ||
ORANGE equ $6F70 | ORANGE equ $6F70 | ||
MIDGREY equ $7777 | MIDGREY equ $7777 | ||
WHITE equ $7FFF | WHITE equ $7FFF | ||
RAMSTART equ $100000 ; | ;Zones: | ||
PALETTES equ $400000 ;Palette RAM | RAMSTART equ $100000 ;68k work RAM | ||
PALETTES equ $400000 ;Palette RAM | |||
MEMCARD equ $800000 ;Memory card | BACKDROP equ PALETTES+(16*2*256)-2 | ||
MEMCARD equ $800000 ;Memory card | |||
SYSROM equ $C00000 ;System ROM | |||
REG_P1CNT equ $300000 | ;Registers: | ||
REG_DIPSW equ $300001 ;Dipswitches/Watchdog | REG_P1CNT equ $300000 | ||
REG_SOUND equ $320000 ; | 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 | 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 | 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_BRDFIX equ $3A000B ;Use | |||
REG_CRTFIX equ $3A001B ;Use | |||
REG_PALBANK1 equ $3A000F ;Use palette bank 1 | |||
REG_PALBANK0 equ $3A001F ;Use palette bank 0 (default) | |||
VRAM_ADDR equ $3C0000 | VRAM_ADDR equ $3C0000 | ||
Line 67: | Line 62: | ||
REG_TIMERSTOP equ $3C000E | 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_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 ; | BIOS_GAME_DIP equ $10FD84 ;Start of soft DIPs settings (up to $10FD93) | ||
; Set by | ;Set by SYS_IO: | ||
BIOS_P1STATUS equ $10FD94 | BIOS_P1STATUS equ $10FD94 | ||
BIOS_P1PREVIOUS equ $10FD95 | BIOS_P1PREVIOUS equ $10FD95 | ||
BIOS_P1CURRENT equ $10FD96 | BIOS_P1CURRENT equ $10FD96 | ||
BIOS_P1CHANGE equ $10FD97 | BIOS_P1CHANGE equ $10FD97 | ||
BIOS_P1REPEAT equ $10FD98 | BIOS_P1REPEAT equ $10FD98 | ||
BIOS_P1TIMER equ $10FD99 | BIOS_P1TIMER equ $10FD99 | ||
BIOS_P2STATUS equ $10FD9A | BIOS_P2STATUS equ $10FD9A | ||
BIOS_P2PREVIOUS equ $10FD9B | BIOS_P2PREVIOUS equ $10FD9B | ||
BIOS_P2CURRENT equ $10FD9C | BIOS_P2CURRENT equ $10FD9C | ||
BIOS_P2CHANGE equ $10FD9D | BIOS_P2CHANGE equ $10FD9D | ||
BIOS_P2REPEAT equ $10FD9E | BIOS_P2REPEAT equ $10FD9E | ||
BIOS_P2TIMER equ $10FD99 | BIOS_P2TIMER equ $10FD99 | ||
BIOS_STATCURNT equ $10FDAC | |||
BIOS_STATCHANGE equ $10FDAD | |||
BIOS_STATCURNT equ $10FDAC | |||
BIOS_STATCHANGE equ $10FDAD | |||
BIOS_USER_REQUEST equ $10FDAE | BIOS_USER_REQUEST equ $10FDAE | ||
BIOS_USER_MODE equ $10FDAF | BIOS_USER_MODE equ $10FDAF | ||
Line 149: | Line 105: | ||
BIOS_MESS_BUSY equ $10FDC2 | BIOS_MESS_BUSY equ $10FDC2 | ||
; Memory card | ;Memory card: | ||
BIOS_CRDF equ $10FDC4 ; | BIOS_CRDF equ $10FDC4 ;Byte: function to perform when calling BIOSF_CRDACCESS | ||
BIOS_CRDRESULT equ $10FDC6 ; | BIOS_CRDRESULT equ $10FDC6 ;Byte: 00 on success, else 80+ and encodes the error | ||
BIOS_CRDPTR equ $10FDC8 ; | BIOS_CRDPTR equ $10FDC8 ;Longword: pointer to read from/write to | ||
BIOS_CRDSIZE equ $10FDCC ; | BIOS_CRDSIZE equ $10FDCC ;Word: how much data to read/write from/to card | ||
BIOS_CRDNGH equ $10FDCE ; | BIOS_CRDNGH equ $10FDCE ;Word: usually game NGH. Unique identifier for the game that owns the save file | ||
BIOS_CRDFILE equ $10FDD0 ; | BIOS_CRDFILE equ $10FDD0 ;Word: each NGH has up to 16 save files associated with | ||
; Calendar, only | ;Calendar, MVS only (in BCD): | ||
BIOS_YEAR equ $10FDD2 ; | 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 = | 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 | |||
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 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Category:Code]] | [[Category:Code]] |
Revision as of 20:52, 22 June 2016
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.
;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)
VRAM_ADDR equ $3C0000
VRAM_RW equ $3C0002
VRAM_MOD 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