    Neue Datei im Directory eintragen ($d6e4)

    Einsprung von $87FA, $9893, $B89F:

    95AB: A5 52     LDA $52          aktuelle SA und
    95AD: 48        PHA
    95AE: A5 50     LDA $50          aktuelle Kanalnummer merken
    95B0: 48        PHA

    freien Eintrag suchen

    95B1: A5 4E     LDA $4E          aktuelle T&S merken
    95B3: 48        PHA
    95B4: A5 4D     LDA $4D
    95B6: 48        PHA
    95B7: A9 11     LDA #$11         internen Lesekanal oeffnen,
    95B9: 85 52     STA $52          aktuellen Puffer holen und
    95BB: 20 79 9D  JSR $9D79        T&S des geladenen Blocks holen
    95BE: AD 2D 02  LDA $022D        aktuellen Dateityp merken
    95C1: 48        PHA
    95C2: A6 6C     LDX $6C          Puffernummer
    95C4: A5 EF     LDA $EF          Drivenummer des Files
    95C6: 5D 72 02  EOR $0272,X      mit Drivenummer des Jobs vergleichen
    95C9: 4A        LSR
    95CA: 90 0B     BCC $95D7        gleich, ==>

    Das Verzeichnis des falschen Laufwerks ist geoeffnet

    95CC: A2 01     LDX #$01         Flag: '1. freien Eintrag finden' setzen
    95CE: 86 73     STX $73
    95D0: 20 24 84  JSR $8424        und Eintrag suchen
    95D3: F0 20     BEQ $95F5        keinen freier Eintrag, ==>
    95D5: D0 2D     BNE $9604

    Das richtige Verzeichnis ist geoeffnet

    Einsprung von $95CA:

    95D7: A5 72     LDA $72          1. Dir-Block mit freiem Eintrag
    95D9: F0 11     BEQ $95EC        noch nicht gefunden ?, ==>
    95DB: C5 4E     CMP $4E          ist der Block bereits geladen ?
    95DD: F0 25     BEQ $9604        ja, ==>
    95DF: 85 4E     STA $4E
    95E1: 20 BD 93  JSR $93BD        Dir-Block in den aktuellen Puffer einlesen
    95E4: 4C 04 96  JMP $9604

    Einsprung von $95FC:

    95E7: A9 72     LDA #$72         72, Disk full
    95E9: 20 7C 80  JSR $807C

    Einsprung von $95D9:

    95EC: A9 01     LDA #$01         Flag: '1. freien Eintrag finden' setzen
    95EE: 85 73     STA $73
    95F0: 20 89 84  JSR $8489        und Suche fortsetzen
    95F3: D0 0F     BNE $9604        freien Eintrag gefunden, ==>

    Im Directory ist kein Eintrag mehr frei, Directory erweitern

    Einsprung von $95D3:

    95F5: 20 E7 93  JSR $93E7        neuen Dir-Block anhaengen
    95F8: A5 4E     LDA $4E          Sektornummer < 3 ?
    95FA: C9 03     CMP #$03
    95FC: 90 E9     BCC $95E7        ja, (Direktory ist voll) ==>
    95FE: 85 72     STA $72          1. Eintrag des neuen Blocks fuer den
    9600: A9 02     LDA #$02         Filenamen verwenden (beginnt hinter der
    9602: 85 73     STA $73          Blockverkettung)

    File im Directory an der freien Stelle eintragen

    Einsprung von $95D5, $95DD, $95E4, $95F3:

    9604: A5 73     LDA $73          Pufferzeiger auf den freien Eintrag setzen
    9606: 20 22 94  JSR $9422
    9609: 68        PLA              Aktuellen Dateityp zurueckholen
    960A: 8D 2D 02  STA $022D
    960D: C9 04     CMP #$04         Dateityp = REL-Datei ?
    960F: D0 02     BNE $9613        nein, ==>
    9611: 09 80     ORA #$80         Flag: 'Datei geschlossen' setzen

    Einsprung von $960F:

    9613: 20 B1 8E  JSR $8EB1        Dateityp in Puffer schreiben
    9616: 68        PLA
    9617: 8D 97 02  STA $0297        T&S merken
    961A: 20 B1 8E  JSR $8EB1        und in Puffer schreiben
    961D: 68        PLA
    961E: 8D 9C 02  STA $029C
    9621: 20 B1 8E  JSR $8EB1
    9624: 20 11 9F  JSR $9F11        Nummer des aktiven Puffers holen
    9627: A8        TAY
    9628: AD 91 02  LDA $0291        Position des Filenamens holen
    962B: AA        TAX
    962C: A9 10     LDA #$10         Maximale Filenamenlaenge setzen
    962E: 20 EE 84  JSR $84EE        Filenamen in Puffer kopieren
    9631: A0 10     LDY #$10
    9633: A9 00     LDA #$00         Rest des Eintrags (11 Bytes) loeschen

    Einsprung von $963A:

    9635: 91 64     STA ($64),Y      [$64 zeigt auf das 3. Byte des Eintrages;
    9637: C8        INY               y= 16..27 - Also werden die Bytes 19-29
    9638: C0 1B     CPY #$1B          geloescht.]
    963A: 90 F9     BCC $9635
    963C: AD 2D 02  LDA $022D        Dateityp = REL-Datei ?
    963F: C9 04     CMP #$04
    9641: D0 13     BNE $9656        nein, ==>
    9643: A0 10     LDY #$10
    9645: AD 70 02  LDA $0270        T&S des (Super-)Side-Sektors eintragen
    9648: 91 64     STA ($64),Y
    964A: C8        INY
    964B: AD 71 02  LDA $0271
    964E: 91 64     STA ($64),Y
    9650: C8        INY
    9651: AD 6F 02  LDA $026F        Datensatzlaenge eintragen
    9654: 91 64     STA ($64),Y

    Einsprung von $9641:

    9656: 20 C1 93  JSR $93C1        Puffer schreiben

    9659: 68        PLA
    965A: 85 50     STA $50          Kanalnummer und
    965C: AA        TAX
    965D: 68        PLA
    965E: 85 52     STA $52          SA zurueckholen
    T&S des Eintrages dem Kanal und der Dateitabelle zuordnen

    9660: A5 72     LDA $72          Dir-Block merken
    9662: 85 E5     STA $E5
    9664: 9D 7D 02  STA $027D,X
    9667: A5 73     LDA $73          Position im Dir-Block merken
    9669: 85 EA     STA $EA
    966B: 9D 84 02  STA $0284,X
    966E: AD 2D 02  LDA $022D        Dateityp merken
    9671: 85 F4     STA $F4
    9673: A9 00     LDA #$00         Drivenummer (immer 0) merken
    9675: 85 EF     STA $EF
    9677: 60        RTS

        Previous Page / Next Page