$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