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