mirror of
https://github.com/a2-4am/passport.git
synced 2024-06-08 16:29:33 +00:00
48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
;------------------------------------------------------------------------------
|
|
; IDJMP600
|
|
; identify JMP600 bootloader
|
|
; custom boot sector uses its own RWTS to load one or more sectors into the
|
|
; text page and eventually jumps to $600 which uses a second RWTS to load
|
|
; and jump to a third RWTS at $B700
|
|
;
|
|
; in: track buffer contains T00,S00
|
|
; A = 0
|
|
; X = 0
|
|
; out: C clear if JMP600 bootloader was found
|
|
; C set if not found
|
|
; A = 0
|
|
; X = 0
|
|
; all other registers & flags clobbered
|
|
;-------------------------------
|
|
!macro IDJMP600 {
|
|
ldy #$11
|
|
jsr compare
|
|
!byte $01,$A2,$00,$BD,$00,$08,$9D,$00
|
|
!byte $02,$E8,$D0,$F7,$4C,$0F,$02,$A9
|
|
!byte $A0
|
|
; passport-test-suite/Competition Karate.woz [C=0] matches
|
|
}
|
|
|
|
FoundJMP600
|
|
;
|
|
; We found a JMP600 bootloader. Now we create
|
|
; an RWTS that can read the rest of the disk.
|
|
; Starting with our built-in RWTS, we modify address
|
|
; and data prologues based on the parameters of the
|
|
; original disk.
|
|
;
|
|
lda $84A
|
|
lsr
|
|
sta UNIV_A1
|
|
lda $853
|
|
sta UNIV_A2
|
|
lda $85D
|
|
sta UNIV_A3
|
|
lda $888
|
|
sta UNIV_D1
|
|
lda $891
|
|
sta UNIV_D2
|
|
lda $89B
|
|
sta UNIV_D3
|
|
jmp ADStyle
|