Scratch ($c823)
8688: 20 70 82 JSR $8270 Dateityp feststellen ('S0:A*=U')
868B: 20 0B 82 JSR $820B alle Filenamen auf Drivenummer testen
868E: 20 A2 82 JSR $82A2 Drive initialisieren
8691: A9 00 LDA #$00 Zaehler fuer 'Files scratched' = 0
8693: 85 55 STA $55
8695: 20 ED 82 JSR $82ED 1. Datei suchen
8698: 30 6E BMI $8708 nicht gefunden, ==>
Einsprung von $8706:
869A: 20 F5 9C JSR $9CF5 Ist das File gerade geoeffnet
869D: 90 64 BCC $8703 ja, ==>
869F: A0 00 LDY #$00 Filetyp holen
86A1: B1 64 LDA ($64),Y
86A3: 8D EE 01 STA $01EE und merken
86A6: 29 40 AND #$40 b6=1: Ist der Scratch-Schutz aktiv ?
86A8: D0 59 BNE $8703 ja, ==>
86AA: 20 3B 87 JSR $873B Filetyp = 0 setzen
CBM-Dateien loeschen
86AD: AD EE 01 LDA $01EE Filetyp holen
86B0: 29 07 AND #$07
86B2: C9 05 CMP #$05 ist es eine Partition
86B4: D0 25 BNE $86DB nein, ==>
86B6: C8 INY
86B7: B1 64 LDA ($64),Y Start-T&S holen
86B9: 85 4D STA $4D
86BB: C8 INY
86BC: B1 64 LDA ($64),Y
86BE: 85 4E STA $4E
86C0: A0 1C LDY #$1C
86C2: B1 64 LDA ($64),Y Laenge der Partition holen
86C4: 8D EE 01 STA $01EE
86C7: C8 INY
86C8: B1 64 LDA ($64),Y
86CA: 8D ED 01 STA $01ED
Einsprung von $86D6:
86CD: 20 B5 94 JSR $94B5 auf gueltigen Partition-Block pruefen
86D0: 20 46 B5 JSR $B546 Block in Bam freigeben
86D3: 20 EF B2 JSR $B2EF naechsten Block der Partition holen
86D6: D0 F5 BNE $86CD noch Blocks uebrig, ==>
86D8: 4C EE DB JMP $DBEE Bam speichern, Sprung nach $8701
File loeschen
Einsprung von $86B4:
86DB: A0 13 LDY #$13 Side-Sektoren loeschen
86DD: B1 64 LDA ($64),Y
86DF: F0 0A BEQ $86EB sind Side-Sektoren vorhanden ?
86E1: 85 4D STA $4D ja, T&S merken
86E3: C8 INY
86E4: B1 64 LDA ($64),Y
86E6: 85 4E STA $4E
86E8: 20 13 87 JSR $8713 Blocks freigeben
Einsprung von $86DF:
86EB: AE 6D 02 LDX $026D File loeschen
86EE: A9 20 LDA #$20 ist die Datei ordnungsgemaess geschlossen ?
86F0: 35 F4 AND $F4,X (b5=0)
86F2: D0 0D BNE $8701 nein, ('*'-File) ==>
86F4: BD 97 02 LDA $0297,X T&S des Files holen
86F7: 85 4D STA $4D
86F9: BD 9C 02 LDA $029C,X
86FC: 85 4E STA $4E
86FE: 20 13 87 JSR $8713 Datei verfolgen und Blocks freigeben
Einsprung von $86F2, $DBF1:
8701: E6 55 INC $55 Anzahl 'Files scratched' +1
Einsprung von $869D, $86A8:
8703: 20 E6 82 JSR $82E6 naechste Datei suchen
8706: 10 92 BPL $869A gefunden, ==>
Einsprung von $8698:
8708: A5 55 LDA $55 Anzahl 'Files scratched' fuer die Meldung
870A: 85 4D STA $4D als aktuelle Tracknummer merken
870C: A0 00 LDY #$00 Sektornummer =0
870E: A9 01 LDA #$01 01, Files scratched ,xx,00
8710: 4C 5D 80 JMP $805D
File verfolgen und Blocks freigeben
Einsprung von $86E8, $86FE, $9AE2:
8713: 20 46 B5 JSR $B546 1. Block des Files freigeben
8716: 20 CF 93 JSR $93CF Datei auf internem Lesekanal oeffnen
Einsprung von $8738:
8719: A9 00 LDA #$00 Pufferzeiger auf 0 setzen
871B: 20 22 94 JSR $9422
871E: 20 9B 90 JSR $909B T&S des Folgeblocks holen und merken
8721: 85 4D STA $4D
8723: 20 9B 90 JSR $909B (Byte aus Puffer holen)
8726: 85 4E STA $4E
8728: A5 4D LDA $4D existiert ein Folgeblock ?
872A: D0 06 BNE $8732 ja, ==>
872C: 20 15 B5 JSR $B515 BAM abspeichern
872F: 4C 9E 91 JMP $919E Lesekanal freigeben
Einsprung von $872A:
8732: 20 46 B5 JSR $B546 Folgeblock freigeben
8735: 20 AA 93 JSR $93AA Folgeblock lesen
8738: 4C 19 87 JMP $8719
File im Directory als geloescht kennzeichnen
Einsprung von $86AA, $9780, $B2C1:
873B: A0 00 LDY #$00 Filetyp = 0 (DEL) setzen
873D: 98 TYA
873E: 91 64 STA ($64),Y
8740: 20 9A 9D JSR $9D9A Puffer schreiben
8743: 4C ED 94 JMP $94ED Jobausfuehrung ueberwachen
Previous Page / Next Page