support Sensible Speller (#30)

This commit is contained in:
Peter Ferrie 2020-10-15 18:02:57 -07:00 committed by GitHub
parent 6008129f5e
commit 009434aca3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 53 additions and 2 deletions

View File

@ -207,10 +207,13 @@ Tracer13
bcc BeginTheBoot13
jsr IDBoot13
bcc BeginTheBoot13
jsr IDSensible
bcc BeginTheBoot13
; [execution falls through here]
; [and runs anyway]
BeginTheBoot13
ldx #$B3 ;Sensible Software fix
ldy $0300
jmp $0301
@ -255,7 +258,7 @@ StringTable
!word @mainmenu
@header
!text "Anti-M v1.7 by 4am 2020-08-11"
!text "Anti-M v1.8pre by 4am 2020-10-15"
!text "________________________________________",$8D
!text $8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D,$00
@mainmenu
@ -273,3 +276,4 @@ StringTable
!src "src/idprogame.a"
!src "src/idpersonal.a"
!src "src/idalphabeta.a"
!src "src/idsensible.a"

View File

@ -10,6 +10,11 @@ IDBoot
ldy #$5C
sty @patch+1
bcc +
; we found D5 AA 96 T00S00 D5 AA ..
; check for weird Sensible Software 13-sector disk with D5 AA 96 sectors
cmp #$B5
beq ++
lda #$90
sta $867B
@ -29,7 +34,7 @@ IDBoot
bne @patch
; and loop anyway in case it's a hybrid disk and we missed the D5 AA 96
dec @retries
++ dec @retries
bne @patch
; found nothing but D5 AA B5, proceed as 13-sector

42
src/idsensible.a Normal file
View File

@ -0,0 +1,42 @@
; Sensible Software tracer
; written by qkumba
;
; tested on
; - Sensible Speller
;
IDSensible
lda #3
ldx #1
ldy #6
jsr CompareMemory
!byte $29,$00 ;AND #$00
!byte $85,$3A ;STA $3A
!byte $9A ;TXS
!byte $08 ;PHP
bcs @exit
; patch encoded code to regain control after it loads sectors into $400+
lda #(<@pcallback) xor $99
sta $03A3
lda #(>@pcallback) xor $99
sta $03A4
@exit
rts
@pcallback
!word @callback
@callback
; disable ROM checksum-failure branching
lda $6CE
cmp #$4C
bne +
lda #$60
sta $6CE
; and nibble check which fails occasionally
lda #$2C
sta $79B
+ jmp ($0026)