     $F2B0/62128:   IRQ routine for disk controller

    Jump from $FE7C:

    F2B0: BA        TSX
    F2B1: 86 49     STX $49         ; save stack pointer
    F2B3: AD 04 1C  LDA $1C04
    F2B6: AD 0C 1C  LDA $1C0C       ; erase interrupt flag from timer
    F2B9: 09 0E     ORA #$0E
    F2BB: 8D 0C 1C  STA $1C0C

    Jump from $F97B:

    F2BE: A0 05     LDY #$05

    Jump from $F2F4:

    F2C0: B9 00 00  LDA $00,Y       ; command for buffer Y?
    F2C3: 10 2E     BPL $F2F3       ; no
    F2C5: C9 D0     CMP #$D0        ; execute code for program in buffer
    F2C7: D0 04     BNE $F2CD       ; no
    F2C9: 98        TYA
    F2CA: 4C 70 F3  JMP $F370       ; execute program in buffer

    Jump from $F2C7:

    F2CD: 29 01     AND #$01        ; isolate drive number
    F2CF: F0 07     BEQ $F2D8       ; drive zero?
    F2D1: 84 3F     STY $3F
    F2D3: A9 0F     LDA #$0F        ; else
    F2D5: 4C 69 F9  JMP $F969       ; 74, 'drive not ready'

    Jump from $F2CF:

    F2D8: AA        TAX
    F2D9: 85 3D     STA $3D
    F2DB: C5 3E     CMP $3E         ; motor running?
    F2DD: F0 0A     BEQ $F2E9       ; yes
    F2DF: 20 7E F9  JSR $F97E       ; turn drive motor on
    F2E2: A5 3D     LDA $3D
    F2E4: 85 3E     STA $3E         ; set flag
    F2E6: 4C 9C F9  JMP $F99C       ; to job loop

    Jump from $F2DD:

    F2E9: A5 20     LDA $20
    F2EB: 30 03     BMI $F2F0       ; head transport programmed?
    F2ED: 0A        ASL
    F2EE: 10 09     BPL $F2F9

    Jump from $F2EB:

    F2F0: 4C 9C F9  JMP $F99C       ; to job loop

    Jump from $F2C3:

    F2F3: 88        DEY
    F2F4: 10 CA     BPL $F2C0       ; check next buffer
    F2F6: 4C 9C F9  JMP $F99C       ; to job loop

        Previous Page / Next Page