Eintrag im Directory nach dem Schreiben updaten ($dba5) Einsprung von $99BF, $99FF: 9A72: A6 50 LDX $50 Kanalnummer der Datei merken 9A74: 8E 8C 02 STX $028C 9A77: A5 52 LDA $52 SA der Datei merken 9A79: 48 PHA entsprechenden Directory-Eintrag holen 9A7A: BD 7D 02 LDA $027D,X Dir-Block des Eintrages holen 9A7D: 85 4E STA $4E 9A7F: BD 84 02 LDA $0284,X Position des Eintrages im Block holen 9A82: 8D 32 02 STA $0232 9A85: AD 2B 02 LDA $022B Tracknummer des Directorys setzen 9A88: 85 4D STA $4D 9A8A: 20 11 9F JSR $9F11 aktuellen Puffer der Datei holen 9A8D: 48 PHA [Der Dir-Block wird in den Puffer der Datei 9A8E: 85 6C STA $6C gelesen, damit die Replace-Funktion den Scratch-Befehl verwenden kann.] 9A90: 20 BD 93 JSR $93BD Directory-Block lesen 9A93: A0 00 LDY #$00 9A95: BD F1 01 LDA $01F1,X Pufferadresse holen 9A98: 85 56 STA $56 und als Pufferzeiger Hi merken 9A9A: AD 32 02 LDA $0232 Position des Eintrages holen und als 9A9D: 85 55 STA $55 Pufferzeiger Lo merken 9A9F: B1 55 LDA ($55),Y Filetyp holen 9AA1: 29 20 AND #$20 b5=1: 'Datei wird ueberschrieben' ? 9AA3: F0 43 BEQ $9AE8 nein, ==> 9AA5: 20 5F 90 JSR $905F Filetyp des Kanals holen 9AA8: C9 04 CMP #$04 = REL-Datei ? 9AAA: F0 44 BEQ $9AF0 ja, ==> REPLACE-Funktion 9AAC: B1 55 LDA ($55),Y b5: Replace-Flag und b6: Scratch-Schutz 9AAE: 29 8F AND #$8F loeschen 9AB0: 91 55 STA ($55),Y 9AB2: C8 INY 9AB3: B1 55 LDA ($55),Y Tracknummer der alten Datei holen 9AB5: 85 4D STA $4D und merken 9AB7: 84 42 STY $42 9AB9: A0 1B LDY #$1B 9ABB: B1 55 LDA ($55),Y T&S der neuen Datei holen und merken 9ABD: 48 PHA (Sektornummer) 9ABE: 88 DEY 9ABF: B1 55 LDA ($55),Y Tracknummer = 0 ? 9AC1: D0 0A BNE $9ACD nein, ==> 9AC3: 85 4D STA $4D [Ja: in diesem Fall existiert gar keine 9AC5: 68 PLA neue Datei, also darf die alte nicht 9AC6: 85 4E STA $4E geloescht werden.] 9AC8: A9 67 LDA #$67 67, Illegal Track or Sector, 00, ss 9ACA: 20 3F FF JSR $FF3F ==> Einsprung von $9AC1: 9ACD: 48 PHA Tracknummer merken 9ACE: A9 00 LDA #$00 9AD0: 91 55 STA ($55),Y Replace-T&S-Zwischenspeicher loeschen 9AD2: C8 INY 9AD3: 91 55 STA ($55),Y 9AD5: 68 PLA 9AD6: A4 42 LDY $42 Tracknummer der neuen Datei als Dateianfang 9AD8: 91 55 STA ($55),Y merken 9ADA: C8 INY 9ADB: B1 55 LDA ($55),Y Sektornummer der alten Datei 9ADD: 85 4E STA $4E merken 9ADF: 68 PLA 9AE0: 91 55 STA ($55),Y und durch neue Sektornummer ersetzen 9AE2: 20 13 87 JSR $8713 alte Datei loeschen 9AE5: 4C F0 9A JMP $9AF0 Datei im Directory abschliessen Einsprung von $9AA3: 9AE8: B1 55 LDA ($55),Y Datei als 'ordnungsgemaess geschlossen' 9AEA: 29 0F AND #$0F kennzeichnen 9AEC: 09 80 ORA #$80 9AEE: 91 55 STA ($55),Y Einsprung von $9AAA, $9AE5: 9AF0: AE 8C 02 LDX $028C Nummer der Datei holen 9AF3: A0 1C LDY #$1C 9AF5: BD 49 02 LDA $0249,X Dateilaenge im Directory eintragen 9AF8: 91 55 STA ($55),Y 9AFA: C8 INY 9AFB: BD 50 02 LDA $0250,X 9AFE: 91 55 STA ($55),Y 9B00: 68 PLA 9B01: AA TAX 9B02: A9 90 LDA #$90 Jobcode fuer 'Sektor schreiben' 9B04: 20 E6 94 JSR $94E6 an DC uebergeben 9B07: 68 PLA 9B08: 85 52 STA $52 SA der Datei zurueckholen 9B0A: 4C 42 90 JMP $9042 SA freigeben Previous Page / Next Page |