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

63 lines
1.2 KiB
Plaintext

;license:MIT
;(c) 2017-2021 by qkumba/4am/John Brooks
;
!cpu 6502
!to "build/DGR.FIZZLE",plain
*=$6000
ldx #(end-start+1) ; copy LFSR code to zero page
- ldy start-2, x
sty $81, x
dex
bne -
jmp loop
start
!pseudopc $83 {
;X=0
;Y=0
loop txa
loop1 eor #$05 ; LFSR form 0x0500 with period 2047
wait inx
bpl wait
tax
loop2 tya
and #$78
cmp #$78
beq next
txa
ora #$04
sta <dst+2
txa
;C=0
adc #$7C
bpl aux
sta $C004
!byte $24
aux sta $C005
setsrc sta <src+2
src lda $FD00, y ; SMC high byte
dst sta $FD00, y ; SMC high byte
next txa
lsr
tax
tya
ror
tay
bcc loop2
bne loop
bit $C000
bmi exit
txa
bne loop1
exit lda $7C00 ; last lousy byte (because LFSR never hits 0)
!if *+1 != $C0 {
!error *
}
sta $0400
sta $C004
rts
}
end