Unrolled loop for faster SHR mode plotting. Thx John Brooks :)

This commit is contained in:
Bobbi Webber-Manners 2022-12-26 21:22:32 -05:00
parent 986d8aa1fc
commit 633b13175b
2 changed files with 24 additions and 19 deletions

Binary file not shown.

View File

@ -265,25 +265,30 @@ SHRPRCHAR SEC
LDA #$E1 LDA #$E1
STA VDUBANK2 STA VDUBANK2
JSR SHRCHARADDR ; Screen addr in VDUADDR JSR SHRCHARADDR ; Screen addr in VDUADDR
LDX #$00 ; First row of char
:L1 LDY #$00 * 65816 code contributed by John Brooks follows ...
LDA [VDUADDR2] ; Load exploded font data 1st byte
JSR SHRCOLBYTE PHB ; Save data bank
STA [VDUADDR] ; Store on screen LDA VDUADDR2+2 ; Push font Bank onto stack
INY PHA
INC VDUADDR2+0 ; Increment exploded font ptr PLB ; Set data bank to font bank
BNE :S1 CLC
INC VDUADDR2+1 XCE
:S1 LDA [VDUADDR2] ; Load exploded font data 2nd byte REP #$30
JSR SHRCOLBYTE LDY VDUADDR2 ; Font src ptr
STA [VDUADDR],Y ; Store on screen LDX VDUADDR ; SHR dst ptr
INC VDUADDR2+0 ; Increment exploded font ptr SrcFont = $000000
BNE :S2 DstShr = $E10000
INC VDUADDR2+1 LUP 8
:S2 JSR SHRNEXTROW ; Add 160 to VDUADDR LDA !SrcFont,Y
INX ; Next row of font STAL DstShr,X
CPX #$08 ; Last row? SrcFont = SrcFont+2
BNE :L1 DstShr = DstShr+160
--^
PLB
SEC
XCE
MX %11
RTS RTS