$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