From 986d8aa1fc3c85d657aacc6523e430f5a3fa87fc Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Mon, 26 Dec 2022 20:41:10 -0500 Subject: [PATCH] Faster SHR scrolling (thanks Kent Dickey :) ) --- applecorn.po | Bin 819200 -> 819200 bytes auxmem.init.s | 2 +- auxmem.shr.s | 108 +++++++++++++++++++++++++++++++------------------- 3 files changed, 69 insertions(+), 41 deletions(-) diff --git a/applecorn.po b/applecorn.po index 4c076828b51961f79bcd8d6a4f9a1ebff8e30622..cea55c0677e0650cd4115b6dd4ba449e61da3530 100644 GIT binary patch delta 11685 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 M?H^GYc;U1E2QEkTE&u=k delta 11711 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 BVDtb0 diff --git a/auxmem.init.s b/auxmem.init.s index 33fdf75..8c8c66a 100644 --- a/auxmem.init.s +++ b/auxmem.init.s @@ -218,6 +218,6 @@ BYTE00 BEQ BYTE00A ; OSBYTE 0,0 - generate error RTS ; %000x1xxx host type, 'A'pple BYTE00A BRK DB $F7 -HELLO ASC 'Applecorn MOS 2022-12-26-HOHOHO' +HELLO ASC 'Applecorn MOS 2022-12-26' DB $00 ; Unify MOS messages diff --git a/auxmem.shr.s b/auxmem.shr.s index 573b6bf..58f65b8 100644 --- a/auxmem.shr.s +++ b/auxmem.shr.s @@ -330,47 +330,75 @@ SHRNEXTROW LDA VDUADDR+0 ; Add 160 to VDUADDR * Forwards scroll one line * Copy text line A+1 to line A +* Note: Code for this courtesy Kent Dickey * TODO: This is only for 640 mode at present -SHRSCR1LINE TAY - LDA SHRTAB,Y ; MSB of address of line A - STA VDUADDR+1 - STZ VDUADDR+0 ; Addr of start of line - INY - LDA SHRTAB,Y ; MSB of address of line A+1 - STA VDUADDR2+1 - STZ VDUADDR2+0 ; Addr of start of line - LDA #$E1 ; Bank $E1 - STA VDUBANK - STA VDUBANK2 - LDA #$08 ; Eight rows of pixels - STA :CTR - INC TXTWINRGT -:L0 LDA TXTWINLFT - TAX - ASL ; 2 bytes / char - TAY -:L1 CPX TXTWINRGT - BCS :S1 - LDA [VDUADDR2],Y - STA [VDUADDR],Y - INY - LDA [VDUADDR2],Y - STA [VDUADDR],Y - INY - INX - BRA :L1 -:S1 JSR SHRNEXTROW ; Add 160 to VDUADDR - LDA VDUADDR2+0 ; Add 160 to VDUADDR2 - CLC - ADC #160 - STA VDUADDR2+0 - LDA VDUADDR2+1 - ADC #$00 - STA VDUADDR2+1 - DEC :CTR - BNE :L0 - DEC TXTWINRGT - RTS +SHRSCR1LINE +; acc=line to scroll (0-24) +; nead to calc acc * $500. Could use a table, but this is about as fast + phy + phx + sta VDUADDR+1 + stz VDUADDR + php + sei + clc + xce + phb + rep #$31 ; M,X 16 bit, carry clear + MX %00 ; Tell Merlin + lda VDUADDR + asl + asl + adc VDUADDR + sta VDUADDR ;; VDUADDR = line * $500 + lda TXTWINLFT + asl + and #$00ff + adc VDUADDR + sta VDUADDR ; VDUADDR = Minimum position + sep #$21 ; M 8 bit, X 16 bit, carry set + MX %10 ; Tell Merlin + lda TXTWINRGT + sbc TXTWINLFT + rep #$31 ; M,X 16 bit, carry clear + MX %00 ; Tell Merlin + asl + and #$00ff + adc VDUADDR + tax + pea #$e1e1 + plb + plb +:loop1 + lda $2500,x ;; 2 bytes, row 0 + sta $2000,x + lda $25a0,x ; row 1 + sta $20a0,x + lda $2640,x ; row 2 + sta $2140,x + lda $26e0,x ; row 3 + sta $21e0,x + lda $2780,x ; row 4 + sta $2280,x + lda $2820,x ; row 5 + sta $2320,x + lda $28c0,x ; row 6 + sta $23c0,x + lda $2960,x ; row 7 + sta $2460,x + dex + dex + bmi :done + cpx VDUADDR + bcs :loop1 +:done + plb + sec + xce + plp + plx + ply + rts * Reverse scroll one line