68k ASM defines

From NeoGeo Development Wiki
Revision as of 08:01, 23 February 2011 by Furrtek (talk | contribs)
Jump to navigation Jump to search

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

    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_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_CRDUNLOCK1  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_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_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

    BIOS_SYSSTAT    equ $10FD80         ; Word: ?

    ; Set by BIOSF_? (read player controls)
    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_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