add support for patching some RWTS parameters on Pascal disks

This commit is contained in:
4am 2017-06-19 14:04:33 -04:00
parent 81caf5b722
commit 0b2e96cacb
4 changed files with 63 additions and 2 deletions

View File

@ -4,7 +4,7 @@
; $B600..$BFFF contains boot1
; out: C clear if "Protected DOS" was found
; C set if "Protected DOS" was not found
; gProtectedDOS is set to TRUE or FALSE
; gIsProtDOS is set to TRUE or FALSE
;-------------------------------
!zone {
ProtectedDOS

View File

@ -704,6 +704,7 @@ _applyToT00
!source "patchers/methods.a"
!source "patchers/jsr8b3.a"
!source "patchers/laureate.a"
!source "patchers/pascalrwts.a"
_applyToAll
!source "patchers/universale7.a"
!source "patchers/runhello.a" ; (!gIsProDOS && !gIsPascal) only

60
src/patchers/pascalrwts.a Normal file
View File

@ -0,0 +1,60 @@
;-------------------------------
; #PASCALRWTS
; patch RWTS on Pascal disks
; RWTS changes are rare on Pascal disks,
; so this currently only handles a very
; specific subset of RWTS changes.
;
; tested on
; Solar Reading Flight 1 series
; (Jupiter, Saturn, Uranus, Nepture)
;-------------------------------
!zone {
lda gIsPascal
bne .exit
lda #$0D
ldx #$41
ldy #$11
jsr compare ; if T00,S0D,$41 ==
!byte $BD,$8C,$C0
!byte $10,$FB
!byte $C9,WILDCARD
!byte $D0,$AE
!byte $EA
!byte $BD,$8C,$C0
!byte $10,$FB
!byte $C9,WILDCARD
bcs +
ldx #$51
ldy #$01
jsr compare ; and T00,S0D,$51 !=
!byte $AA
bcc +
ldy #$01
jsr modify
!byte $AA
+ lda #$0F
ldx #$6B
ldy #$11
jsr compare ; if T00,S0F,$6B ==
!byte $BD,$8C,$C0
!byte $10,$FB
!byte $C9,WILDCARD
!byte $D0,$0C
!byte $EA
!byte $BD,$8C,$C0
!byte $10,$FB
!byte $C9,WILDCARD
bcs +
ldx #$7B
ldy #$01
jsr compare ; and T00,S0F,$7B !=
!byte $AA
bcc +
ldy #$01
jsr modify
!byte $AA
+
.exit
}

View File

@ -212,7 +212,7 @@ StringTable
; can be set directly before calling PrintByID.
;
.header
!text "Passport by 4am 2017-06-10",00
!text "Passport by 4am 2017-06-19",00
.mainmenu
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
!text " "