    Datei schliessen ($db02)
    E: $52: Sekundaeradresse der Datei

    Einsprung von $883E, $996F, $998A, $B8CC:

    999F: A6 52     LDX $52          SA testen
    99A1: B5 A8     LDA $A8,X        ist ein Kanal zugeordnet ?
    99A3: C9 FF     CMP #$FF
    99A5: D0 01     BNE $99A8        ja, ==>
    99A7: 60        RTS

    Einsprung von $99A5:

    99A8: 29 0F     AND #$0F         Kanalnummer isolieren
    99AA: 85 50     STA $50
    99AC: 20 5F 90  JSR $905F        aktuellen Filetyp holen
    99AF: C9 07     CMP #$07         Direktzugriff ?
    99B1: F0 0F     BEQ $99C2        ja, ==>
    99B3: C9 04     CMP #$04         REL-Datei ?
    99B5: F0 11     BEQ $99C8        ja, ==>
    99B7: 20 42 90  JSR $9042        auf Schreibkanal testen
    99BA: B0 09     BCS $99C5        kein Schreibkanal, ==>
    99BC: 20 2A 9A  JSR $9A2A        letzten Block abspeichern
    99BF: 20 72 9A  JSR $9A72        Eintrag im Directory updaten

    Einsprung von $99B1:

    99C2: 20 15 B5  JSR $B515        BAM abspeichern

    Einsprung von $99BA:

    99C5: 4C 9E 91  JMP $919E        SA freigeben

    REL-Datei schliessen

    Einsprung von $99B5:

    99C8: 20 2E 9D  JSR $9D2E        ggf. Puffer schreiben
    99CB: 20 7D 8D  JSR $8D7D        Puffer wechseln
    99CE: 20 5C A1  JSR $A15C        letzten Datenblock suchen
    99D1: A6 69     LDX $69          letzte Side-Sektor-Nummer merken
    99D3: 86 44     STX $44
    99D5: 20 6E A5  JSR $A56E        Super-Side-Sektor verwenden ?
    99D8: F0 2B     BEQ $9A05        ja, ==>

    Rel-Dateilaenge berechnen (ohne Super-Side-Sektoren)

    99DA: E6 44     INC $44          letzte Side-Sektor-Nummer+1 =
    99DC: A9 00     LDA #$00         Anzahl der Side-Sektoren
    99DE: 85 41     STA $41          Dateilaenge = 0
    99E0: 85 42     STA $42
    99E2: A5 6A     LDA $6A          Position der T&S des letzten Datenblocks
    99E4: 38        SEC              im Side-Sektor
    99E5: E9 0E     SBC #$0E         - 14 = 'Anzahl der Datenbloecke im letzten
    99E7: 85 43     STA $43          Side-Sektor' * 2
    99E9: 20 82 9E  JSR $9E82        Laenge der REL-Datei berechnen
    99EC: A6 50     LDX $50
    99EE: A5 41     LDA $41          Dateilaenge in Kanaltabelle merken
    99F0: 9D 49 02  STA $0249,X
    99F3: A5 42     LDA $42
    99F5: 9D 50 02  STA $0250,X

    Einsprung von $9A27:

    99F8: A9 40     LDA #$40         b6=1: 'REL-Datei veraendert' ?
    99FA: 20 E4 9C  JSR $9CE4        Dateistatus testen
    99FD: F0 03     BEQ $9A02        nein, ==>
    99FF: 20 72 9A  JSR $9A72        Directory updaten

    Einsprung von $99FD:

    9A02: 4C 9E 91  JMP $919E        SA freigeben

    Rel-Dateilaenge berechnen (mit Super-Side-Sektoren)

    Einsprung von $99D8:

    9A05: A5 6A     LDA $6A          Position der T&S des letzten Datenblocks
    9A07: 38        SEC              im Side-Sektor
    9A08: E9 0E     SBC #$0E         - 14 = 'Anzahl der Datenbloecke im letzten
    9A0A: 85 43     STA $43          Side-Sektor' * 2
    9A0C: AD 00 01  LDA $0100        letzte Gruppennummer merken
    9A0F: 85 58     STA $58
    9A11: 20 97 9E  JSR $9E97        Laenge der REL-Datei berechnen
    9A14: A2 00     LDX #$00         und + 2 nehmen
    9A16: A9 02     LDA #$02         [1 Super-SS und der letzte (noch nicht
    9A18: 20 CC 9E  JSR $9ECC         ganz gefuellte) SS]
    9A1B: A6 50     LDX $50          Kanalnummer holen
    9A1D: A5 5B     LDA $5B          Dateilaenge in Kanaltabelle merken
    9A1F: 9D 49 02  STA $0249,X
    9A22: A5 5C     LDA $5C
    9A24: 9D 50 02  STA $0250,X
    9A27: 4C F8 99  JMP $99F8        Datei schliessen

        Previous Page / Next Page