$F2F9/62201: Head transport
Jump from $F2EE:
F2F9: A9 20 LDA #$20
F2FB: 85 20 STA $20 ; program head transport
F2FD: A0 05 LDY #$05
F2FF: 84 3F STY $3F ; initialize buffer counter
Jump from $F308:
F301: 20 93 F3 JSR $F393 ; set pointer in buffer
F304: 30 1A BMI $F320 ; command for buffer?
Jump from $F324, $F339:
F306: C6 3F DEC $3F ; decrement counter
F308: 10 F7 BPL $F301 ; check next buffer
F30A: A4 41 LDY $41 ; buffer number
F30C: 20 95 F3 JSR $F395 ; set pointer in buffer
F30F: A5 42 LDA $42 ; track difference for last job
F311: 85 4A STA $4A ; as counter for head transport
F313: 06 4A ASL $4A
F315: A9 60 LDA #$60 ; set flag for head transport
F317: 85 20 STA $20
F319: B1 32 LDA ($32),Y ; get track number from buffer
F31B: 85 22 STA $22
F31D: 4C 9C F9 JMP $F99C ; to job loop
Jump from $F304:
F320: 29 01 AND #$01 ; isolate drive number
F322: C5 3D CMP $3D ; equal drive number of last job?
F324: D0 E0 BNE $F306 ; no
F326: A5 22 LDA $22 ; last track number
F328: F0 12 BEQ $F33C ; equal zero?
F32A: 38 SEC
F32B: F1 32 SBC ($32),Y ; equal track number of this job?
F32D: F0 0D BEQ $F33C ; yes
F32F: 49 FF EOR #$FF
F331: 85 42 STA $42
F333: E6 42 INC $42
F335: A5 3F LDA $3F ; drive number
F337: 85 41 STA $41
F339: 4C 06 F3 JMP $F306
Jump from $F328, $F32D:
F33C: A2 04 LDX #$04
F33E: B1 32 LDA ($32),Y ; track number of the job
F340: 85 40 STA $40 ; save
Jump from $F346:
F342: DD D6 FE CMP $FED6,X ; compare with maximum track number
F345: CA DEX
F346: B0 FA BCS $F342 ; greater?
F348: BD D1 FE LDA $FED1,X ; get number of sectors per track
F34B: 85 43 STA $43 ; and save
F34D: 8A TXA
F34E: 0A ASL
F34F: 0A ASL
F350: 0A ASL
F351: 0A ASL
F352: 0A ASL
F353: 85 44 STA $44 ; gives 0, 32, 64, 96
F355: AD 00 1C LDA $1C00
F358: 29 9F AND #$9F
F35A: 05 44 ORA $44 ; generate control byte for motor
F35C: 8D 00 1C STA $1C00
F35F: A6 3D LDX $3D
F361: A5 45 LDA $45 ; command code
F363: C9 40 CMP #$40 ; position head?
F365: F0 15 BEQ $F37C ; yes
F367: C9 60 CMP #$60 ; command code for program execution?
F369: F0 03 BEQ $F36E ; yes
F36B: 4C B1 F3 JMP $F3B1 ; read block header
Previous Page / Next Page