79 lines
1.2 KiB
NASM
79 lines
1.2 KiB
NASM
|
|
.MACRO Spin_Loop ARGS XCOUNT
|
|
|
|
ldx #XCOUNT
|
|
lvl3\@:
|
|
lda #$ff
|
|
lvl2\@:
|
|
xba
|
|
lda #$ff
|
|
lvl1\@:
|
|
dea
|
|
cmp #$00
|
|
bne lvl1\@
|
|
xba
|
|
dea
|
|
cmp #$00
|
|
bne lvl2\@
|
|
dex
|
|
txa
|
|
cmp #$00
|
|
bne lvl3\@
|
|
.ENDM
|
|
|
|
.MACRO Set_A_8_XY_16
|
|
; 16-bit xy, 8-bit a
|
|
rep #%00010000
|
|
sep #%00100000
|
|
.ENDM
|
|
|
|
.MACRO Reset_Palette_Offset
|
|
stz $2121
|
|
.ENDM
|
|
|
|
.MACRO Load_Palette_Color ARGS BYTE1 BYTE2
|
|
|
|
lda #BYTE1
|
|
sta $2122
|
|
lda #BYTE2
|
|
sta $2122
|
|
|
|
.ENDM
|
|
|
|
.MACRO Set_Screen_Brightness
|
|
lda #\1
|
|
sta $2100 ; $2100 is the screen brightness register
|
|
.ENDM
|
|
|
|
.MACRO Enable_NMI_And_Joypad
|
|
lda #%10000001
|
|
sta $4200
|
|
|
|
.ENDM
|
|
|
|
|
|
|
|
; loads, in a loop, an alternating grid of tiles
|
|
.MACRO Tile_Load_Loop
|
|
|
|
ldx #$0400 ; load $0400 (VRAM address of tile data)
|
|
TileLoadLoop:
|
|
|
|
stx $2116 ; store VRAM address of tile data to VRAM address word-sized register
|
|
|
|
lda #$01 ; smile tile
|
|
sta $2118 ;store tile map entry to the address specified in $2116 - this increments or not based on 2115
|
|
|
|
inx
|
|
stx $2116
|
|
|
|
lda #$00 ; blank tile
|
|
sta $2118
|
|
|
|
inx
|
|
|
|
cpx #$0780 ; $400 - $780 seems to be limit of snes screen tile memory
|
|
bne TileLoadLoop
|
|
|
|
.ENDM
|