68k ASM defines
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