passport/src/id/dos32.a
2021-06-21 11:57:02 -04:00

45 lines
1.2 KiB
Plaintext

;-------------------------------
; IDDOS32
;
; in: $0800..$08FF contains T00,S00
; first page of track buffer also contains T00,S00
; A = 0
; X = 0
; out: C clear if hybrid DOS 3.2/3.3 bootloader found
; C set otherwise
; A = 0
; X = 0
; all other registers & flags clobbered
;-------------------------------
!macro IDDOS32 {
ldy #$0F
jsr compare ; if T00,S00,$00 =
!byte $01
!byte $A0,$0F ; LDY #$0F
!byte $B9,$00,$08; LDA $0800,Y
!byte $99,$00,$02; STA $0200,Y
!byte $C8 ; INY
!byte $D0,$F7 ; BNE -
!byte $4C,$0F,$02; JMP $020F
bcs +
ldx #$33
ldy #$08
jsr compare ; and T00,S00,$33 =
!byte $A6,$2B ; LDX $2B
!byte $20,$5D,$02; JSR $025D
!byte $4C,$D1,$02; JMP $02D1
bcs +
ldx #$F4
ldy #$08
jsr compare ; and T00,S00,$F4 =
!byte $CC,$00,$03; CPY $0300
!byte $D0,$03 ; BNE +
!byte $4C,$3B,$02; JMP $023B
bcs +
ldx #$45
jsr compare3 ; and T00,S00,$45 =
!byte $4C,$01,$03; JMP $0301
tax
+
}