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