JIDLE - Hauptleerschleife ($ebe7)

B0F0: 78        SEI
B0F1: A9 10     LDA #$10         automatische ATN-Beantwortung einschalten
B0F3: 8D 01 40  STA $4001        Bus-Leitungen freigeben
B0F6: 58        CLI
B0F7: A5 7B     LDA $7B          Ist das Befehlsmodus-Flag gesetzt ?
B0F9: F0 0A     BEQ $B105        nein, ==>
B0FB: A9 00     LDA #$00         Flag loeschen
B0FD: 85 7B     STA $7B
B0FF: 20 04 80  JSR $8004        und Befehl auswerten
B102: 20 BB AC  JSR $ACBB        FSM abschliessen

Einsprung von $B0F9, $B158:

B105: 58        CLI
B106: A9 01     LDA #$01         Bus-Modus-Flag testen
B108: 24 76     BIT $76          b0=1: Ist ein ATN aufgetreten ?
B10A: F0 03     BEQ $B10F        nein, ==>
B10C: 4C 30 FF  JMP $FF30        JATNSRV: ATN bedienen

Drive-LED ein-/ausschalten

Einsprung von $B10A:

B10F: A5 87     LDA $87          Ist der Cachepuffer veraendert ?
B111: D0 1E     BNE $B131        ja, (LED an) ==>
B113: A0 09     LDY #$09         8 Jobpuffer pruefen
B115: A2 0E     LDX #$0E         14 Kanaele pruefen

Einsprung von $B126:

B117: B5 A8     LDA $A8,X        ist der Kanal aktiv ?
B119: C9 FF     CMP #$FF         <> $ff
B11B: D0 14     BNE $B131        ja, ==>
B11D: 88        DEY
B11E: 30 05     BMI $B125        sind alle Jobpuffer getestet ? ja, ==>
B120: B9 02 00  LDA $0002,Y      b7=1: ist Job noch aktiv ?
B123: 30 0C     BMI $B131        ja, ==>

Einsprung von $B11E:

B125: CA        DEX
B126: 10 EF     BPL $B117        sind noch Kanaele zu pruefen ? ja, ==>
B128: A5 79     LDA $79          b6=0: Drive-LED ausschalten
B12A: 29 BF     AND #$BF
B12C: 85 79     STA $79
B12E: 4C 37 B1  JMP $B137        ==>

Einsprung von $B111, $B11B, $B123:

B131: A5 79     LDA $79          b6=1: Drive-LED einschalten
B133: 09 40     ORA #$40
B135: 85 79     STA $79

Fehlerblinken ein-/ausschalten

Einsprung von $B12E:

B137: A5 25     LDA $25          wurde die Diskette gewechselt ?
B139: F0 03     BEQ $B13E        nein, ==>
B13B: 20 6E 92  JSR $926E        alle SA freigeben

Einsprung von $B139:

B13E: AE AB 02  LDX $02AB        Fehlerflag pruefen
B141: F0 08     BEQ $B14B        =0: kein Fehler aufgetreten, ==>
B143: A5 79     LDA $79          b5=1: Fehlerblinken einschalten
B145: 09 20     ORA #$20
B147: 85 79     STA $79
B149: D0 06     BNE $B151

Einsprung von $B141:

B14B: A5 79     LDA $79          b5=0: Fehlerblinken ausschalten
B14D: 29 DF     AND #$DF
B14F: 85 79     STA $79

Einsprung von $B149:

B151: A5 9C     LDA $9C          Verzoegerungszeit fuer 'Cache schreiben'
B153: D0 03     BNE $B158        vorbei ? nein, ==>
B155: 20 5B B1  JSR $B15B        ja: Cache schreiben

Einsprung von $B153:

B158: 4C 05 B1  JMP $B105        weiter warten ==>
    Previous Page / Next Page