4sports/src/fx/fx.hgr.flick.a

82 lines
2.1 KiB
Plaintext
Raw Permalink Normal View History

2021-02-16 06:01:22 +00:00
;license:MIT
;(c) 2020 by 4am
;
!cpu 6502
2022-08-23 02:04:55 +00:00
!to "build/FX.INDEXED/FLICK",plain
2021-02-16 06:01:22 +00:00
*=$6000
rowcount = $FF ; [byte]
;hgrlo = $201 ; [$C0 bytes] defined in constants.a
startrows_by_column = $2C1 ; [$28 bytes]
;hgrhi = $301 ; [$C0 bytes] defined in constants.a
rowcounts_by_column = $3C1 ; [$28 bytes]
2021-02-16 06:01:22 +00:00
!source "src/fx/macros.a"
jsr iBuildHGRTables
2021-02-16 06:01:22 +00:00
ldy #$27
- lda #$00
sta startrows_by_column, y
lda initial_rowcounts, y
sta rowcounts_by_column, y
dey
bpl -
frameloop
ldy #$27
columnloop
lda rowcounts_by_column, y
beq nextcolumn
bmi nextcolumn
sta rowcount
ldx startrows_by_column, y
cpx #$C0
bcs nextcolumn
rowloop lda hgrlo, x
sta $3c
sta $26
lda hgrhi, x
sta $27
eor #$60
sta $3d
lda ($3c), y
sta ($26), y
inx
dec rowcount
bne rowloop
nextcolumn
dey
bpl columnloop
ldy #$27
- lda rowcounts_by_column, y
bmi +
beq +
tax
clc
adc startrows_by_column, y
sta startrows_by_column, y
lda next_rowcount, x
sta rowcounts_by_column, y
bne ++ ; always branches
+ clc
adc #1
sta rowcounts_by_column, y
++ dey
bpl -
lda #$48
jsr iWaitForKeyWithTimeout
2021-02-16 06:01:22 +00:00
bmi exit
lda rowcounts_by_column+$27
cmp #$80
bne frameloop
exit rts
initial_rowcounts
!byte $01,$01,$00,$00,$FF,$FF,$FE,$FE,$FD,$FD
!byte $FC,$FC,$FB,$FB,$FA,$FA,$F9,$F9,$F8,$F8
!byte $F7,$F7,$F6,$F6,$F5,$F5,$F4,$F4,$F3,$F3
!byte $F2,$F2,$F1,$F1,$F0,$F0,$EF,$EF,$EE,$EE
next_rowcount
!byte $01,$03,$80,$05,$02,$07,$04,$09,$06,$0B,$08,$0D,$0A,$0F,$0C,$11,$0E,$15,$10,$FD,$FD,$12