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 |