Cachepuffer auf Diskette schreiben
E: x: zu verwendender Jobspeicher
Einsprung von $FF6C:
BFE3: A9 A2 LDA #$A2 TRKWRT_DV (Cache schreiben)
BFE5: 9D 72 02 STA $0272,X
BFE8: A5 95 LDA $95 Track im Cache
BFEA: 85 4D STA $4D = aktueller Track
BFEC: A5 94 LDA $94 1. Sektornummer auf Track
BFEE: 85 4E STA $4E = aktuelle Sektornummer
BFF0: 86 6C STX $6C Jobnummer merken
BFF2: 8A TXA
BFF3: 20 88 95 JSR $9588 T&S an DC uebergeben
BFF6: A6 6C LDX $6C Jobnummer
BFF8: A5 30 LDA $30 Anzahl Schreibversuche
BFFA: 29 3F AND #$3F
BFFC: 85 28 STA $28 in Zaehler
BFFE: 20 1D C0 JSR $C01D Schreibjob ausfuehren
C001: 90 15 BCC $C018 kein Fehler, ==>
Einsprung von $C00A:
C003: 20 19 C0 JSR $C019 Schreibflag setzen, neuer Versuch
C006: 90 10 BCC $C018 kein Fehler, ==>
C008: C6 28 DEC $28 Naechster Versuch
C00A: D0 F7 BNE $C003
C00C: 24 81 BIT $81 Fehlermeldung unterdruecken (Burst) ?
C00E: 30 08 BMI $C018 ja, ==>
C010: 2C A8 02 BIT $02A8 Fehlermeldung unterdruecken (DOS-Flag) ?
C013: 30 03 BMI $C018 ja, ==>
C015: 4C 2F 95 JMP $952F Fehlermeldung ausgeben
Einsprung von $C001, $C006, $C00E, $C013:
C018: 60 RTS
Einsprung von $C003:
C019: A9 80 LDA #$80 Flag: 'Cache veraendert' setzen
C01B: 85 87 STA $87
Einsprung von $BFFE:
C01D: A5 4D LDA $4D aktuellen Track
C01F: 85 95 STA $95 als Track im Cachepuffer setzen
C021: A0 01 LDY #$01 1 Schreibversuch
C023: 4C 69 95 JMP $9569 Cache schreiben
Previous Page / Next Page