You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.7 KiB
93 lines
2.7 KiB
2 years ago
|
;; Game Boy Constants
|
||
|
; Interrupt Flags
|
||
|
INTERRUPT_SETTINGS EQU $ffff
|
||
|
INT_VBLANK_ON EQU %00000001
|
||
|
INT_VBLANK_OFF EQU %00000000
|
||
|
INT_LCDC_ON EQU %00000010
|
||
|
INT_LCDC_OFF EQU %00000000
|
||
|
INT_TIMER_ON EQU %00000100
|
||
|
INT_TIMER_OFF EQU %00000000
|
||
|
INT_SERIAL_ON EQU %00001000
|
||
|
INT_SERIAL_OFF EQU %00000000
|
||
|
|
||
|
; LCD Control
|
||
|
LCD_CONTROL_REGISTER EQU $ff40
|
||
|
LCD_POSITION_REGISTER EQU $ff44
|
||
|
BKG_DISPLAY_ON EQU %00000001
|
||
|
BKG_DISPLAY_OFF EQU %00000000
|
||
|
OBJ_DISPLAY_ON EQU %00000010
|
||
|
OBJ_DISPLAY_OFF EQU %00000000
|
||
|
OBJ_SIZE_8X8 EQU %00000000
|
||
|
OBJ_SIZE_16X8 EQU %00000100
|
||
|
BKG_USE_LOC_9800 EQU %00000000
|
||
|
BKG_USE_LOC_9C00 EQU %00001000
|
||
|
TLS_USE_LOC_8800 EQU %00000000
|
||
|
TLS_USE_LOC_8000 EQU %00010000
|
||
|
WND_DISPLAY_ON EQU %00100000
|
||
|
WND_DISPLAY_OFF EQU %00000000
|
||
|
WND_USE_LOC_9800 EQU %00000000
|
||
|
WND_USE_LOC_9C00 EQU %01000000
|
||
|
DISPLAY_ON EQU %10000000
|
||
|
DISPLAY_OFF EQU %00000000
|
||
|
|
||
|
; LCD Status
|
||
|
LCD_STATUS_REGISTER EQU $ff41
|
||
|
LCD_VBLANK_MODE EQU %00000000
|
||
|
LCD_HBLANK_MODE EQU %00000001
|
||
|
LCD_SPRITE_MODE EQU %00000010
|
||
|
LCD_TRANSFER_ACTIVE EQU %00000011
|
||
|
|
||
|
; Timer
|
||
|
TIMER_REGISTER EQU $ff06
|
||
|
TIMER_SETTINGS EQU $ff07
|
||
|
TIMER_4KHZ EQU %00000000
|
||
|
TIMER_16KHZ EQU %00000011
|
||
|
TIMER_65KHZ EQU %00000010
|
||
|
TIMER_262KHZ EQU %00000001
|
||
|
TIMER_START EQU %00000100
|
||
|
TIMER_STOP EQU %00000000
|
||
|
|
||
|
; Input Register
|
||
|
INPUT_REGISTER EQU $ff00
|
||
|
INPUT_A EQU %00000001
|
||
|
INPUT_B EQU %00000010
|
||
|
INPUT_SELECT EQU %00000100
|
||
|
INPUT_START EQU %00001000
|
||
|
INPUT_RIGHT EQU %00010000
|
||
|
INPUT_LEFT EQU %00100000
|
||
|
INPUT_UP EQU %01000000
|
||
|
INPUT_DOWN EQU %10000000
|
||
|
|
||
|
; Video Registers
|
||
|
BKG_POS_X_REGISTER EQU $ff43
|
||
|
BKG_POS_Y_REGISTER EQU $ff42
|
||
|
WND_POS_X_REGISTER EQU $ff4b
|
||
|
WND_POS_Y_REGISTER EQU $ff4a
|
||
|
|
||
|
; DMA Register
|
||
|
DMA_REGISTER EQU $ff46
|
||
|
|
||
|
; Palette Registers
|
||
|
PALETTE_BKG_REGISTER EQU $ff47
|
||
|
PALETTE_OBJ0_REGISTER EQU $ff48
|
||
|
PALETTE_OBJ1_REGISTER EQU $ff49
|
||
|
|
||
|
; Video Locations
|
||
|
TLS_LOC_8000 EQU $8000
|
||
|
TLS_LOC_8800 EQU $8800
|
||
|
BKG_LOC_9800 EQU $9800
|
||
|
BKG_LOC_9C00 EQU $9C00
|
||
|
WND_LOC_9800 EQU $9800
|
||
|
WND_LOC_9C00 EQU $9c00
|
||
|
|
||
|
; Object attributes
|
||
|
OBJ_ATTR_PALETTE0 EQU %00000000
|
||
|
OBJ_ATTR_PALETTE1 EQU %00010000
|
||
|
OBJ_ATTR_MIRROR_X EQU %00100000
|
||
|
OBJ_ATTR_MIRROR_Y EQU %01000000
|
||
|
OBJ_ATTR_PRIORITY EQU %10000000
|
||
|
|
||
|
; Initial Stack Pointer
|
||
|
INITIAL_STACK_POINTER EQU $fff4
|
||
|
|