add support for CMP/BNE0 David-DOS RWTS mod that accepts any value for the first address epilogue nibble

This commit is contained in:
4am 2017-07-02 11:13:10 -04:00
parent ad0d6bdff3
commit 9bbaddf1be
4 changed files with 46 additions and 9 deletions

View File

@ -19,6 +19,7 @@ IDBootloader
sta gIsProDOS
sta gIsPascal
sta gIsProtDOS
sta gIsDavidDOS
sta gIsEA
sta gIsEEEF
sta gIsMECCFastloader
@ -179,6 +180,16 @@ IDBootloader
sta gIsPascal
beq .useuniv ; always branches
;
; David-DOS II
;
+ jsr IDDavid
bcs +
lda #s_daviddos
jsr PrintByID
lda #TRUE
sta gIsDavidDOS
beq .useuniv ; always branches
;
; Encrypted Datasoft bootloader
;
+ jsr IDDatasoft
@ -194,13 +205,6 @@ IDBootloader
lda #s_micrograms
jsr PrintByID
;
; David-DOS II
;
+ jsr IDDavid
bcs +
lda #s_daviddos
jsr PrintByID
;
; Quick-DOS
;
+ jsr IDQuickDOS

View File

@ -799,6 +799,10 @@ gIsProtDOS
!byte FALSE ; 0=true, 1=false
; reset before each operation
; set in IDBootloader() after reading T00,S00
gIsDavidDOS
!byte FALSE ; 0=true, 1=false
; reset before each operation
; set in IDBootloader() after reading T00,S00
gIsEA
!byte FALSE ; 0=true, 1=false
; reset before each operation

View File

@ -679,4 +679,28 @@
jsr PrintByID
inc gPatchCount
.bcs08
;-------------------------------
; RWTS "CMP / BNE 0" identification
; disk allows any value for
; for the first address epilogue nibble
; (no patches required, but we want to
; log it)
;-------------------------------
lda gIsDavidDOS
bne +
lda #$05
sta gDisplayBytes
ldx #$8B
ldy #$09
jsr compare ; and T00,S05,$8B ==
!byte $BD,$8C,$C0
!byte $10,$FB
!byte $C9,WILDCARD
!byte $D0,$00
bcs +
lda #s_cmpbne0
jsr PrintByID
inc gPatchCount
+
}

View File

@ -100,7 +100,8 @@ s_jmpb412 = $51
s_laureate = $52
s_bbf9 = $53
s_micrograms = $54
STRINGCOUNT = $55
s_cmpbne0 = $55
STRINGCOUNT = $56
!zone {
StringTable
@ -189,6 +190,7 @@ StringTable
!word .laureate
!word .bbf9
!word .micrograms
!word .cmpbne0
;
; Text can contain substitution strings, which
; are replaced by current values at runtime. Each
@ -214,7 +216,7 @@ StringTable
; can be set directly before calling PrintByID.
;
.header
!text "Passport by 4am 2017-06-20",00
!text "Passport by 4am 2017-07-02",00
.mainmenu
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
!text " "
@ -474,4 +476,7 @@ StringTable
!text "T%t,S%0 Found BBF9 protection check",$8D,00
.micrograms
!text "T00,S00 Found Micrograms bootloader",$8D,00
.cmpbne0
!text "T%t,S%0 RWTS accepts any value for the",$8D
!text "first address epilogue nibble.",$8D,00
}