mirror of
https://github.com/a2-4am/passport.git
synced 2025-01-05 06:29:36 +00:00
add support for identifying Diversi-DOS bootloader
This commit is contained in:
parent
9bdd5f371f
commit
16fac300e3
@ -23,9 +23,9 @@ IDDavid
|
|||||||
ldx #$4A
|
ldx #$4A
|
||||||
ldy #$0B
|
ldy #$0B
|
||||||
jsr compare ; and T00,S00,$4A ==
|
jsr compare ; and T00,S00,$4A ==
|
||||||
!byte $A2,$0D ; LDX #$0D
|
!byte $A2,WILDCARD ; LDX #$**
|
||||||
!byte $BD,$B9,$08; LDA $08B9,X
|
!byte $BD,WILDCARD,$08; LDA $08**,X
|
||||||
!byte $9D,$0D,$04; STA $040D,X
|
!byte $9D,WILDCARD,$04; STA $04**,X
|
||||||
!byte $CA ; DEX
|
!byte $CA ; DEX
|
||||||
!byte $10,$F7 ; BPL -
|
!byte $10,$F7 ; BPL -
|
||||||
.exit rts
|
.exit rts
|
||||||
|
20
src/id/diversidos.a
Normal file
20
src/id/diversidos.a
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
;-------------------------------
|
||||||
|
; IDDiversiDOS
|
||||||
|
; identify Diversi-DOS bootloader
|
||||||
|
;
|
||||||
|
; in: $0800..$08FF contains T00,S00
|
||||||
|
; first page of track buffer also contains T00,S00
|
||||||
|
; out: C clear if Diversi-DOS bootloader found
|
||||||
|
; C set otherwise
|
||||||
|
; all registers clobbered
|
||||||
|
; all other flags clobbered
|
||||||
|
;-------------------------------
|
||||||
|
!zone {
|
||||||
|
IDDiversiDOS
|
||||||
|
lda #$00
|
||||||
|
ldx #$F1
|
||||||
|
ldy #$0B
|
||||||
|
jsr compare ; if T00,S00,$F1 ==
|
||||||
|
!byte $B3,$A3,$A0,$D2,$CF,$D2,$D2,$C5,$8D,$87,$8D
|
||||||
|
rts
|
||||||
|
}
|
@ -51,7 +51,12 @@ IDBootloader
|
|||||||
bcs +
|
bcs +
|
||||||
lda #TRUE
|
lda #TRUE
|
||||||
sta gIsBoot0
|
sta gIsBoot0
|
||||||
|
jsr IDDiversiDOS
|
||||||
|
bcc .diversi
|
||||||
lda #s_dosb0
|
lda #s_dosb0
|
||||||
|
!byte $2c
|
||||||
|
.diversi
|
||||||
|
lda #s_diversidos
|
||||||
jsr PrintByID
|
jsr PrintByID
|
||||||
jmp TraceDOS33
|
jmp TraceDOS33
|
||||||
;
|
;
|
||||||
|
@ -94,7 +94,7 @@ flag = $FF ; byte
|
|||||||
}
|
}
|
||||||
|
|
||||||
; Application constants (not zero addresses)
|
; Application constants (not zero addresses)
|
||||||
RELBASE = $6400 ; address to move Passport code
|
RELBASE = $6300 ; address to move Passport code
|
||||||
; so that it's out of the way
|
; so that it's out of the way
|
||||||
LOWPOINT = $4300 ; lowest available address for code
|
LOWPOINT = $4300 ; lowest available address for code
|
||||||
BASEPAGE = $10 ; Special Delivery tracer assumes
|
BASEPAGE = $10 ; Special Delivery tracer assumes
|
||||||
@ -155,6 +155,7 @@ FirstMover
|
|||||||
!source "id/milliken.a"
|
!source "id/milliken.a"
|
||||||
!source "id/daviddos.a"
|
!source "id/daviddos.a"
|
||||||
!source "id/quickdos.a"
|
!source "id/quickdos.a"
|
||||||
|
!source "id/diversidos.a"
|
||||||
!source "print.a"
|
!source "print.a"
|
||||||
!source "compare.a"
|
!source "compare.a"
|
||||||
!source "modify.a"
|
!source "modify.a"
|
||||||
|
@ -94,7 +94,8 @@ s_milliken = $4B
|
|||||||
s_jsr8b3 = $4C
|
s_jsr8b3 = $4C
|
||||||
s_daviddos = $4D
|
s_daviddos = $4D
|
||||||
s_quickdos = $4E
|
s_quickdos = $4E
|
||||||
STRINGCOUNT = $4F
|
s_diversidos = $4F
|
||||||
|
STRINGCOUNT = $50
|
||||||
|
|
||||||
!zone {
|
!zone {
|
||||||
StringTable
|
StringTable
|
||||||
@ -177,6 +178,7 @@ StringTable
|
|||||||
!word .jsr8b3
|
!word .jsr8b3
|
||||||
!word .daviddos
|
!word .daviddos
|
||||||
!word .quickdos
|
!word .quickdos
|
||||||
|
!word .diversidos
|
||||||
;
|
;
|
||||||
; 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
|
||||||
@ -449,4 +451,6 @@ StringTable
|
|||||||
!text "T00,S00 Found David-DOS bootloader",$8D,00
|
!text "T00,S00 Found David-DOS bootloader",$8D,00
|
||||||
.quickdos
|
.quickdos
|
||||||
!text "T00,S00 Found Quick-DOS bootloader",$8D,00
|
!text "T00,S00 Found Quick-DOS bootloader",$8D,00
|
||||||
|
.diversidos
|
||||||
|
!text "T00,S00 Found Diversi-DOS bootloader",$8D,00
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user