dos33fsprogs/demos/lovebyte2022/orb_256/staggered.s

55 lines
970 B
ArmAsm
Raw Normal View History

2022-02-02 19:02:02 +00:00
; shimmery blue pattern
; X=48 here, can't count on others
staggered:
2022-02-02 19:02:02 +00:00
stx FRAME ; set FRAME to 48
2022-02-02 19:02:02 +00:00
ldx #$00 ; init X to 0
2022-02-02 20:12:54 +00:00
; we can count on INDEXL (COUNT) being 0 from the orb code
; stx INDEXL ; set INDEXL to 0
2022-02-02 19:02:02 +00:00
; pulse loop horizontal
outer_loop:
2022-02-02 20:12:54 +00:00
lda #$40 ; reset INDEXH to begin page2
sta INDEXH
2022-02-02 19:02:02 +00:00
inner_loop:
lda even_lookup,X ; get even color
2022-02-02 20:12:54 +00:00
sta (INDEXL),Y ; store it to memory
iny
2022-02-02 19:02:02 +00:00
lda odd_lookup,X ; get odd color
2022-02-02 20:12:54 +00:00
sta (INDEXL),Y ; store it to memory
iny
2022-02-02 19:02:02 +00:00
bne inner_loop ; repeat for 256
2022-02-02 20:12:54 +00:00
inc INDEXH ; point to next page
2022-02-02 20:12:54 +00:00
inx ; point to next lookup
txa ; wrap to 0..7
and #$7
tax
2022-02-02 19:02:02 +00:00
lda #$60 ; see if done
2022-02-02 20:12:54 +00:00
cmp INDEXH
bne inner_loop
2022-02-02 19:02:02 +00:00
; lda #100 ; A is $60 here
jsr WAIT ; pause a bit
; A is 0 here
2022-02-02 19:02:02 +00:00
inx ; offset next FRAME
2022-02-02 19:02:02 +00:00
dec FRAME ; exit after so many frames
bne outer_loop
;even_lookup:
;.byte $D7,$DD,$F5,$D5, $D5,$D5,$D5,$D5
;odd_lookup:
;.byte $AA,$AA,$AA,$AB, $AB,$AE,$BA,$EA