     $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