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