Ich habe den C64 von Nobody bekommen, sieht schon interessant aus mit all den Erweiterungen:
Bitte melde dich an, um diesen Anhang zu sehen.
Aber im Prinzip nichts kritisches, was den Betrieb von Kerberos verhindern würde. Habe also erstmal ein Testprogramm geschrieben, was den Flash-ID Test 100 mal durchlaufen lässt und zählt, wie oft der erfolgreich war. Lag bie Nobody's C64 so bei 70-90. Also erstmal meinen Logic Analyzer per Port Extender mit drangehangen und versucht das Problem zu analysieren. Hier ein Archivfoto während der Entwicklung mit meinem C128 wie das dann aussieht:
Bitte melde dich an, um diesen Anhang zu sehen.
Blöderweise lief mit Port Extender und Logic Analyzer der Flash-ID Test mit 100 immer durch. Sowas kenne ich als Bitte melde dich an, um diesen Link zu sehen. von der Softwareentwicklung
Vermutlich durch die höheren Kapazitäten auf den Signalleitungen ändert sich das Timing etwas und das Problem verschwindet dann. Also Kältespray herausgeholt und mal den CPLD auf dem Kerberos Interface gekühlt und siehe da, das Problem trat wieder auf, da man durch Kälte/Hitze die Signallaufzeiten auch ändern kann. So konnte ich dann mit dem Logic Analyzer sehen, wo das Problem war. So muß der Flash-Schreibzugriff aussehen:
Bitte melde dich an, um diesen Anhang zu sehen.
Wie gut zu sehen, gibt es einen schönen 80 ns Low Impuls für die flash cs Leitung, wenn auf die Adresse $8aaa schreibend zugegriffen wird, was ein Teil der Kommandosequenz ist, um die ID abzufragen. Aber manchmal gab es kein Low Impuls, hier beim Schreibzugriff auf $8555:
Bitte melde dich an, um diesen Anhang zu sehen.
Problem war, daß ich wegen Glitches auf der ROML-Leitung diese (und die ROMH und IO1/2) gefiltert hatte und durch zusätzliche Logik für den C128 der Samplezeitpunkt noch weiter vorne lag. Bei dem C64 von nobody war das zu weit vorn, da war die Leitung noch nicht low. Ich habe das im CPLD Programm geändert (für alle vier Leitungen) und jetzt funktioniert es stabil.
Werde das noch an meinen C128 testen und anderen C64 die hier herumstehen und dann als neue Version in Github committen. Sollte also jemand ähnliche Probleme haben (Flash Write Error usw.), dann melden, ich schicke dann ein neu programmiertes Kerberos Cartridge zum Austausch. Oder wer ein Xilinx Platform Cable, Bus Pirate o.ä. hat kann es auch selbst neu per JTAG programmieren. Die JTAG Anschlüsse sind links auf der Platine beschriftet.