mirror of
https://github.com/a2-4am/passport.git
synced 2024-05-28 21:41:27 +00:00
41 lines
1.3 KiB
Plaintext
41 lines
1.3 KiB
Plaintext
;-------------------------------
|
|
; IDPascal
|
|
; identify Apple Pascal bootloader
|
|
;
|
|
; in: $0800..$08FF contains T00,S00
|
|
; first page of track buffer also contains T00,S00
|
|
; out: C clear if Apple Pascal bootloader found
|
|
; C set otherwise
|
|
; A = 0
|
|
; X = 0
|
|
; all other registers & flags clobbered
|
|
;-------------------------------
|
|
!macro IDPascal {
|
|
;
|
|
; Apple Pascal signature (version < 1.3)
|
|
; 7th position not included, to catch alternate jump
|
|
; addresses (e.g. Wizardry I, Sundog Frozen Legacy)
|
|
; 8th position not included, to catch PFS
|
|
;
|
|
lda #$00
|
|
tax
|
|
ldy #$06
|
|
jsr compare ; if T00,S00,$00 ==
|
|
!byte $01
|
|
!byte $E0,$60
|
|
!byte $F0,$03
|
|
!byte $4C
|
|
bcc @notPascal ; passport-test-suite/Wizplus.woz [C=0] matches
|
|
; passport-test-suite/PFS A02.woz [C=0] matches
|
|
;
|
|
; Apple Pascal 1.3 signature [thanks Marco V.]
|
|
;
|
|
; passport-test-suite/Triangles Through Octagons.woz [C=1] reaches here
|
|
jsr compare ; or if T00,S00,$00 ==
|
|
!byte $01
|
|
!byte $E0,$70
|
|
!byte $B0,$04
|
|
!byte $E0
|
|
@notPascal ; passport-test-suite/Triangles Through Octagons.woz [C=0] matches
|
|
}
|