dos33fsprogs/graphics/hgr/wires/staggered.s

59 lines
1001 B
ArmAsm
Raw Normal View History

2022-02-03 06:28:16 +00:00
; shimmery blue pattern
2022-02-03 06:28:16 +00:00
INDEXL = $F6
INDEXH = $F7
2022-02-03 06:28:16 +00:00
HGR2 = $F3D8 ; set hires page2 and clear $4000-$5fff
WAIT = $FCA8 ; delay 1/2(26+27A+5A^2) us
2022-02-03 06:28:16 +00:00
staggered:
jsr HGR2 ; after, A=0, Y=0
2022-02-03 06:28:16 +00:00
tax ; init X to 0
stx INDEXL ; set INDEXL to 0
; pulse loop horizontal
outer_loop:
2022-02-03 06:28:16 +00:00
lda #$40 ; reset INDEXH to begin page2
sta INDEXH
inner_loop:
2022-02-03 06:28:16 +00:00
lda even_lookup,X ; get even color
sta (INDEXL),Y ; store it to memory
iny
2022-02-03 06:28:16 +00:00
lda odd_lookup,X ; get odd color
sta (INDEXL),Y ; store it to memory
iny
2022-02-03 06:28:16 +00:00
bne inner_loop ; repeat for 256
2022-02-03 06:28:16 +00:00
inc INDEXH ; point to next page
2022-02-03 06:28:16 +00:00
inx ; point to next lookup
2022-02-03 06:28:16 +00:00
txa ; wrap to 0..7
and #$7
tax
2022-02-03 06:28:16 +00:00
lda #$60 ; see if done
cmp INDEXH
bne inner_loop
2022-02-03 06:28:16 +00:00
; lda #100 ; A is $60 here
jsr WAIT ; pause a bit
2022-02-03 06:28:16 +00:00
; A is 0 here
2022-02-03 06:28:16 +00:00
inx ; offset next FRAME
2022-02-03 06:28:16 +00:00
jmp outer_loop
even_lookup:
.byte $D7,$DD,$F5,$D5, $D5,$D5,$D5,$D5
odd_lookup:
.byte $AA,$AA,$AA,$AB, $AB,$AE,$BA,$EA