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 4178a20..1075fbc 100755 --- a/src/passport.a +++ b/src/passport.a @@ -813,6 +813,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 f8fdd73..55a8aab 100755 --- a/src/strings/en.a +++ b/src/strings/en.a @@ -100,8 +100,9 @@ s_jmpb412 = $51 s_laureate = $52 s_bbf9 = $53 s_micrograms = $54 -s_writeram = $55 -STRINGCOUNT = $56 +s_cmpbne0 = $55 +s_writeram = $56 +STRINGCOUNT = $57 !zone { StringTable @@ -190,6 +191,7 @@ StringTable !word .laureate !word .bbf9 !word .micrograms + !word .cmpbne0 !word .writeram ; ; Text can contain substitution strings, which @@ -216,7 +218,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 " " @@ -476,6 +478,9 @@ 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 .writeram !text "Writing to RAM disk",$8D,00 }