From b4109f1d1f3981f629a7364476663263df48d1a1 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Fri, 23 Sep 2022 20:24:39 -0400 Subject: [PATCH] Ticket #160: IRQ/BRK hdlr restores GS to speed at Applecorn start. --- applecorn.po | Bin 819200 -> 819200 bytes auxmem.init.s | 7 ++++++- auxmem.misc.s | 10 +++++++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/applecorn.po b/applecorn.po index 2dcabf55d028ef3e9f277a340af7567339231c02..4e3b1dbeb63d2b8ec78574e193b257ab62298985 100644 GIT binary patch delta 4217 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 delta 3984 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 diff --git a/auxmem.init.s b/auxmem.init.s index e689bcb..57328ee 100644 --- a/auxmem.init.s +++ b/auxmem.init.s @@ -126,6 +126,10 @@ MOSHIGH SEI ; Disable IRQ while initializing DEX BPL :INITPG2 + LDA $C036 ; GS speed register + AND #$80 ; Speed bit only + STA GSSPEED ; In Alt LC for IRQ/BRK hdlr + JSR ROMINIT ; Build list of sideways ROMs JSR KBDINIT ; Returns A=startup MODE JSR VDUINIT ; Initialise VDU driver @@ -205,8 +209,9 @@ BYTE00 BEQ BYTE00A ; OSBYTE 0,0 - generate error RTS ; %000x1xxx host type, 'A'pple BYTE00A BRK DB $F7 -HELLO ASC 'Applecorn MOS 2022-09-22' +HELLO ASC 'Applecorn MOS 2022-09-23' DB $00 ; Unify MOS messages +GSSPEED DB $00 ; $80 if GS is fast, $00 for slow diff --git a/auxmem.misc.s b/auxmem.misc.s index 127682f..01c3529 100644 --- a/auxmem.misc.s +++ b/auxmem.misc.s @@ -562,9 +562,13 @@ IRQBRKHDLR PHA STA $45 ; $45=A for ProDOS IRQ handlers BPL :S1 ; If aux write wasn't active, skip STA $C005 ; Write to aux memory - LDA #$80 - TSB $C036 ; For GS: Enable 'fast' speed -:S1 TXA + +:S1 LDA GSSPEED ; See if GS was set to 2.8MHz + CMP #$80 + BNE :S2 ; Nope, continue slow + TSB $C036 ; GS: Enable 'fast' speed + +:S2 TXA PHA CLD TSX