mirror of
https://github.com/a2-4am/passport.git
synced 2024-06-16 19:29:38 +00:00
111 lines
2.7 KiB
Plaintext
111 lines
2.7 KiB
Plaintext
;-------------------------------
|
|
; Trace8B3
|
|
; set up 1st-level boot trace on
|
|
; a bootloader that calls $08B3
|
|
; on first run to alter nibble table
|
|
; for rest of track 0
|
|
;-------------------------------
|
|
!zone {
|
|
Trace8B3
|
|
lda #<Trace8B3b
|
|
ldx #>Trace8B3b
|
|
jmp Trace
|
|
|
|
;-------------------------------
|
|
; Trace8B3b
|
|
; set up 2nd boot trace at $084A
|
|
;-------------------------------
|
|
Trace8B3b
|
|
lda $085A
|
|
sta _restore1+1
|
|
lda $085B
|
|
sta _restore2+1
|
|
lda $085C
|
|
sta _restore3+1
|
|
lda #$4C
|
|
sta $085A
|
|
lda #<Trace8B3c
|
|
sta $085B
|
|
lda #>Trace8B3c
|
|
sta $085C
|
|
lda #$2C ; disable calls to
|
|
sta $083F ; TEXt/PR0/IN0
|
|
sta $0842
|
|
sta $0845
|
|
lda #$60 ; disable memory wipe
|
|
sta $08CC
|
|
jmp $0801
|
|
|
|
Trace8B3c
|
|
;
|
|
; Need to write out track 0 now because the built-in RWTS
|
|
; won't be able to read it later.
|
|
;
|
|
lda $C0E8 ; turn off source drive
|
|
;
|
|
; Restore the original code in memory before continuing
|
|
;
|
|
lda #$B6
|
|
sta $B6FE
|
|
lda #$09
|
|
sta $B6FF
|
|
lda #$20
|
|
sta $B63F
|
|
sta $B642
|
|
sta $B645
|
|
lda #$A9
|
|
sta $B6CC
|
|
_restore1
|
|
lda #$d1 ; set at runtime (in Trace8B3b)
|
|
sta $B65A
|
|
_restore2
|
|
lda #$d1 ; set at runtime (in Trace8B3b)
|
|
sta $B65B
|
|
_restore3
|
|
lda #$d1 ; set at runtime (in Trace8B3b)
|
|
sta $B65C
|
|
;
|
|
; Copy track into buffer from writing
|
|
;
|
|
jsr ClearTSBuffer
|
|
lda #$B6
|
|
ldx #$10
|
|
ldy #$0A
|
|
jsr CopyMemory
|
|
;
|
|
; Manually write out track 0 (with patches)
|
|
;
|
|
jsr IncProgress
|
|
lda #$00
|
|
sta gTrack
|
|
jsr AnalyzeTrack
|
|
jsr ReorderLogicalToPhysical ; bootloader expects sectors in physical sector order
|
|
jsr WriteTrackNA
|
|
;
|
|
; Mark track 0 and part of track 2 as "skip" in sector map
|
|
;
|
|
ldy #$0F
|
|
lda #kSectorIgnore
|
|
- sta T00,y
|
|
dey
|
|
bpl -
|
|
ldy #$0B
|
|
- sta T02,y
|
|
iny
|
|
cpy #$10
|
|
bne -
|
|
;
|
|
; Set up RWTS entry point
|
|
;
|
|
lda #$00
|
|
sta jCallRWTS+1
|
|
lda #$BD
|
|
sta jCallRWTS+2
|
|
;
|
|
; Read the rest of the disk with the original RWTS
|
|
;
|
|
lda #$01
|
|
sta gLastTrack
|
|
jmp ADStyle ; passport-test-suite/Ardy the Aardvark.woz [Z=0] reaches here
|
|
}
|