Schreiben/Lesen mit Cache-Daten Einsprung von $C0FC: CF51: A4 99 LDY $99 CF53: B9 BC 01 LDA $01BC,Y Befindet sich die physikalische Spur im CF56: C5 95 CMP $95 Cachepuffer ? CF58: D0 09 BNE $CF63 nein, (Ende) ==> CF5A: A5 96 LDA $96 Handelt es sich um die richtige Seite ? CF5C: C5 97 CMP $97 CF5E: D0 03 BNE $CF63 nein, (Ende) ==> CF60: 4C 64 CF JMP $CF64 Ja ==> Einsprung von $CF58, $CF5E: CF63: 60 RTS Einsprung von $CF60: CF64: A6 83 LDX $83 Jobnummer CF66: BD F1 01 LDA $01F1,X Pufferadresse holen und als Copy-Zeiger CF69: 85 49 STA $49 merken CF6B: B5 9F LDA $9F,X Position des Blocks im Cache CF6D: 29 7F AND #$7F b7=0: Flag: 'T&S sind umgewandelt worden' CF6F: 18 CLC ausblenden CF70: 65 8C ADC $8C + Cacheanfang CF72: 85 4B STA $4B Als Zeiger in den Cachepuffer merken CF74: A0 00 LDY #$00 Am Pufferanfang beginnen CF76: 84 48 STY $48 CF78: 84 4A STY $4A CF7A: A2 01 LDX #$01 256 Bytes kopieren CF7C: 06 86 ASL $86 b6=1: keine Daten kopierenn ? CF7E: B0 18 BCS $CF98 ja, ==> CF80: 06 86 ASL $86 b65=01: Daten in Cache schreiben CF82: B0 06 BCS $CF8A ja, ==> CF84: 20 58 D5 JSR $D558 b65=00: Daten aus Cache in Puffer kopieren Einsprung von $CF96, $CF9A: CF87: 4C 99 C3 JMP $C399 Auftrag loeschen, alle Jobs pruefen Einsprung von $CF82: CF8A: AD FA 01 LDA $01FA Schreibschutz an ? CF8D: D0 14 BNE $CFA3 Ja, ==> CF8F: 20 3E D0 JSR $D03E Daten in Cache schreiben Einsprung von $CFA1: CF92: A9 80 LDA #$80 Flag fuer Cache veraendert setzen CF94: 85 87 STA $87 CF96: D0 EF BNE $CF87 immer ==> Einsprung von $CF7E: CF98: 06 86 ASL $86 b65=11: Schreibschutz abfragen CF9A: 90 EB BCC $CF87 nein, ==> CF9C: AD FA 01 LDA $01FA Schreibschutz an ? CF9F: D0 02 BNE $CFA3 ja, ==> CFA1: B0 EF BCS $CF92 immer ==> Einsprung von $CF8D, $CF9F: CFA3: 4C 9B C3 JMP $C39B Schreibschutz-Fehler Previous Page / Next Page |