68k ASM defines: Difference between revisions
Jump to navigation
Jump to search
m (Added color defs) |
mNo edit summary |
||
| Line 36: | Line 36: | ||
REG_P2CNT equ $340000 ; Joystick port 2 | REG_P2CNT equ $340000 ; Joystick port 2 | ||
REG_STATUS_B equ $380000 | REG_STATUS_B equ $380000 | ||
REG_POUTPUT equ $380001 ; Joypad port outputs | |||
REG_SLOT equ $380021 ; Slot selection | REG_SLOT equ $380021 ; Slot selection | ||
| Line 80: | Line 81: | ||
REG_DMAFILVAL equ $FF006C ;16bit: Fill value (word) ? | REG_DMAFILVAL equ $FF006C ;16bit: Fill value (word) ? | ||
REG_DMASIZE equ $FF0070 ;32bit?: Size (in 16 bit words) | REG_DMASIZE equ $FF0070 ;32bit?: Size (in 16 bit words) | ||
REG_DMASTART equ $FF0060 ;8bit | REG_DMASTART equ $FF0060 ;8bit: Start transfer ($40 ?) | ||
REG_UPSELSPR equ $FF0121 | |||
REG_UPSELPCM equ $FF0123 | |||
REG_UPSELZ80 equ $FF0127 | |||
REG_UPSELFIX equ $FF0129 | |||
REG_UPUNMAPSPR equ $FF0141 | |||
REG_UPUNMAPPCM equ $FF0143 | |||
REG_UPUNMAPZ80 equ $FF0147 | |||
REG_UPUNMAPFIX equ $FF0149 | |||
BIOS_SYSSTAT equ $10FD80 ; Word: ? | BIOS_SYSSTAT equ $10FD80 ; Word: ? | ||
| Line 119: | Line 129: | ||
BIOS_UPZONE equ $10FEDA ;8bit: zone (0=PRG, 1=FIX, 2=SPR, 3=Z80, 4=PCM, 5=PAT) | BIOS_UPZONE equ $10FEDA ;8bit: zone (0=PRG, 1=FIX, 2=SPR, 3=Z80, 4=PCM, 5=PAT) | ||
BIOS_UPBANK equ $10FEDB ;8bit: bank | BIOS_UPBANK equ $10FEDB ;8bit: bank | ||
</pre> | </pre> | ||
[[Category:Code]] | [[Category:Code]] | ||
Revision as of 15:42, 13 March 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
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
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_BOOTSCR equ $C00438 ; Show bootscreen (and other things)
BIOSF_VBL equ $C0044A ; Multiple purposes
BIOSF_GETTIME equ $C0045C ; Set calendar addresses (10FDD2+), MVS only
BIOSF_CRDACCESS equ $C00468 ; Access memory card with specified function (check CRDF)
BIOSF_CRDREPORT equ $C0046E ; In case an error occurred ("CARD FULL" etc.), prompt user for action
BIOSF_HOWTOPLAY equ $C00474 ; Show how-to-play presentation, MVS only
BIOSF_CLEARFIX equ $C004C2 ; Clear fix layer
BIOSF_CLEARSPR equ $C004C8 ; Clear sprites
BIOSF_UPLOAD equ $C00546 ; Upload data to DRAM
BIOSF_CDDACMD equ $C0056A ; Issue CDDA command
REG_CDDALEFTL equ $FF0188 ; CD audio levels
REG_CDDARIGHTL equ $FF018A
;DMA related:
REG_DMACPYSRC equ $FF0064 ;32bit: Copy source address ?
REG_DMAFILDEST equ $FF0064 ;32bit: Fill destination address ?
REG_DMACPYDEST equ $FF0068 ;32bit: Copy destination address ?
REG_DMAFILVAL equ $FF006C ;16bit: Fill value (word) ?
REG_DMASIZE equ $FF0070 ;32bit?: Size (in 16 bit words)
REG_DMASTART equ $FF0060 ;8bit: Start transfer ($40 ?)
REG_UPSELSPR equ $FF0121
REG_UPSELPCM equ $FF0123
REG_UPSELZ80 equ $FF0127
REG_UPSELFIX equ $FF0129
REG_UPUNMAPSPR equ $FF0141
REG_UPUNMAPPCM equ $FF0143
REG_UPUNMAPZ80 equ $FF0147
REG_UPUNMAPFIX equ $FF0149
BIOS_SYSSTAT equ $10FD80 ; Word: ?
; Set by BIOSF_VBL
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_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_STATCURNT equ $10FDAC ; joystick 1/2 start/select
BIOS_STATCHANGE equ $10FDAD ; previous joystick 1/2 start/select
; Memory card related:
BIOS_CRDF equ $10FDC4 ;8bit: function to perform when calling BIOSF_CRDACCESS, see below table
BIOS_CRDRESULT equ $10FDC6 ;8bit: 00 on success, else 80+ and encodes the error, see below table
BIOS_CRDPTR equ $10FDC8 ;32bit: pointer to read from/write to
BIOS_CRDSIZE equ $10FDCC ;16bit: how much data to read/write from/to card
BIOS_CRDNGH equ $10FDCE ;16bit: usually game NGH. Unique identifier for the game that 'owns' the save file
BIOS_CRDFILE equ $10FDD0 ;16bit: 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
; Upload to DRAM
BIOS_UPSRC equ $10FEF8 ;32bit: source address
BIOS_UPDEST equ $10FEF4 ;32bit: destination address (!)
BIOS_UPSIZE equ $10FEFC ;32bit: size
BIOS_UPZONE equ $10FEDA ;8bit: zone (0=PRG, 1=FIX, 2=SPR, 3=Z80, 4=PCM, 5=PAT)
BIOS_UPBANK equ $10FEDB ;8bit: bank