Hier das C301898. Das läuft aber hat den Fehler das wenn man auf 16Mhz umschaltet immer auf 8Mhz zurück gesprungen wird.
Ich denke, da müsste man mal durch die Gleichungen
C8S = RXW * C8S * RST
+ /(/XIO * /X8E2X * /XAS) * C8S * RST
+ XLDS * C8S * RST
+ D1 * /XIO * /X8E2X * /XAS * /RXW * XLDS * RST
CE = C8S * /CE * XLDS * RST
+ /XIO * /X8E2X * /XAS * RXW * C8S * /CE * RST
+ /(/XIO * /X8E2X * /XAS) * C8S * /CE * RST
+ /XIO * /X8E2X * /XAS * /RXW * /XLDS * D0 * RST
mal durchklabüstern. Ich denke, da steckt im Ergebnis der vorige Wert von sich selbst drin, also eine Art Mealy- oder Moore-Automat (Stichwort "Automatentheorie"), bei dem das Ausgangssignal auch von sich selbst (also vom eigene Zustand) abhängig ist.
Solche Automaten sind schwer zu durchschauen, vielleicht ist da ein Fehler drin. Dass ich mich mal damit beschäftigen musste, ist schon sehr lange her, daher erinnere ich mich nicht mehr, wie man das auseinander klabüstert, aber es gibt Fachliteratur dazu (Einstieg z.B. über Wikipedia), danach mal versuchen, eine Wahrheitstabelle zu erstellen, dann sieht man den Fehler vielleicht.
Was auch helfen dürfte, ist die Ausgänge eines funktionierenden Chips mit dem Oszi während der 16 Mhz Umschaltung zu beobachten, und mit den Fehlerhaften zu vergleichen. Dann sieht man vielleicht, bei welcher der beiden Gleichungen ein Term falsch ist.
Was ich auch nicht verstehe:
D0 = /CE
D1 = C8S
D0 und D1 sind doch Datenleitungen auf dem Datenbus der CPU, werden die von dem Chip gesteuert, das müssten doch eher Eingänge sein (um z.B. die 8/16 Mhz Umschaltung auszulösen)?