ggf. alten Puffer speichern, dann Folgeblock(s) einlesen  ($e03c)
[Wenn der letzte Jobcode 'Lesen' war, dann geht die Routine davon aus, dass
 der gesuchte Datenblock bereits durch den 2-Puffer-Modus bereitgestellt
 worden ist. Sie versucht dann, wenn der gerade aktive Puffer nicht noch
 vorher abgespeichert werden muss, den uebernaechsten Datenblock zu lesen.
 Ist der letzte Jobcode 'Schreiben', dann konnte der Folgeblock noch nicht
 gelesen werden. Die Routine versucht dann, sowohl den naechsten, als auch
 den uebernaechsten Block zu lesen.]

Einsprung von $9F73, $A02F, $A0C3:

9FBF: 20 CE 9D  JSR $9DCE        T&S des Folgeblocks holen
9FC2: 20 1C 9F  JSR $9F1C        aktiven Puffer holen
9FC5: 50 16     BVC $9FDD        Puffer veraendert ? nein, ==>
aktuellen Puffer speichern, Folgeblock ggf. lesen

9FC7: 20 9A 9D  JSR $9D9A        Puffer schreiben
9FCA: 20 7D 8D  JSR $8D7D        Puffer wechseln
9FCD: A9 02     LDA #$02
9FCF: 20 22 94  JSR $9422        Pufferzeiger auf 2 setzen
9FD2: 20 E9 9C  JSR $9CE9        War letzter Jobcode 'Schreiben' ?
9FD5: D0 24     BNE $9FFB        nein, (Puffer ist bereits gelesen) ==>
9FD7: 20 94 9D  JSR $9D94        Folgeblock lesen
9FDA: 4C ED 94  JMP $94ED        Jobausfuehrung pruefen

den naechsten und uebernaechsten Puffer bereitstellen

Einsprung von $9FC5:

9FDD: 20 7D 8D  JSR $8D7D        Puffer wechseln
9FE0: 20 E9 9C  JSR $9CE9        War letzter Jobcode 'Schreiben' ?
9FE3: D0 06     BNE $9FEB        nein, (Block ist bereits gelesen) ==>
9FE5: 20 94 9D  JSR $9D94        Folgeblock lesen
9FE8: 20 ED 94  JSR $94ED        Jobausfuehrung pruefen

Einsprung von $9FE3:

9FEB: 20 CE 9D  JSR $9DCE        T&S des uebernaechsten Blocks holen
9FEE: A5 4D     LDA $4D          existiert noch ein Block ?
9FF0: F0 09     BEQ $9FFB        nein, ==>
9FF2: 20 7D 8D  JSR $8D7D        Puffer wechseln
9FF5: 20 94 9D  JSR $9D94        uebernaechsten Block lesen
                                [Hier wird die Jobausfuehrung nicht abge-
                                 wartet. In frueheren Commodore-Laufwerken
                                 konnte so der Puffer 'im Hintergrund'
                                 eingelesen werden.]
9FF8: 4C 7D 8D  JMP $8D7D        Puffer wechseln

Einsprung von $9FD5, $9FF0:

9FFB: 60        RTS

    Previous Page / Next Page