Hallo Besucher, der Thread wurde 276k mal aufgerufen und enthält 1762 Antworten

letzter Beitrag von kinzi am

Bedarf für eine neue C64-Diagnose Platine?

  • Ich glaube allerdings ein Thread-Split ist hier jetzt angesagt da wir zu Off-Topic sind. Ansonsten gerne per PM weiter ..

    Ich hab da schon mal eine paar Fragen gestellt.
    C64 Studio - Entwicklungsumgebung

  • Dabei habe ich mich eingehend mit der C64-DIAGNOSTIC befasst. Da ich bisher ziemlich wenig Ahnung von der C64-Hardware hatte, war das eine willkommene Gelegenheit, mich ein wenig einzuarbeiten. Ich habe inzwischen ein relozierbares Assembler-File erstellt und schon mal etwas optimiert um Platz für zukünftige Erweiterungen zu schaffen. Im Moment habe ich erst mal 450 Bytes freigeschaufelt (ohne irgendwelche Funktionen rauszuschmeissen). Da ist aber noch Potential für noch mal 600-1000 Bytes (der gsammte RAM-Test ist doppelt vorhanden).

    :thumbsup:

    So könnte man zb defekte Kernal ROMs und Basics über die Checksumme diagnostizieren.

    bitte auch die eigene checksumme anzeigen. so kann man einfach die version feststellen.


    um einen später auftretenden bit defekt im diag-eprom selbst festzustellen.


    uns ist früher schonmal passiert, beim testen der platinen, das uns fehler angezeigt wurden
    und wir mühsam den fehler gesucht haben und keinen finden konnten :(
    dann stellte sich heraus, dass es am diag eprom lag, wo ein bit sich plötzlich verändert hat.


    2. Optischer VIC Test um defekte VIC's mit Spritefehlern etc. zu Diagnostizieren. Der SID Test ist ja auch rein akustischer Natur, bis auf den Paddle Check kann via Hardware nichts diagnostiziert werden. Das gleiche gilt für den VIC.

    :thumbsup:

    die ich parallel für den PET mache

    PET? :) auch diag?


    gruß
    helmut

  • bitte auch die eigene checksumme anzeigen. so kann man einfach die version feststellen.

    Inzwischen ist Platz dafür vorhanden. Vorher ging das gar nicht. Gibt es ein Standardverfahren für die Checksummen-Berechnung, das in solchen Fällen oder bei anderen Projekten eingesetzt wird (Modulo 65536?). Dann kann ich das schon mal implementieren.


    PET? auch diag?

    Ich hatte Anfang das Jahres damit begonnen ein eigenes Diag-Programm für den PET zu schrieben (4KB groß im $F000-ROM). Das war schon soweit, dass es den Speicher, die ROMs, die Interrups und die Tastatur testet. PIA/VIA, Userport- und IEEE-Tests sollten noch rein (mit entsprechenden Dongles), aber die passten erst mal nicht in ein 4K EPROM.
    Weiter war ich noch nicht gekommen (aus Zeitgründen). Das war auch ein Teil meiner Motivation, mir C64-Diag anzuschauen. Um zu verstehen, wie die Tests dort gemacht werden. Meine Speichertestroutinen für den PET hatte ich aus dem ROM der 4040 Floppy geklaut. :D

  • bitte auch die eigene checksumme anzeigen. so kann man einfach die version feststellen.
    um einen später auftretenden bit defekt im diag-eprom selbst festzustellen.


    uns ist früher schonmal passiert, beim testen der platinen, das uns fehler angezeigt wurden
    und wir mühsam den fehler gesucht haben und keinen finden konnten :(
    dann stellte sich heraus, dass es am diag eprom lag, wo ein bit sich plötzlich verändert hat.

    Og, das ist ja ganz fies sowas...da hattet ihr sicherlich stunden umsonst vergeudet :S


    Also, super sache detlef mit den ganzen ergänzung im diagrom. Gerade was diverse werte ausgaben angeht usw. ...top :thumbsup:

  • Find ich super, dass Ihr die Entwicklung des Check64 so vorantreibt :thumbup:


    Bitte den C128 (D/DCR) nicht vergessen, da gibt es sicherlich auch diverse Verbesserungsmöglichkeiten.
    Eventuell ist es auch möglich ein 1571-Diagnose einzubauen.
    So das eine interne Floppy auch gleich geprüft werden kann, oder wenigstens nicht stört.


    Hoffe Ihr bietet das neue Eprom zum Erwerb an und es ist kompatibel zu "älteren" Check64.


    Gruss C=Mac.

  • Bitte den C128 (D/DCR) nicht vergessen, da gibt es sicherlich auch diverse Verbesserungsmöglichkeiten.

    Ich beginne gerade erst, die C64 Hardware zu verstehen. :D
    Ich helfe gerne beim coden in Assembler, aber das Know-how müsste jemand beisteuern.

  • Og, das ist ja ganz fies sowas...da hattet ihr sicherlich stunden umsonst vergeudet

    ja und das nicht nur einmal über die jahre.


    ich kann mich über eine neue lieferung, von c64 boards, von commodore erinnern,
    da hatte ein mitarbeiter getobt, das die letzten kartons, der lieferung, nur defekte platinen beinhaltet.
    und man wollte sie an commodore zurückschicken.


    ihm ist aber mittendrin, beim testen, nur das diag eprom kaputt gegangen :(


    deswegen ist eine prüfsumme sehr wichtig. man kann sofort erkennen ob sie noch stimmt.


    wir hatten dann eine eigene diag version.


    gruß
    helmut

  • Ich hatte Anfang das Jahres damit begonnen ein eigenes Diag-Programm für den PET zu schrieben

    da hatten wir auch eine eigene version. ich hoffe das es auf den hunderten disketten ist,
    welche ich toast_r gegeben habe zum sichern / retten.


    hast du die diag rom routinen von commodore für die cbm geräte?
    da wurde die diag-box über einen ic-clip auf die cpu gesteckt und nach dem einschalten
    wieder abgezogen. so eine kombination ist gut. weil man die cpu oder die roms nicht heruasnehmen muss.


    gruß
    helmut

  • hast du die diag rom routinen von commodore für die cbm geräte?
    da wurde die diag-box über einen ic-clip auf die cpu gesteckt und nach dem einschalten
    wieder abgezogen. so eine kombination ist gut. weil man die cpu oder die roms nicht heruasnehmen muss.

    Ne, das kenne ich nicht. Hast du mal einen Link dazu oder sonstige Infos?

  • bitte @Toast_r mal fragen. er hat so ein diag set.


    auf meiner proxa7000 diskette ist auch ein diag für 8296 vorhanden.


    bitte ihn mal fragen ob er es dir senden kann.


    es gibt auch irgendwo, auf englischen seiten, meine proxa7000, diskette zum herunterladen.
    da sind die verschiedenen pet, cbm betriebssysteme und auch die diag routine drauf.


    so habe ich es schon, ende der 70er, am pet gemacht:
    ich habe mit einem 32byte prom, den reset (irq, nmi) vektor inhalt verändert.


    ich habe es damals auch ohne prom, ganz einfach gemacht:
    wenn du ein rom in einem anderen bereich hast oder etwas vorher geladen hast. (ich mit datasette, floppy gab es ja noch nicht)
    musst du nur dafür sorgen, mit einem taster, das wenn der cs für $Fxxx low ist, das vorhandene rom abgeschaltet wird
    und im ganzen bereich nur das eine byte zu deine routine steht.


    z.b. mit widerständen für high und das low über dioden vom cs nehmen. "1001 1111" = $9F
    so steht im ganzen $F800 (F000) bis $FFFF bereich ja $9F. mit einem tristate treiber ist es etwas sauberer gelöst.
    somit spring nach reset oder irg oder nmi die cpu auf $9F9F und da ist deine routine.
    die darauf wartet das die taste losgelassen wird und im $Fxxx bereich wieder die original rom daten stehen.
    so habe ich sehr viele sachen am pet, mit dem tim-monitor, mühsam untersucht. es gab ja noch nichts anderes.


    inzwischen würde ich einfach ein größeres eprom nehmen. z.b. mit 32KB.
    so hast du in den bereichen wo normal keine roms sind, für deinen test, genug platz.
    dann stören da auch keine roms. du musst nur im reset vektor, die high bits, durch dein parallel eingeblendetes eprom,
    im vektor bereich, etwas verbiegen. auf den bereich (z.b. $9000 - $afff) wo du selbst deine routine hast.
    nach dem ramtest kopierst du deine routine, für einen dauertest, ins ram.
    nun blendest du ein, das die diag-box entnommen werden kann.


    gruß
    helmut.

  • Ich habe mir jetzt auch mal den DEAD TEST angeschaut (disassembliert und versucht zu verstehen).
    Obwohl man dort einige Routinen aus dem C64-Diag wiederfindet, ist der DEAD TEST im Vergleich zu C64-Diag absolut grausam programmiert. Es gibt nur wenige Subroutinenen, der größte Teil ist unübersichtlicher Spagetticode und wildes Hin- und Hergespringe.


    Kann mir jemand auf die Schnelle sagen, wie ich in VICE ein Ultimax-ROM lade? Da steht zwar was in der Anleitung, aber ich habe es nicht verstanden.

  • Ich versuche gerade C64-Diag testweise auf Ultimax umuistellen (Adresseraum von $E000 bis $FFFF mit Reset-Vektoren am Ende). Wenn ich das in VICE teste, bekomme ich das zu sehen:


    Das Programm lebt. Ich sehe wie der SCREEN und COLOR RAM Test über den Bildschirm läuft. Aber es werden keine Zeichen angezeigt. Entweder ich habe noch irgendeine indirekte Adressierung im Programm übersehen oder irgendwas wird in der Hardware nicht richtig initialisiert.
    Hat jemand eine Idee, welche Initialisierung fehlen könnte, wenn das Bild so assieht?


    Meine erste Vermutung war, dass der Kernal noch irgendeine Initialisierungen macht, bevor er eine EPROM auf $8000 aufruft. Bei Ultimax würde die dann fehlen. Aber ich habe im Kernel nachgesehen. Da wird nichts initialisiert.


    EDIT: Anscheinend liegt es an VICE. Wenn ich aus DEATH TEST ein Ultimax CRT-File mache (mit dem Tool CARTCONV.EXE), dann sieht das ähnlich aus. Ich werde heuite Abend mit echter Hardware testen.

  • Ich versuche gerade C64-Diag testweise auf Ultimax umuistellen
    Das Programm lebt. Ich sehe wie der SCREEN und COLOR RAM Test über den Bildschirm läuft. Aber es werden keine Zeichen angezeigt.

    Im Ultimax-Modus wird das Char-ROM nicht angesprochen, d.h. Dein Modul muss auch einen eigenen Zeichensatz enthalten.

  • EDIT: Anscheinend liegt es an VICE. Wenn ich aus DEATH TEST ein Ultimax CRT-File mache (mit dem Tool CARTCONV.EXE), dann sieht das ähnlich aus. Ich werde heuite Abend mit echter Hardware testen.

    Der DEAD TEST funktioniert doch in VICE. Ich hatte nur nicht lange genug gewartet. Der VIC wird erst nach dem RAM-Test initialisiert.

    Im Ultimax-Modus wird das Char-ROM nicht angesprochen, d.h. Dein Modul muss auch einen eigenen Zeichensatz enthalten.

    Und man kann sich den Zeichensatz auch nicht aus dem ROM holen und irgendwo ins RAM kopieren?
    Der Zeichensatz würde ja soviel Speicher benötigen, dass man C64-Diag im 8K Ultimax-Mode vergessen kann. Dann müsste man direkt auf 16K gehen.

  • Du musst nur die ganzen Assembler-Routinen umstellen. Der holt sich die Screen-Daten immer noch aus $8000-$9fff, und nicht von $E000-$FFFF


    Ich habe das wie gesagt testweise schon mal Programmiert und mit der Änderung des RESET-Vectors auf START läuft das Ding und spuckt alle Texte aus, ranzt nur später beim PLA Test ab, den hatte ich noch nicht umgeschrieben.

  • Du musst nur die ganzen Assembler-Routinen umstellen. Der holt sich die Screen-Daten immer noch aus $8000-$9fff, und nicht von $E000-$FFFF

    Das habe ich eigentlich gemacht. Alle Tabellen und sonstige indirekte Verweise sind durch Labels ersetzt. Sonst könnte ich den Assemblercode ja auch nicht beliebig verändern und Code einfügen und entfernen.


    Aber wenn ich für den Ultimate-Mode einen Zeichensatz brauche, dann muss der zusätzlich rein - wenn ich Mac Bacon richtig verstanden habe. Im Dead-Test sind das 64 Zeichen * 8 Byte. Das ist ne Menge Speicher. :(


    Mir ist im Moment auch nicht klar, ob man die CHECK64-Platine überhaupt auf 16K-Ultimate einstellen kann.

  • Mir ist im Moment auch nicht klar, ob man die CHECK64-Platine überhaupt auf 16K-Ultimate einstellen kann.

    Im jetzigen Zustand kannst Du 4 Bänke a 8KB umschalten. 16K sollte auch klappen. Kannst dann eben nur noch 3 Diags draufpacken.
    Wüsste jetzt nicht, warum das nicht gehen soll.

  • Im jetzigen Zustand kannst Du 4 Bänke a 8KB umschalten. 16K sollte auch klappen. Kannst dann eben nur noch 3 Diags draufpacken.
    Wüsste jetzt nicht, warum das nicht gehen soll.

    Also laut Schaltplan vom CHECK64 sind nur die Adressleitungen A0 bis A12 verbunden. Darüber können nur max. 8 KB adressiert werden. Mehr ist per Software nicht machbar.


    Das Thema wurde ja ziemlich am Anfang dieses Threads schonmal intensiv diskutiert. Hier gab es einen Vorschlag in dieser Richtung:
    Bedarf für eine neue C64-Diagnose Platine?
    Mit diesen beiden Dioden und einer Verbindung zwischen A13 des EPROMs und ROML hätte es wahrscheinlich funktioniert (aber so ganz habe ich die Bank-Switching-Logik vom C64 noch nicht verstanden).


    In der vorliegenden Form macht das Board genau das, wofür es designt wurde: vier 8 KB-Bänke per Dip-Switch umschalten. Mehr halt leider nicht. Es ist auch nicht möglich per Software vom DEAD TEST auf C64-Diag umzuschalten (wie das hier vorgeschlagen wurde).


  • Mensch, habe den Schaltplan schon so lange nicht mehr gesehen. :D Ja, da kann man nichts machen.
    Ein Re-Design habe ich für die nächste Zeit erst mal nicht geplant. Wir müssen also mit dem auskommen, was wir zur Verfügung haben.