68k ASM defines: Difference between revisions
Jump to navigation
Jump to search
m (20 revisions: Import from wikkii) |
(Added (incomplete) infos from official doc) |
||
Line 6: | Line 6: | ||
SCB1 equ $0000 ;VRAM, Sprite tilemaps | SCB1 equ $0000 ;VRAM, Sprite tilemaps | ||
FIXMAP equ $7000 ;VRAM, Fix map | FIXMAP equ $7000 ;VRAM, Fix map | ||
SCB2 equ $8000 ;VRAM, Sprite shrink | SCB2 equ $8000 ;VRAM, Sprite shrink ratios | ||
SCB3 equ $8200 ;VRAM, Sprite Y positions and sizes | SCB3 equ $8200 ;VRAM, Sprite Y positions and sizes | ||
SCB4 equ $8400 ;VRAM, Sprite X positions | SCB4 equ $8400 ;VRAM, Sprite X positions | ||
Line 62: | Line 62: | ||
; BIOS calls | ; BIOS calls | ||
BIOSF_SYSTEM_INT1 equ $C00438 | |||
BIOSF_SYSTEM_RETURN equ $C00444 | |||
BIOSF_SYSTEM_IO equ $C0044A ;Sets RAM values from I/O ports | |||
BIOSF_CREDIT_CHECK equ $C00450 | |||
BIOSF_CREDIT_DOWN equ $C00456 | |||
BIOSF_VIDEOEN | BIOSF_READ_CALENDAR equ $C0045C ;Set calendar addresses (10FDD2+), MVS only | ||
BIOSF_HOWTOPLAY equ $C00474 ;Show how-to-play presentation, MVS only | BIOSF_CARD equ $C00468 ;Perform memory card operations | ||
BIOSF_CARD_ERROR equ $C0046E ;In case a memory card error occurred, prompt user for action | |||
BIOSF_VIDEOEN equ $C00470 ;Enable/disable video layers, CD only | |||
BIOSF_UPLOAD | BIOSF_HOWTOPLAY equ $C00474 ;Show how-to-play presentation, MVS only | ||
BIOSF_CDDACMD | BIOSF_FIX_CLEAR equ $C004C2 ;Clear fix layer | ||
BIOSF_LSP_1ST equ $C004C8 ;Clear sprites | |||
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: | ;DMA related: | ||
Line 101: | Line 105: | ||
REG_CDDARIGHTL equ $FF018A | REG_CDDARIGHTL equ $FF018A | ||
BIOS_SYSTEM_MODE equ $10FD80 ;Game/system mode (bit 7) | |||
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 BIOSF_VBL | ; Set by BIOSF_VBL | ||
BIOS_P1STATUS equ $10FD94 | |||
BIOS_P1CURRENT equ $10FD95 ;joystick 1 state | BIOS_P1CURRENT equ $10FD95 ;joystick 1 state | ||
BIOS_P1PREVIOUS equ $10FD96 ;previous joystick 1 state | BIOS_P1PREVIOUS equ $10FD96 ;previous joystick 1 state | ||
BIOS_P1CHANGE equ $10FD97 ;joystick 1 state change | BIOS_P1CHANGE equ $10FD97 ;joystick 1 state change | ||
BIOS_P1REPEAT equ $10FD98 ;joystick 1 repeat | BIOS_P1REPEAT equ $10FD98 ;joystick 1 repeat | ||
BIOS_P1TIMER equ $10FD99 | |||
BIOS_P2STATUS equ $10FD9A | |||
BIOS_P2CURRENT equ $10FD9B ;joystick 2 state | BIOS_P2CURRENT equ $10FD9B ;joystick 2 state | ||
BIOS_P2PREVIOUS equ $10FD9C ;previous joystick 2 state | BIOS_P2PREVIOUS equ $10FD9C ;previous joystick 2 state | ||
BIOS_P2CHANGE equ $10FD9D ;joystick 2 state change | BIOS_P2CHANGE equ $10FD9D ;joystick 2 state change | ||
BIOS_P2REPEAT equ $10FD9E ;joystick 2 repeat | BIOS_P2REPEAT equ $10FD9E ;joystick 2 repeat | ||
BIOS_P2TIMER equ $10FD99 | |||
;button definitions | ;button definitions | ||
Line 126: | Line 134: | ||
CNT_C equ 6 | CNT_C equ 6 | ||
CNT_D equ 7 | 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_MODE equ $10FDAF | |||
BIOS_START_FLAG equ $10FDB4 | |||
BIOS_MESS_BUSY equ $10FDC2 | |||
; Memory card related: | ; Memory card related: | ||
Line 144: | Line 162: | ||
BIOS_SECOND equ $10FDD8 | BIOS_SECOND equ $10FDD8 | ||
BIOS_DEVMODE equ $10FE80 ;Byte: | BIOS_DEVMODE equ $10FE80 ;Byte: non-zero for developer mode | ||
; Upload to DRAM | ; Upload to DRAM | ||
Line 152: | Line 170: | ||
BIOS_UPZONE equ $10FEDA ;byte: zone (0=PRG, 1=FIX, 2=SPR, 3=Z80, 4=PCM, 5=PAT) | BIOS_UPZONE equ $10FEDA ;byte: zone (0=PRG, 1=FIX, 2=SPR, 3=Z80, 4=PCM, 5=PAT) | ||
BIOS_UPBANK equ $10FEDB ;byte: bank | BIOS_UPBANK equ $10FEDB ;byte: bank | ||
SOUND_STOP equ $D00046 ;byte | |||
</pre> | </pre> | ||
[[Category:Code]] | [[Category:Code]] |
Revision as of 02:39, 27 June 2011
Here are preliminary ASM defines 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.
SCB1 equ $0000 ;VRAM, Sprite tilemaps FIXMAP equ $7000 ;VRAM, Fix map SCB2 equ $8000 ;VRAM, Sprite shrink ratios SCB3 equ $8200 ;VRAM, Sprite Y positions and sizes SCB4 equ $8400 ;VRAM, Sprite X positions BLACK equ $8000 MIDBLUE equ $1007 BLUE equ $100F MIDGREEN equ $2070 GREEN equ $20F0 MIDCYAN equ $3077 CYAN equ $30FF MIDRED equ $4700 RED equ $4F00 MIDMAGENTA equ $5707 MAGENTA equ $5F0F ORANGE equ $6F70 MIDYELLOW equ $6770 YELLOW equ $6FF0 MIDGREY equ $7777 WHITE equ $7FFF RAMSTART equ $100000 ;User RAM start PALETTES equ $400000 ;Palette RAM start BACKDROPCOLOR equ PALETTES+(16*2*256)-2 REG_P1CNT equ $300000 ;Joystick port 1 REG_DIPSW equ $300001 ;Dipswitches/Watchdog REG_SOUND equ $320000 ;In/Out Z80 REG_STATUS_A equ $320001 REG_P2CNT equ $340000 ;Joystick port 2 REG_STATUS_B equ $380000 REG_POUTPUT equ $380001 ;Joypad port outputs REG_SLOT equ $380021 ;Slot selection REG_DISPENABL equ $3A0001 ;Video output ON REG_DISPDSABL equ $3A0011 ;Video output OFF REG_SWPROM equ $3A0013 ;Use ROM vector table REG_CRDUNLOCK1 equ $3A0005 ;Allow /WE to pass through to memory card when low REG_CRDLOCK1 equ $3A0015 ;Don't allow /WE to pass through to memory card REG_CRDLOCK2 equ $3A0007 ;Don't allow /WE to pass through to memory card REG_CRDUNLOCK2 equ $3A0017 ;Allow /WE to pass through to memory card when high 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 VRAM_RW equ $3C0002 VRAM_MOD equ $3C0004 REG_HBLANKCNT equ $3C0006 REG_HBLANKPOS equ $3C0008 REG_IRQACK equ $3C000C ; BIOS calls BIOSF_SYSTEM_INT1 equ $C00438 BIOSF_SYSTEM_RETURN equ $C00444 BIOSF_SYSTEM_IO equ $C0044A ;Sets RAM values from I/O ports BIOSF_CREDIT_CHECK equ $C00450 BIOSF_CREDIT_DOWN equ $C00456 BIOSF_READ_CALENDAR equ $C0045C ;Set calendar addresses (10FDD2+), MVS only BIOSF_CARD equ $C00468 ;Perform memory card operations BIOSF_CARD_ERROR equ $C0046E ;In case a memory card error occurred, prompt user for action BIOSF_VIDEOEN equ $C00470 ;Enable/disable video layers, CD only BIOSF_HOWTOPLAY equ $C00474 ;Show how-to-play presentation, MVS only BIOSF_FIX_CLEAR equ $C004C2 ;Clear fix layer BIOSF_LSP_1ST equ $C004C8 ;Clear sprites 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) 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 BIOSF_VBL BIOS_P1STATUS equ $10FD94 BIOS_P1CURRENT equ $10FD95 ;joystick 1 state BIOS_P1PREVIOUS equ $10FD96 ;previous joystick 1 state BIOS_P1CHANGE equ $10FD97 ;joystick 1 state change BIOS_P1REPEAT equ $10FD98 ;joystick 1 repeat BIOS_P1TIMER equ $10FD99 BIOS_P2STATUS equ $10FD9A BIOS_P2CURRENT equ $10FD9B ;joystick 2 state BIOS_P2PREVIOUS equ $10FD9C ;previous joystick 2 state BIOS_P2CHANGE equ $10FD9D ;joystick 2 state change BIOS_P2REPEAT equ $10FD9E ;joystick 2 repeat BIOS_P2TIMER equ $10FD99 ;button definitions CNT_UP equ 0 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_MODE equ $10FDAF BIOS_START_FLAG equ $10FDB4 BIOS_MESS_BUSY equ $10FDC2 ; Memory card related: BIOS_CRDF equ $10FDC4 ;byte: function to perform when calling BIOSF_CRDACCESS, see below table BIOS_CRDRESULT equ $10FDC6 ;byte: 00 on success, else 80+ and encodes the error, see below table 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, only set by MVS (all data stored in BCD) BIOS_YEAR equ $10FDD2 ;last 2 digits of year BIOS_MONTH equ $10FDD3 BIOS_DAY equ $10FDD4 BIOS_WEEKDAY equ $10FDD5 ;Sunday = 00, Monday = 01 ... Saturday = 06 BIOS_HOUR equ $10FDD6 ;24 hour time BIOS_MINUTE equ $10FDD7 BIOS_SECOND equ $10FDD8 BIOS_DEVMODE equ $10FE80 ;Byte: non-zero for developer mode ; Upload to DRAM BIOS_UPDEST equ $10FEF4 ;longword: destination address (!) BIOS_UPSRC equ $10FEF8 ;longword: source address BIOS_UPSIZE equ $10FEFC ;longword: size 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