4cade/src/fx/fx.shr.fizzle.a

61 lines
1.3 KiB
Plaintext

;license:MIT
;(c) 2019-2020 by qkumba/4am/John Brooks
!cpu 6502
!to "build/FX.INDEXED/SHR.FIZZLE",plain
*=$A000
!source "src/fx/fx.shr.common.a"
addrs=$80 ; [128 bytes]
ldx #(end-start) ; copy LFSR code to zero page
- lda start-1, x
sta $FF, x
dex
bne -
lda #$A0 ; create address lookup table
tax
tay
- dey
sty addrs-$21, x
dex
bne -
;X=0
ldy #0
+COPY_SCB_AND_PALETTES
;WRITEAUXMEM active
jmp loop
start
!pseudopc 0 {
;X=0
;Y=0
loop txa
loop1 eor #$60 ; LFSR form 0x6000 with period 32767
tax
loop2 lda addrs, x
sta <src+1
src=*+1
lda $FD00, y ; SMC high byte
sta (<src), y
txa
lsr
tax
tya
ror
tay
bcc loop2
bne loop
bit $C000
bmi exit
txa
bne loop1
exit lda $2000 ; last lousy byte (because LFSR never hits 0)
sta $2000
rts
}
end