add support for MECC data diskette RWTS swapper

fixes Word Wizards v1.0
This commit is contained in:
4am 2021-02-23 00:42:48 -05:00
parent cbc5812a52
commit 9fd7e03572
6 changed files with 50 additions and 2 deletions

View File

@ -64,6 +64,10 @@
; set in IDBootloader() after reading T00,S00
FIRSTFILTER
;gPossibleMECCSwapper
!byte FALSE ; 0=true, 1=false
; reset before each operation
; set in TraceDOS33c() after tracing DOS 3.3-shaped RWTS
;gIsTSR
!byte FALSE ; 0=true, 1=false
; reset before each operation

View File

@ -103,9 +103,10 @@ gIsHolle = gIsMUSERWTS-$01 ; byte
gIsPhoenix = gIsHolle-$01 ; byte
gIsDiversi = gIsPhoenix-$01 ; byte
gIsTSR = gIsDiversi-$01 ; byte
gPossibleMECCSwapper = gIsTSR-$01 ; byte
;LASTFILTER ; add new gIs* above this line
;gIsInfocom18 is a special case whose ID is not in the regular inspection path
gIsInfocom18 = gIsTSR-$01 ; byte
gIsInfocom18 = gPossibleMECCSwapper-$01 ; byte
;gIs13Sector is a special case whose ID is not in the regular inspection path
gIs13Sector = gIsInfocom18-$01 ; byte
;gMECCFastloadType is a special case integer whose default value cannot be #FALSE
@ -181,6 +182,7 @@ ConstructStandardDelivery = jConstructStandardDelivery
!warn "gIsPhoenix=",gIsPhoenix
!warn "gIsDiversi=",gIsDiversi
!warn "gIsTSR=",gIsTSR
!warn "gPossibleMECCSwpper",gPossibleMECCSwapper
!warn "gIsRDOS13=",gIsRDOS13
!warn "gIsInfocom18=",gIsInfocom18
!warn "gIs13Sector=",gIs13Sector

View File

@ -216,6 +216,18 @@ _Inspect1a
lda #TRUE
sta gIsPhoenix
;
; Check for MECC DOS loaded in lower memory
; (sets flag for a specific patcher)
;
+ lda $08FE
cmp #$36
bne +
lda $371A
cmp #$0D
bne +
lda #TRUE
sta gPossibleMECCSwapper
;
; Turn off drive recalibration
;
+ lda jCallRWTS+2; check for code at $BDD2

View File

@ -793,6 +793,7 @@ _applyToAll
!source "patchers/memory.config.a" ; gIsProDOS only
!source "patchers/origin.a" ; gIsProDOS only
!source "patchers/rwtsswapmecc.a" ; gMECCFastloadType only
!source "patchers/rwtsswapmecc2.a" ; gPossibleMECCSwapper only
!source "patchers/rwtsswappenguin.a" ; T01 only
!source "patchers/protecteddos.a" ; gIsProtDOS only
!source "patchers/fbff.a"

View File

@ -0,0 +1,29 @@
;-------------------------------
; #RWTSSWAPMECC2
; post-boot RWTS swapper in MECC
; DOS disks
;-------------------------------
!zone {
bit gMode ; nothing to do here in verify-only mode
bpl .exit
lda gPossibleMECCSwapper
beq .exit
ldy #$08
jsr SearchTrack
!byte $A9,$AA
!byte $2C
!byte $A9,$D5
!byte $8D,$7A,$BC
bcs .exit ; passport-test-suite/Word Wizards v1.0.woz [C=0] matches
sta gDisplayBytes
inx
inx
inx
inx
inx
ldy #$01
jsr modify
!byte $60
.exit
}

View File

@ -284,7 +284,7 @@ StringTableHigh
; can be set directly before calling PrintByID.
;
.header
!text "Passport by 4am 2021-02-10",$00
!text "Passport by 4am 2021-02-23",$00
.mainmenu
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D
!text " "