Daten zwischen Cache und Puffer transferieren Einsprung von $C5A0: CEA4: 24 39 BIT $39 Modus von BUFMOV_DV CEA6: 50 03 BVC $CEAB b6=0, ==> CEA8: A9 80 LDA #$80 b6=1: Flag: b7=1: Cache wurde veraendert CEAA: 2C B $2C Einsprung von $CEA6: CEAB: A9 00 LDA #$00 Flag: b7=0: Cache wurde nicht veraendert CEAD: 85 87 STA $87 Flag setzen Einsprung von $C5A6: CEAF: A9 20 LDA #$20 b5=1: Transfer durchfuehren ? CEB1: 24 37 BIT $37 [Warum $37 ??? Der Modus steht doch in $39 !!! Dieser Fehler fuehrt dazu, dass normalerweise mit dem BUFMOV-Befehl gar keine Daten kopiert werden koennen. Da $37 aber sonst keine Bedeutung hat, kann man dort das b5 von Hand setzen und den Befehl dann trotzdem verwenden.] CEB3: D0 01 BNE $CEB6 ja, ==> CEB5: 60 RTS Einsprung von $CEB3: CEB6: A4 99 LDY $99 CEB8: B9 0B 00 LDA $000B,Y Sektornummer CEBB: 18 CLC CEBC: 65 8C ADC $8C + Cache-Start CEBE: 85 4B STA $4B = Zeiger in Cache CEC0: A0 00 LDY #$00 Lo-Bytes = 0 CEC2: 84 48 STY $48 Zeiger in DOS-Puffer CEC4: 84 4A STY $4A Zeiger in Cache CEC6: A6 83 LDX $83 Pufferadresse holen CEC8: BD F1 01 LDA $01F1,X CECB: 85 49 STA $49 CECD: A5 39 LDA $39 Modus von BUFMOV_DV CECF: 29 1F AND #$1F Anzahl der zu kopierenden Bloecke merken CED1: AA TAX CED2: 24 39 BIT $39 Modus von BUFMOV_DV: CED4: 10 03 BPL $CED9 b7=0, ==> CED6: 4C 3E D0 JMP $D03E b7=1: Daten vom Puffer in Cache kopieren Einsprung von $CED4: CED9: 4C 58 D5 JMP $D558 b7=0: Daten vom Cache in Puffer kopieren Previous Page / Next Page |