4cade/src/fx/fx.shr.fizzle.a
2022-08-25 21:56:15 -04:00

58 lines
1.2 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/macros.a"
addrs=$7F ; [128 bytes]
lda #$A0 ; create address lookup table
tax
tay
- dey
sty addrs-$21, x
dex
bne -
+OVERCOPY_TO_0 start, end
;$FF clobbered
;X=0
;Y=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+2
src lda $FD00, y ; SMC high byte
sta (src+1), y
txa
lsr
tax
tya
ror
tay
bcc loop2
bne loop
bit $C000
bmi exit
txa
bne loop1
lda (src+1), y ; last lousy byte (because LFSR never hits 0)
sta (src+1), y
exit rts
}
end