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 |