4cade/src/fx/fx.shr.2pass.lr.a

56 lines
1.1 KiB
Plaintext
Raw Normal View History

2021-11-23 22:32:57 +00:00
;license:MIT
;(c) 2021 by 4am
!cpu 6502
!to "build/FX.INDEXED/SHR.TWOPASS.LR",plain
2021-11-23 22:32:57 +00:00
*=$A000
!source "src/fx/fx.shr.common.a"
shrlo = $301 ; $C8 bytes
shrhi = $38 ; $C8 bytes
ldx #(end-start-1) ; copy loop to zero page
- lda start, x
sta $00, x
dex
bpl -
+BUILD_SHR_LOOKUP_TABLES shrlo, shrhi
2021-12-05 02:23:11 +00:00
;X=0
2021-11-23 22:32:57 +00:00
+COPY_SCB_AND_PALETTES
2021-12-05 02:23:11 +00:00
;WRITEAUXMEM active
2021-11-23 22:32:57 +00:00
jmp loop1
start
!pseudopc 0 {
loop1 ldy #0
loop2 ldx #1
2021-12-07 16:46:02 +00:00
loop3 lda shrlo, x
2021-11-23 22:32:57 +00:00
sta <dst+1
2021-12-07 16:46:02 +00:00
lda shrhi, x
2021-11-23 22:32:57 +00:00
sta <dst+2
lda (<dst+1), y
dst sta $0000, y ; SMC
inx
inx
cpx #$C8
bcc loop3
lda $C000
bmi @exit
iny
cpy #$A0
bne loop2
dec <loop2+1
bpl loop1
2021-12-13 21:04:21 +00:00
@exit
2021-11-23 22:32:57 +00:00
rts
}
end
; if zero page code gets too large, move shrhi to $201
!if end-start > $38 {
!error "code is too large: ends at ", end-start
}