Hallo Besucher, der Thread wurde 17k mal aufgerufen und enthält 60 Antworten

letzter Beitrag von Draco am

Neues von der Diagnoseplatine

  • Einerseits steht ja die Easyflash am Horizont, andererseits kann die schon wieder fast zuviel, und ist einigen vielleicht doch zu schade als Diagnoseplatine.


    Deshalb hab ich meine Ziele zurückgeschraubt und bin komplett vom Flash abgekommen. Im Anhang der Entwurf einer EPROM only Diagnoseplatine. Vier verschiedene Testmodule/programme sind möglich, und die Platine ist nun abschaltbar. Dafür der DIP Switch.


    Die Hardware habe ich leicht geändert, so dass die HI und LO ROM Bank unterschiedlich sind. Das hat einige Konsequenzen :)


    Die Testprogramme müssen nun noch neu geschrieben bzw angepasst werden. Ich stelle mir das so vor: Im HI ROM wird zuerst per Ultimax Modus ein RAM Test der Zeropage und des Stack sowie RAM bis $1000 durchgeführt. Ist das erfolgreich, wird eine Umschaltroutine ins RAM kopiert und ausgeführt, mit der dann herkömmliche Diagnose ROMs im LO ROM Bereich gestartet werden.


    Ich hab noch vor die Ausgabe des Ultimax RAM Test auf ne LED Reihe zu legen :) Ist ja nur optional und erzeugt damit keine Kosten.


    Mal Bilder dazu:

  • also auch wenn die CPU etc defekt ist?


    Da hat sich nichts verändert. Also es kann noch testen, wenn andere Module schon versagen und mit schwarzem Bildschirm hängenbleiben, falls dafür defektes Kernal ROM oder defektes RAM verantwortlich sind. Wobei es bei defektem RAM darauf ankommt, was genau defekt ist.


    Das mit der defekten CPU ist aber ne harte Nuss, da muss ich noch was überlegen. Geht so noch nicht :blah!

  • Ich hätte Interesse an dieser neuen Version, auch wenn mir das 27512 nicht so tolle schmeckt: 2* 27256 wäre mir lieber - ist meist einfacher zu programmieren... (am C64 !!)


    Oliver W.


    Da hast recht. Aber dann steck einfach einen 256er rein, würde auch funktionieren, dann bleiben aber nur noch zwei
    Testprogramme zur Auswahl. Kaufst dafür dann eben zwei Diagnoseplatinen ;)

  • So ich hatte noch eine Eingebung, und einige LEDs hinzugefügt :)


    Eine Idee habe ich von skoe "geklaut", die Verwendung des '175 Bausteins. Der ist sehr praktisch, weil er im Einschaltzustand einen Inverter für /EXROM spart :)


    Eine weitere "Idee" habe ich vom alten Action Replay übernommen. Hier werden die Registerwerte sowohl beim Lesen als auch Schreiben übernommen. Vereinfacht meine Schaltung und ist hier kein Nachteil, weil nur spezielle Testsoftware zum Einsatz kommt.


    8 LEDs sind zur Anzeige von Speicherbitfehlern vorgesehen, falls der C64 so kaputt ist, dass man kein Bild mehr erzeugen kann.


    Zwei weitere LEDs zeigen den Status von GAME und EXROM an, und man kann daran sehen, in welcher Testphase das Modul gerade ist. Also ob in der frühen Ultimax Phase mit Speichertest von $0000-$=0FFF, oder in der zweiten Phase mit herkömmlichen Testmodulen.


    Die letzten zwei LEDs sind noch zur freien Verfügung.


    Was ich UNBEDINGT noch hinzufügen will, sind LEDs, die den Takt auf DOTCLOCK und Phi2 anzeigen, da muss ich mir aber noch überlegen wie ich das machen kann. Fehlender Takt ist immerhin auch ein häufiger Fehler ...


    Evtl. noch eine LED Ampel zur Anzeige der 5V Versorgung mit Anzeige für zu niedrig und zu hoch!


    Ist ja noch etwas Platz auf dem Modul :)

  • Was ich UNBEDINGT noch hinzufügen will, sind LEDs, die den Takt auf DOTCLOCK und Phi2 anzeigen, da muss ich mir aber noch überlegen wie ich das machen kann. Fehlender Takt ist immerhin auch ein häufiger Fehler ...


    Es gibt doch IIRC zwei retriggerbare Monoflops als einzelnen 74xx-Baustein - vom jeweiligen Taktsignal getriggert (falls das noch in den Specs liegt) würden die LEDs angeschaltet bleiben so lange der Takt vorhanden ist bzw. nach wählbar kurzer Zeit ausgehen wenn nicht.

  • Es gibt doch IIRC zwei retriggerbare Monoflops als einzelnen 74xx-Baustein - vom jeweiligen Taktsignal getriggert (falls das noch in den Specs liegt) würden die LEDs angeschaltet bleiben so lange der Takt vorhanden ist bzw. nach wählbar kurzer Zeit ausgehen wenn nicht.


    Gute Idee! Das wäre der '123 :) Ich werde das mal prüfen ob der einen 8MHz Trigger mitmacht dann kann ich das ja mal auf Lochraster aufbauen und testen :)

  • Hallo x1541,

    Eine weitere "Idee" habe ich vom alten Action Replay übernommen. Hier werden die Registerwerte sowohl beim Lesen als auch Schreiben übernommen.

    Ob das nun eine so gute "Idee" ist? Welche Daten sollen beim Lesen in das Register V2 geschrieben werden? Das dürfte nur Müll sein, der mit der richtigen Trefferquote den C64 "abstürzen" läßt, weil falsche Daten für /GAME und /EXROM ausgegeben werden.

    Ich werde das mal prüfen ob der einen 8MHz Trigger mitmacht

    Wenn nicht, kann man DotClk auch noch über z.B. einen Zähler herunterteilen.


    Gruß Martin

  • Ob das nun eine so gute "Idee" ist? Welche Daten sollen beim Lesen in das Register V2 geschrieben werden? Das dürfte nur Müll sein, der mit der richtigen Trefferquote den C64 "abstürzen" läßt, weil falsche Daten für /GAME und /EXROM ausgegeben werden.


    Klar ist das nur Müll. Da das Modul im Normalbetrieb eh nicht drinsteckt, ist das aber egal. Bei der Diagnosesoftware hab ich es ja im Griff, ob ich durch Lesen einen Absturz verursache oder nicht.

  • Hallo x1541,

    Klar ist das nur Müll. Da das Modul im Normalbetrieb eh nicht drinsteckt, ist das aber egal.

    Ach ja, was passiert, wenn das /IO1-Signal falsch auskodiert wird? Die meisten Zugriff dürften lesend sein. Dann ist die Wahrscheinlichkeit, daß der Müll geschrieben wird doch sehr hoch, oder?


    Gruß Martin <- der dachte gerade ein Diagnose-Modul sollte auch mit solchen Fehler umgehen können.

  • Ach ja, was passiert, wenn das /IO1-Signal falsch auskodiert wird? Die meisten Zugriff dürften lesend sein. Dann ist die Wahrscheinlichkeit, daß der Müll geschrieben wird doch sehr hoch, oder?


    Gruß Martin <- der dachte gerade ein Diagnose-Modul sollte auch mit solchen Fehler umgehen können.



    Nunja, wo fängt man an, wo hört man auf? Ich könnte R/W einbeziehen und evtl beide Register in einen I/O Bereich legen, so dass man bei einem defekt auf den anderen umjumpern kann. Aber wenn die PLA selbst hinüber ist, hilft das auch nix mehr, alle I/O Chipselects egal ob intern oder extern gehen auf einen einzigen PLA Pin zurück ...

  • Im Prinzip schon. Aber du mußt einen 2. Cevi öffnen und du läufst Gefahr, diesen auch zu Zerstören. Einige Bauteile sind Empfindlich gegen Berührung, du kannst Pins Verbiegen oder Abbrechen. Schlimmer noch, die Teile könnten einen Kurzschluß haben, und so den 2. Rechner bzw. das Intakte teil Zerstören. Das kann man mit eine, IC Diagnose Platine Verhindern.