mirror of
https://github.com/daniel5151/ANESE.git
synced 2025-04-02 10:32:00 -04:00
224 lines
5 KiB
PHP
224 lines
5 KiB
PHP
; -*- asm -*-
|
|
|
|
; This list of constants (for use with XA65) is released to the public
|
|
; domain (as it should be!), or, failing that, under the terms of the WTFPL
|
|
|
|
#define COM(t) (255^t)
|
|
|
|
#define NameTable(x,y) ((x&31)|((y&31)<<5)|$2000|((x&32)<<5)|((y&32)<<6))
|
|
#define NamePalette(x,y) (((x&28)>>2)|((y&28)<<1)|$23C0|((x&32)<<5)|((y&32)<<6))
|
|
|
|
PPU_CTRL = $2000
|
|
#define PPU_CTRL_NT0 0
|
|
#define PPU_CTRL_NT1 1
|
|
#define PPU_CTRL_NT2 2
|
|
#define PPU_CTRL_NT3 3
|
|
#define PPU_CTRL_INC1 0
|
|
#define PPU_CTRL_INC32 4
|
|
#define PPU_CTRL_SPR_LEFT 0
|
|
#define PPU_CTRL_SPR_RIGHT 8
|
|
#define PPU_CTRL_BKGD_LEFT 0
|
|
#define PPU_CTRL_BKGD_RIGHT 16
|
|
#define PPU_CTRL_SPR_8X8 0
|
|
#define PPU_CTRL_SPR_8X16 32
|
|
#define PPU_CTRL_NMI_DIS 0
|
|
#define PPU_CTRL_NMI_ENA 128
|
|
|
|
PPU_MASK = $2001
|
|
#define PPU_MASK_COLOR 0
|
|
#define PPU_MASK_GREY 1
|
|
#define PPU_MASK_LEFT_BKGD_CLIP 0
|
|
#define PPU_MASK_LEFT_BKGD_SHOW 2
|
|
#define PPU_MASK_LEFT_SPR_CLIP 0
|
|
#define PPU_MASK_LEFT_SPR_SHOW 4
|
|
#define PPU_MASK_BKGD_DIS 0
|
|
#define PPU_MASK_BKGD_ENA 8
|
|
#define PPU_MASK_SPR_DIS 0
|
|
#define PPU_MASK_SPR_ENA 16
|
|
#define PPU_MASK_EMPH_RED 32
|
|
#define PPU_MASK_EMPH_GRN 64
|
|
#define PPU_MASK_EMPH_BLU 128
|
|
|
|
PPU_STATUS = $2002
|
|
#define PPU_STATUS_VBLANK 128
|
|
#define PPU_STATUS_SPR0_HIT 64
|
|
#define PPU_STATUS_SPR_OVER 32
|
|
|
|
PPU_OAM_ADDR = $2003
|
|
PPU_OAM_DATA = $2004
|
|
|
|
#define OAM_Y 0
|
|
#define OAM_T 1
|
|
#define OAM_A 2
|
|
#define OAM_A_P0 0
|
|
#define OAM_A_P1 1
|
|
#define OAM_A_P2 2
|
|
#define OAM_A_P3 3
|
|
#define OAM_A_FG 0
|
|
#define OAM_A_BG 32
|
|
#define OAM_A_FLIP_H 64
|
|
#define OAM_A_FLIP_V 128
|
|
#define OAM_X 3
|
|
|
|
PPU_SCROLL = $2005
|
|
PPU_ADDR = $2006
|
|
PPU_DATA = $2007
|
|
|
|
APU_ATTRIB_SQ1 = $4000
|
|
APU_ATTRIB_SQ2 = $4004
|
|
APU_ATTRIB_NSE = $400C
|
|
|
|
#define APU_ATTRIB_DUTY_12 0
|
|
#define APU_ATTRIB_DUTY_25 64
|
|
#define APU_ATTRIB_DUTY_50 128
|
|
#define APU_ATTRIB_DUTY_75 192
|
|
#define APU_ATTRIB_ENV_LOOP 32
|
|
#define APU_ATTRIB_ENV_DIS 16
|
|
#define APU_ATTRIB_ENV_ENA 0
|
|
#define APU_ATTRIB_VOL(n) (n&15)
|
|
#define APU_ATTRIB_ENV_PERIOD(n) (n&15)
|
|
|
|
APU_SWEEP_SQ1 = $4001
|
|
APU_SWEEP_SQ2 = $4005
|
|
|
|
#define APU_SWEEP_FULLY_DISABLED 8
|
|
|
|
APU_PERIOD_LO_SQ1 = $4002
|
|
APU_PERIOD_LO_SQ2 = $4006
|
|
APU_PERIOD_LO_TRI = $400A
|
|
APU_PERIOD_HI_SQ1 = $4003
|
|
APU_PERIOD_HI_SQ2 = $4007
|
|
APU_PERIOD_HI_TRI = $400B
|
|
|
|
#define APU_PERIOD_MAXIMUM_DURATION 8
|
|
|
|
APU_PERIOD_NSE = $400E
|
|
; ranges from 0-15, 128-143
|
|
#define APU_NSE_TONAL 128
|
|
|
|
APU_PERIOD_DMC = $4010
|
|
; ranges from 0-15
|
|
#define APU_DMC_IRQ_DIS 0
|
|
#define APU_DMC_IRQ_ENA 128
|
|
#define APU_DMC_LOOP 64
|
|
|
|
APU_DURATION_TRI = $4008
|
|
APU_DURATION_NSE = $400F
|
|
APU_DURATION_DMC = $4013
|
|
|
|
APU_DMC_OFFSET = $4012
|
|
APU_DAC = $4011
|
|
|
|
PPU_OAM_DMA = $4014
|
|
|
|
APU_STATUS = $4015
|
|
; read-only
|
|
#define APU_STATUS_DMC_RUNNING 16
|
|
; read & write
|
|
#define APU_STATUS_SQ1_ENA 1
|
|
#define APU_STATUS_SQ2_ENA 2
|
|
#define APU_STATUS_TRI_ENA 4
|
|
#define APU_STATUS_NSE_ENA 8
|
|
; write-only
|
|
#define APU_STATUS_DMC_MAKE_RUN 16
|
|
#define APU_STATUS_60HZ_IRQ 64
|
|
#define APU_STATUS_DMC_IRQ 128
|
|
|
|
APU_MODE = $4017
|
|
#define APU_MODE_60HZ 0
|
|
#define APU_MODE_48HZ 128
|
|
#define APU_MODE_IRQ_ENA 0
|
|
#define APU_MODE_IRQ_DIS 64
|
|
|
|
JOY_1 = $4016
|
|
JOY_2 = $4017
|
|
#define JOY_1_LATCH 1
|
|
#define JOY_NO_BUTTON 1
|
|
#define JOY_1_FAMICOM_MICROPHONE 4
|
|
#define JOY_ZAPPER_TRIGGER 16
|
|
#define JOY_ZAPPER_NO_LIGHT 8
|
|
|
|
#define PAL_GRAY33 $00
|
|
#define PAL_MIDNIGHT_BLUEGREEN $01
|
|
#define PAL_BLUE4 $02
|
|
#define PAL_INDIGO $03
|
|
#define PAL_ROYAL_PURPLE $04
|
|
#define PAL_BURGUNDY $05
|
|
#define PAL_DRIED_BLOOD $06
|
|
#define PAL_CHOCOLATE $07
|
|
#define PAL_DARK_OLIVE $08
|
|
#define PAL_HUNTER_GREEN $09
|
|
#define PAL_RACING_GREEN $0A
|
|
#define PAL_DARK_GREEN $0B
|
|
#define PAL_DARK_TEAL $0C
|
|
#define PAL_BAD $0D
|
|
|
|
#define PAL_GRAY59 $10
|
|
#define PAL_DODGER_BLUE3 $11
|
|
#define PAL_LIGHT_ROYAL_BLUE $12
|
|
#define PAL_BLUE_VIOLET $13
|
|
#define PAL_BARNEY_PURPLE $14
|
|
#define PAL_DARK_FUCHSIA $15
|
|
#define PAL_BROWNISH_RED $16
|
|
#define PAL_CHESTNUT $17
|
|
#define PAL_GREEN_BROWN $18
|
|
#define PAL_DARK_GRASS_GREEN $19
|
|
#define PAL_GREEN4 $1A
|
|
#define PAL_JUNGLE_GREEN $1B
|
|
#define PAL_DEEP_TURQUOISE $1C
|
|
#define PAL_BLACK $1D
|
|
|
|
#define PAL_WHITE_DUPLICATE $20
|
|
#define PAL_DARK_SKY_BLUE $21
|
|
#define PAL_LAVENDER_BLUE $22
|
|
#define PAL_MEDIUM_ORCHID $23
|
|
#define PAL_HELIOTROPE $24
|
|
#define PAL_HOT_PINK $25
|
|
#define PAL_INDIAN_RED2 $26
|
|
#define PAL_BROWNISH_ORANGE $27
|
|
#define PAL_PUKE $28
|
|
#define PAL_CHARTRUESE3 $29
|
|
#define PAL_GREEN_APPLE $2A
|
|
#define PAL_SEA_GREEN3 $2B
|
|
#define PAL_STEEL_BLUE2 $2C
|
|
#define PAL_GRAY23 $2D
|
|
|
|
#define PAL_WHITE $30
|
|
#define PAL_LIGHT_SKY_BLUE2 $31
|
|
#define PAL_LIGHT_PERIWINKLE $32
|
|
#define PAL_LIGHT_VIOLET $33
|
|
#define PAL_PLUM2 $34
|
|
#define PAL_POWDER_PINK $35
|
|
#define PAL_ROSY_BROWN2 $36
|
|
#define PAL_BURLYWOOD2 $37
|
|
#define PAL_GREENISH_BEIGE $38
|
|
#define PAL_PALE_OLIVE_GREEN $39
|
|
#define PAL_PASTEL_GREEN $3A
|
|
#define PAL_HOSPITAL_GREEN $3B
|
|
#define PAL_LIGHT_BLUE $3C
|
|
#define PAL_GREY62 $3D
|
|
|
|
|
|
#define JOY_A 1
|
|
#define JOY_B 2
|
|
#define JOY_SL 4
|
|
#define JOY_ST 8
|
|
#define JOY_UP 16
|
|
#define JOY_DN 32
|
|
#define JOY_LT 64
|
|
#define JOY_RT 128
|
|
|
|
;;; more contentious- preferred assembly mnemonics
|
|
;;; some 'conventional' synonyms
|
|
#define blt bcc
|
|
#define bge bcs
|
|
|
|
;;; some others I'd prefer to use
|
|
#define bnz bne
|
|
#define bz beq
|
|
#define bc bcs
|
|
#define bv bvs
|
|
#define b7s bmi
|
|
#define b7c bpl
|
|
#define xor eor
|
|
#define call jsr
|