mirror of
https://github.com/a2-4am/4cade.git
synced 2024-12-01 04:50:30 +00:00
96 lines
1.8 KiB
Plaintext
96 lines
1.8 KiB
Plaintext
|
;license:MIT
|
||
|
;(c) 2019 by qkumba
|
||
|
|
||
|
!cpu 6502
|
||
|
!to "build/FX/SHR.FIZZLE",plain
|
||
|
*=$a000
|
||
|
|
||
|
;init RNG
|
||
|
|
||
|
ldy #1
|
||
|
sty @rnd1+1
|
||
|
dey
|
||
|
sty @rnd2+1
|
||
|
|
||
|
;copy SCB and palette
|
||
|
|
||
|
lda #$9d
|
||
|
sta $3d
|
||
|
sty $3c
|
||
|
ldx #$23 ; copy SCB+palette+this code to auxmem
|
||
|
sta $c005
|
||
|
@copystuff
|
||
|
lda ($3c),y
|
||
|
sta ($3c),y
|
||
|
iny
|
||
|
bne @copystuff
|
||
|
inc $3d
|
||
|
dex
|
||
|
bne @copystuff
|
||
|
|
||
|
;force write offset 0 otherwise it will be missed
|
||
|
|
||
|
lda $2000
|
||
|
sta $2000
|
||
|
sta $c004
|
||
|
|
||
|
;iterate
|
||
|
|
||
|
@loop
|
||
|
ldy @rnd1+1
|
||
|
ldx @rnd2+1
|
||
|
lsr @rnd2+1
|
||
|
ror @rnd1+1
|
||
|
bcc +
|
||
|
|
||
|
;feedback polynomial forms #$4001 for period of 32767
|
||
|
|
||
|
lda @rnd1+1
|
||
|
eor #1
|
||
|
sta @rnd1+1
|
||
|
lda @rnd2+1
|
||
|
eor #$40
|
||
|
sta @rnd2+1
|
||
|
|
||
|
;don't rewrite SCB or palette
|
||
|
;it will make the fizzle take longer than obviously needed
|
||
|
|
||
|
+ cpx #$7d
|
||
|
bcs +
|
||
|
sty $26
|
||
|
sty $3c
|
||
|
txa
|
||
|
|
||
|
;select address
|
||
|
|
||
|
clc
|
||
|
adc #$20
|
||
|
sta $27
|
||
|
sta $3d
|
||
|
|
||
|
;copy pixel from other page to this page
|
||
|
|
||
|
ldy #0
|
||
|
lda ($3c),y
|
||
|
sta $c005
|
||
|
sta ($26),y
|
||
|
sta $c004
|
||
|
|
||
|
;wait while checking for keypress
|
||
|
|
||
|
+ ldx #2
|
||
|
@wait lda $c000
|
||
|
bmi @exit
|
||
|
dex
|
||
|
bne @wait
|
||
|
|
||
|
;and exit condition
|
||
|
|
||
|
@rnd2 lda #0
|
||
|
bne @loop
|
||
|
@rnd1 lda #0
|
||
|
cmp #1
|
||
|
bne @loop
|
||
|
|
||
|
@exit rts
|