diff --git a/src/id/inspect0.a b/src/id/inspect0.a index 0a586d7..efcb74a 100755 --- a/src/id/inspect0.a +++ b/src/id/inspect0.a @@ -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 diff --git a/src/passport.a b/src/passport.a index df52910..6b8a6b0 100755 --- a/src/passport.a +++ b/src/passport.a @@ -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 diff --git a/src/patchers/rwts.a b/src/patchers/rwts.a index 1e7639b..8f2fe18 100755 --- a/src/patchers/rwts.a +++ b/src/patchers/rwts.a @@ -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 ++ } diff --git a/src/strings/en.a b/src/strings/en.a index d441516..12e7e80 100755 --- a/src/strings/en.a +++ b/src/strings/en.a @@ -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 }