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

View File

@ -799,6 +799,10 @@ gIsProtDOS
!byte FALSE ; 0=true, 1=false !byte FALSE ; 0=true, 1=false
; reset before each operation ; reset before each operation
; set in IDBootloader() after reading T00,S00 ; 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 gIsEA
!byte FALSE ; 0=true, 1=false !byte FALSE ; 0=true, 1=false
; reset before each operation ; reset before each operation

View File

@ -679,4 +679,28 @@
jsr PrintByID jsr PrintByID
inc gPatchCount inc gPatchCount
.bcs08 .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_laureate = $52
s_bbf9 = $53 s_bbf9 = $53
s_micrograms = $54 s_micrograms = $54
STRINGCOUNT = $55 s_cmpbne0 = $55
STRINGCOUNT = $56
!zone { !zone {
StringTable StringTable
@ -189,6 +190,7 @@ StringTable
!word .laureate !word .laureate
!word .bbf9 !word .bbf9
!word .micrograms !word .micrograms
!word .cmpbne0
; ;
; Text can contain substitution strings, which ; Text can contain substitution strings, which
; are replaced by current values at runtime. Each ; are replaced by current values at runtime. Each
@ -214,7 +216,7 @@ StringTable
; can be set directly before calling PrintByID. ; can be set directly before calling PrintByID.
; ;
.header .header
!text "Passport by 4am 2017-06-20",00 !text "Passport by 4am 2017-07-02",00
.mainmenu .mainmenu
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D !text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
!text " " !text " "
@ -474,4 +476,7 @@ StringTable
!text "T%t,S%0 Found BBF9 protection check",$8D,00 !text "T%t,S%0 Found BBF9 protection check",$8D,00
.micrograms .micrograms
!text "T00,S00 Found Micrograms bootloader",$8D,00 !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
} }