$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 |