$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