passport/src/id/davidson.a
2021-06-18 21:32:11 -04:00

36 lines
1.0 KiB
Plaintext

;-------------------------------
; IDDavidson
; identify Davidson disk after failing to read T22,S00
;
; in: track buffer contains track $22
; out: C clear if Davidson disk found
; C set otherwise
; all registers clobbered
; all other flags clobbered
;-------------------------------
!zone {
IDDavidson
lda gIsProDOS ; ProDOS?
bne .fail ; no, give up
lda gTrack ; track $22?
cmp #$22
bne .fail ; no, give up
lda gSector ; sector $00?
bne .fail ; no, give up
;;lda #$00 ; try re-reading the sector but
sta $B92E ; ignore data field checksum failure
jsr ReadSector
lda #$13
sta $B92E
bcs .fail ; passport-test-suite/Word Attack Plus Spanish.woz [C=0] matches
; if the read didn't work, give up
jsr PrintByID
!byte s_davidson
lda #TRUE
sta gIsDavidson
clc
!byte $24
.fail sec
.exit rts
}