diff --git a/src/id/inspect0.a b/src/id/inspect0.a index 09cdbb4..72d2602 100755 --- a/src/id/inspect0.a +++ b/src/id/inspect0.a @@ -162,6 +162,13 @@ IDBootloader bcs + lda #s_daviddos jsr PrintByID +; +; Quick-DOS +; ++ jsr IDQuickDOS + bcs + + lda #s_quickdos + jsr PrintByID + .useuniv diff --git a/src/id/quickdos.a b/src/id/quickdos.a new file mode 100644 index 0000000..23eb0de --- /dev/null +++ b/src/id/quickdos.a @@ -0,0 +1,24 @@ +;------------------------------- +; IDQuickDOS +; identify Quick-DOS bootloader +; +; in: $0800..$08FF contains T00,S00 +; first page of track buffer also contains T00,S00 +; out: C clear if Quick-DOS bootloader found +; C set otherwise +; all registers clobbered +; all other flags clobbered +;------------------------------- +!zone { +IDQuickDOS + lda #$00 + ldx #$01 + ldy #$0A + jsr compare ; if T00,S00,$01 == + !byte $A5,$27 ; LDA $27 + !byte $C9,$09 ; CMP #$09 + !byte $D0,$27 ; BNE +$27 + !byte $78 ; SEI + !byte $AD,$83,$C0; LDA $C083 + rts +} diff --git a/src/passport.a b/src/passport.a index 2c2b4e7..1a73b04 100755 --- a/src/passport.a +++ b/src/passport.a @@ -154,6 +154,7 @@ FirstMover !source "id/ea.a" !source "id/milliken.a" !source "id/daviddos.a" + !source "id/quickdos.a" !source "print.a" !source "compare.a" !source "modify.a" diff --git a/src/strings/en.a b/src/strings/en.a index 946d840..9f0a00c 100755 --- a/src/strings/en.a +++ b/src/strings/en.a @@ -93,7 +93,8 @@ s_bootcounter = $4A s_milliken = $4B s_jsr8b3 = $4C s_daviddos = $4D -STRINGCOUNT = $4E +s_quickdos = $4E +STRINGCOUNT = $4F !zone { StringTable @@ -175,6 +176,7 @@ StringTable !word .milliken !word .jsr8b3 !word .daviddos + !word .quickdos ; ; Text can contain substitution strings, which ; are replaced by current values at runtime. Each @@ -445,4 +447,6 @@ StringTable !text "T00,S00 Found JSR $08B3 bootloader",$8D,00 .daviddos !text "T00,S00 Found David-DOS bootloader",$8D,00 +.quickdos + !text "T00,S00 Found Quick-DOS bootloader",$8D,00 }