    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