support for Earthware reverse RWTS swapper [fixes Black Belt, Zoo Master, Star Search]

This commit is contained in:
4am 2021-04-28 17:37:56 -04:00
parent d86614f81b
commit fb2df8a26c
7 changed files with 90 additions and 3 deletions

View File

@ -379,6 +379,14 @@ IN THE SOFTWARE.
## History
Development (unreleased)
- Target can be a hard disk, which will
save an autonumbered .DSK file in
PASSPORT subdirectory (thanks qkumba)
- If the log scrolls off the screen,
you can scroll back with arrows
(thanks qkumba)
- NEW: patchers/earthware.a (Black
Belt, Zoo Master)
- NEW: patchers/tsr.a (Dawn Patrol,
Dungeon, Theseus and the Minotaur)
- NEW: patchers/datasoft2.a (Canyon
@ -390,6 +398,12 @@ Development (unreleased)
DataQuest Composer)
- NEW: patchers/rwtsswapmecc2.a (Word
Wizards v1.0)
- NEW: patchers/b4bbbasic.a (SocMate
Analogies Games)
- NEW: patchers/jsrb6cc.a (Kidwriter)
- NEW: patchers/mastery.a (Mastery
Arithmetic Games)
- NEW: patchers/leisure.a (Clue, RISK)
- IMPROVED: patches/mecc.a to erase
site license information from final
generation of MECC disks (by qkumba)
@ -398,10 +412,16 @@ Development (unreleased)
- IMPROVED: patchers/prodosmecc.a
(fixes Miner's Cave)
- IMPROVED: patchers/rwtslog.a (fixes
La Guillotine)
La Guillotine, GATO v1.3)
- IMPROVED: patchers/ssi.a (fixes
Sixgun Shootout)
- IMPROVED: id/d5d5f7.a (fixes Trivia
Fever)
- IMPROVED: patchers/bb03.a (fixes
The Desecration, Depreciation Log)
- "BB00 protection" renamed to its
marketing name "Lock-It-Up"
- update Passport disk to ProDOS 2.4.2
- Update Passport disk to ProDOS 2.4.2
- Matching updates to the
[Passport test suite](https://github.com/a2-4am/passport-test-suite)

View File

@ -324,6 +324,31 @@ _Inspect1a
lda #>gTrack ; Passport's gTrack instead
sta $B77A
;
; Check for Earthware reverse RWTS swapper
; (need to pre-swap RWTS then swap it back at T02,S04)
;
+ lda jCallRWTS+2
sec
sbc #$07
ldx #$89
ldy #$0E
jsr CompareMemory
!byte $BD,$8C,$C0
!byte $10,$FB
!byte $C9,$AD
!byte $D0,$13
!byte WILDCARD,WILDCARD
!byte $9D,$8D,$C0
bcs +
lda #$BD
sta $B8F6
lda #$8C
sta $B8F7
lda #$C0
sta $B8F8
lda #kSectorCustomEarthware
sta T02S04
;
; good to go
;
+ jmp ADStyle ; use this RWTS to read the disk

View File

@ -116,6 +116,7 @@ AnalyzeT00
!source "../patchers/jmpb500.a"
!source "../patchers/mastery.a"
!source "../patchers/jsrb6cc.a"
!source "../patchers/earthware.a"
;add only above this line

30
src/patchers/earthware.a Normal file
View File

@ -0,0 +1,30 @@
;-------------------------------
; #EARTHWARE
; reverse RWTS swapper requires
; timing bits for DOS sectors but
; not others
;
; tested on
; - Black Belt (Earthware Computer Services)
; - Zoo Master (Earthware Computer Services)
; - Star Search (Earthware Computer Services)
;-------------------------------
EARTHWARE
lda gIsBoot0
bne @exit
lda #$02
ldx #$F6
ldy #$03
jsr compare
!byte $4C,$89,$B6
bcs @exit
sta gDisplayBytes
pha
lda #s_bytrack
jsr PrintByID
pla
ldy #$03
jsr modify
!byte $BD,$8C,$C0
@exit

View File

@ -101,6 +101,8 @@ PreReadSector
beq IgnoreAddressChecksum
cmp #kSectorCustomDOS32B4BB
beq @b4bb
cmp #kSectorCustomEarthware
beq @earthware
rts
@reset
jsr CopyUniversal
@ -119,6 +121,14 @@ PreReadSector
ldx #$ED
@b stx $FFB2
rts
@earthware
ldx #$4C
stx $B8F6
ldx #$89
stx $B8F7
ldx #$B6
stx $B8F8
rts
IgnoreAddressChecksum
; out: A,Y preserved

View File

@ -34,6 +34,7 @@ kSectorCustomLast = $D0
kSectorResetAdaptiveRWTS = $C0 ; will accept any epilogue on next sector, then remember it
kSectorIgnoreAddressChecksum = $C1 ; will ignore address field checksum
kSectorCustomDOS32B4BB = $C2 ; DOS 3.2 / JMP B4BB RWTS swapper
kSectorCustomEarthware = $C3 ; Earthware reverse RWTS swapper
;-------------------------------
InitSectorMapWithIgnore
lda #kSectorOptional

View File

@ -344,7 +344,7 @@ StringTableHigh
.passport
!text "Passport ",$00
.header
!text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2021-04-21",$00
!text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2021-04-28",$00
.bar9
!text "_________",$00
.bar18