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 |