From c2b04b0bec3c28fc0d33a0030765a911116b9a9a Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Fri, 6 Mar 2020 10:53:57 -0800 Subject: [PATCH] fix Street Sports on IIc+ --- src/prelaunch/ss.baseball.a | 30 ++++++++++++++++++++++++++++-- src/prelaunch/ss.basketball.a | 30 ++++++++++++++++++++++++++++-- 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/prelaunch/ss.baseball.a b/src/prelaunch/ss.baseball.a index 95d37060e..d092c6199 100755 --- a/src/prelaunch/ss.baseball.a +++ b/src/prelaunch/ss.baseball.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020 by Frank M. +;(c) 2020 by Frank M., qkumba !cpu 6502 !to "build/PRELAUNCH/SS.BASEBALL",plain @@ -14,8 +14,34 @@ inc $3F4 ; reboot + lda #$4C + sta $B7A6 + lda #callback1 + sta $B7A8 + jmp $B700 + +callback1 + ldx #$FF + txs + lda #callback2 + sta $675C + jmp $6000 + +callback2 + ; work around IIc+ firmware bug: + ; if LC is writable but not banked in + ; then SmartPort always banks in bank 2 + ; regardless of which bank was active + + lda #$8B + sta $B528 + sta $B52B +DISABLE_ACCEL - jmp $B700 ; could probably hook further + jmp $B581 !if * > $1C0 { !error "code is too large, ends at ", * diff --git a/src/prelaunch/ss.basketball.a b/src/prelaunch/ss.basketball.a index f77f98236..e197e32d3 100755 --- a/src/prelaunch/ss.basketball.a +++ b/src/prelaunch/ss.basketball.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020 by Frank M. +;(c) 2020 by Frank M., qkumba !cpu 6502 !to "build/PRELAUNCH/SS.BASKETBALL",plain @@ -14,8 +14,34 @@ inc $3F4 ; reboot + lda #$4C + sta $B7A6 + lda #callback1 + sta $B7A8 + jmp $B700 + +callback1 + ldx #$FF + txs + lda #callback2 + sta $675C + jmp $6000 + +callback2 + ; work around IIc+ firmware bug: + ; if LC is writable but not banked in + ; then SmartPort always banks in bank 2 + ; regardless of which bank was active + + lda #$8B + sta $B528 + sta $B52B +DISABLE_ACCEL - jmp $B700 ; could probably hook further + jmp $B581 !if * > $1C0 { !error "code is too large, ends at ", *