Feststellen, ob Record existiert und ggf. richtige Gruppe anwaehlen ($df66) A: n=0, v=0: Record und Side-Sektor sind O.k. n=0, v=1: Ein falscher Side-Sektor ist geladen. Record kann existieren. n=1, v=0: Der richtige Side-Sektor ist geladen. Record existiert nicht. n=1, v=1: Der Side-Sektor (oder sogar die ganze Gruppe) existiert noch nicht. Der gesuchte Record kann also noch nicht existieren. Einsprung von $9E32, $9E41: 9ED3: 20 6E A5 JSR $A56E Ist Super-Side-Sektor aktiv ? 9ED6: D0 0C BNE $9EE4 nein, ==> 9ED8: AD 00 01 LDA $0100 gewuenschte Gruppennummer holen 9EDB: 20 C0 A5 JSR $A5C0 richtige Gruppe anwaehlen 9EDE: F0 04 BEQ $9EE4 gefunden ? ja, ==> 9EE0: 2C C1 DB BIT $DBC1 n- und v-Flag setzen 9EE3: 60 RTS (Gruppe existiert nicht) Einsprung von $9ED6, $9EDE: 9EE4: 20 0B 9E JSR $9E0B Nummer des Side-Sektors holen 9EE7: C5 69 CMP $69 = gesuchter Nummer ? 9EE9: D0 0E BNE $9EF9 nein, ==> 9EEB: A4 6A LDY $6A Zeiger auf T&S des Datenblocks holen 9EED: B1 64 LDA ($64),Y Track = 0 (Block nicht vorhanden) ? 9EEF: F0 04 BEQ $9EF5 ja, ==> 9EF1: 2C BE DB BIT $DBBE n- und v-Flag loeschen (O.k.) 9EF4: 60 RTS (O.k.) Einsprung von $9EEF: 9EF5: 2C C0 DB BIT $DBC0 n-Flag setzen 9EF8: 60 RTS (Record existiert nicht) Einsprung von $9EE9: 9EF9: A5 69 LDA $69 gesuchte Nummer 9EFB: C9 06 CMP #$06 >= 6 9EFD: B0 0A BCS $9F09 ja, ==> 9EFF: 0A ASL 9F00: A8 TAY 9F01: A9 04 LDA #$04 Zeiger auf T&S des gesuchten Side-Sektors 9F03: 85 64 STA $64 setzen 9F05: B1 64 LDA ($64),Y Side-Sektor vorhanden (Track>0) ? 9F07: D0 04 BNE $9F0D ja, ==> Einsprung von $9EFD: 9F09: 2C C1 DB BIT $DBC1 n- und v-Flag setzen 9F0C: 60 RTS (der Side-Sektor existiert nicht) Einsprung von $9F07: 9F0D: 2C BF DB BIT $DBBF v-Flag setzen 9F10: 60 RTS (falscher Side-Sektor geladen) Previous Page / Next Page |