mirror of
https://github.com/a2-4am/4cade.git
synced 2024-09-27 12:57:21 +00:00
91 lines
2.1 KiB
Plaintext
91 lines
2.1 KiB
Plaintext
;license:MIT
|
|
;(c) 2017-2020 by qkumba/4am/John Brooks
|
|
;
|
|
!cpu 6502
|
|
!to "build/FX.INDEXED/DHGR.FIZZLE",plain
|
|
*=$6000
|
|
|
|
addrs=$BF ; [$40 bytes]
|
|
|
|
!source "src/fx/macros.a"
|
|
|
|
ldx #$1F ; build address lookup table
|
|
- txa
|
|
eor #$20
|
|
sta addrs, x
|
|
eor #$A0
|
|
sta addrs+$20, x
|
|
dex
|
|
bpl -
|
|
|
|
+OVERCOPY_TO_0 start, end
|
|
;$FF clobbered
|
|
;X=0
|
|
;Y=0
|
|
jmp copyaux
|
|
|
|
start
|
|
!pseudopc 0 {
|
|
;Y=0 on entry to copyaux
|
|
copyaux sta $C003 ; copy $4000/aux to $8000/main
|
|
ldx #$20
|
|
a lda $4000, y
|
|
b sta $8000, y
|
|
iny
|
|
bne a
|
|
inc a+2
|
|
inc b+2
|
|
dex
|
|
bne a
|
|
sta $C002
|
|
sta $C001 ; 80STORE mode
|
|
;X,Y=0 on entry to LFSR
|
|
loop txa
|
|
loop1 eor #$35 ; LFSR form 0x3500 with period 16383
|
|
tax
|
|
loop2 lda addrs, x
|
|
bmi aux
|
|
sta $C054 ; switch $2000 access to main memory
|
|
sta <dst+2
|
|
eor #$60
|
|
sta <src+2
|
|
src lda $FD00, y
|
|
dst sta $FD00, 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 (dst+1), y
|
|
exit sta $C000 ; 80STORE mode off
|
|
rts
|
|
aux sta $C055 ; switch $2000 access to aux memory (read/write!)
|
|
sta <auxsrc+2
|
|
eor #$A0
|
|
sta <auxdst+2
|
|
auxsrc lda $FD00, y
|
|
auxdst sta $FD00, y
|
|
txa
|
|
lsr
|
|
tax
|
|
tya
|
|
ror
|
|
tay
|
|
bcc loop2
|
|
bne loop
|
|
lda $C000
|
|
bmi exit
|
|
txa
|
|
bne loop1
|
|
beq exit
|
|
}
|
|
end
|