Auch das wundert mich, da es beim PEEK doch eigentlich keinen Schreibzugriff gibt.
Schau dir doch mal den Adressbus zum Schreibzugriff an und schau im ROM-Listing nach, welche Befehle an der Stelle ausgeführt werden.
Auch das wundert mich, da es beim PEEK doch eigentlich keinen Schreibzugriff gibt.
Schau dir doch mal den Adressbus zum Schreibzugriff an und schau im ROM-Listing nach, welche Befehle an der Stelle ausgeführt werden.
Anscheinend passiert das bei LDA ($14),Y sobald er die Adresse aus $14 und $15 hat, aber bevor er den Inhalt von Y dazuaddiert. Das Ergebnis dieses Zugriffes wird ignoriert. Da Y hier 0 enthält macht er zwei Zugriffe auf dieselbe Adresse, benutzt wird nur das Ergebnis des zweiten.
Und genau das ist die Stelle wo ich mich falsch erinnert habe, es gibt nur einen Zugriff weil die Addition auf das Low-Byte der Adresse schon erfolgt während das High-Byte gelesen wird. Hätte mir auch gleich auffallen können, im Diagramm des Logicanalyzers sind die beiden Lesezugriffe viel zu weit auseinander um auf diese Erklärung passen zu können.
Bitte melde dich an, um diesen Link zu sehen. mit dem Befehl
(entfernt, falsch erinnert)
Wie im c64-peek zu sehen ist, geht der /ROML PIN zweimal auf LO, obwohl nur ein PEEK ausgeführt wurde. Meine Erwartung war, nur eine fallende Flanke zu sehen. Warum sieht man zwei Flanken?
Weil PEEK in BASIC mit einem LDA ($14),Y implementiert ist und das einen Dummy-Lesezugriff auf die Speicheradresse vor der Addition von Y durchführt. Da bei PEEK an der Stelle Y immer 0 ist siehst du zwei Lesezugriffe auf die gleiche Adresse, das Ergebnis des ersten wird verworfen.
kannst Du nochmal sagen, was man setzen muss, damit man ins RAM eines Carts schreiben kann?
Geht meines Wissens nur im Ultimax-Modus, also /GAME auf low und /EXROM auf high am Expansionsport.