HAL 6500 Nachbau

  • Now not to overload the project file here but would be great to have the HAL PCG 6500 reverse engineered … so you can have programmable character rom…the supersoft hr boards also have programmable char roms but you cannot play some of the HAL games without extensive re coding. Indeed I managed to seriously patch the code to port over the Pac-Man games with a custom fixed char rom but ran out of room for all animations. The space invaders was too complicated to pack into a fixed rom.


    Video can be found on my Flickr page if you have not seen it before (in the Hal PCG 6500 album) 😀😀


    https://www.flickr.com/photos/138413235@N02/

  • Now not to overload the project file here but would be great to have the HAL PCG 6500 reverse engineered

    New Thread, we need pics of the upper and lower side of the board. And a way to check for connections made under the ics. What does work well is making a list of the pins needed to check and someone with access to the original ohms out the connections on the board. Its a lot of work but isnt THAT slow either as you can just "brush along" the ics and notice the beeps.

  • That blog has even more entries, like describing a mod how to enable/disable the hal without removing it. The other mods seem factory (also on your pics). they are to correctly connect the pulse shaping r and c on the ls123, maybe it was originally designed with a different chip. or it was a layout blorp.

  • Success! The (schematics of the) HAL PCG 6500 is fully reverse engineered!



    Using the trustly "draw the connection" method using the pics i found (backside from the blog, front from your pics) and some of the infos from the blog (though they contained errors that lead me on some false paths*) i managed to get all the connections, including the switch-mod.




    * for example he assumed one of the monostable multivibrators was not used even though otherwise fully populated with the neccessary c and r. Turns out they are chained together so that the first one adds a delay and the second shapes the pulse for the write enable signal.

  • More sheet metal work (in progress xD)



    And yes, it was intended to be mounted with the rear in the air: Probably also to be able to have it stand alone and still looking good.

    Jetzt schlägst du dem Fass den Boden endgültig aus!

    ABSOLUT REFERENZGENIAL!!! Ich bin dabei- aber sowas von! :)


    OT:Was mir da noch einfällt: Ein Nachbau des Sprachsynthesizers 4010 hätte auch Charme... 8o

    Commodore CBM 4010 Voice Module : A talking PET?!

    https://www.youtube.com/watch?v=JU-XyAHXYOM

    3 Mal editiert, zuletzt von CBM_Ba ()

  • OT:Was mir da noch einfällt: Ein Nachbau des Sprachsynthesizers 4010 hätte auch Charme... 8o

    Haha ja hätte was, aber der vergossene Chip macht's eher schwer.

    Was mir noch im Kopf spukt für "mal ein Projekt": Eventide THS224! Ein Echtzeit-Spektrumanalyzer fürn 9Zoll Pet.

    https://www.eventideaudio.com/…10-outside-the-black-box/

    Layout da, IC liste da (wenn man googled), Ausschnitt aus Schema da. Den Rest müsste man sich zusammenreinem, grade was die Werte der Passives um die JFETs herum angeht aus denen die 1/3 octave filter aufgebaut sind (das könnte einer mit Ahnung sicher ausrechnen).



  • Shape of the case is not final (found some more pics from auctions, i got the basic width to height quite spot on, but it seems the side angle is a bit steeper then the pet monitor) , just made the frontplate design in affinity designer based and slapped it on for a quick look.

    Probably also do a printable case version for a prototype/cheap alternative.

  • PCB and parts ordered :) I also designed a little adapter to connect it to 6540 rom sockets using 28pin dip to ribbon cable thingies (as my 2001 uses the 6540). Which also holds connectors for a switch, a dual led and a single AND gate to easily and cleanly enable/disable the card using a switch.

  • 3D-Druck Variante des Gehäuses: Muss geteilt werden, um auf den Prusa zu passen. Aber ich denke das wird gut gehen. Soll eh stehend gedruckt werden, dann ist der Seam parallel zu den Layerlines. Alles zu schrauben. Hat beim Neo Geo Gehäuse gut geklappt.



    Ich hab mich auch mal etwas in die Programmierung eingelesen. Das passt zur Logik wie ich sie umgesetzt habe. Mit etwas (viel.. ganz viel) Glück köööönte es kommendes Wochenende soweit sein. Ist jedenfalls so ein bissl mein Ziel. Karte aufbauen und am 2001 testen. Mal sehen wie weit ich komme.

  • Noch nicht ganz am Ziel, aber schon mal extrem weiter:






    das Problem:


    die Daten werden nicht sauber geschrieben. (hier sollte 255 in den kompletten Speicher geschrieben werden, wie man sieht gibt es nur wenige Zeichenpositionen, die sauber sind.


    das Gros der Fehler is fix (also bei jedem Schreiben identisch, aber nicht überall:

      


    Da ich 6 Ramriegel da habe hab ich mal"wild" getauscht (muss die Schaltung nochmal anschauen welches Modul da passend liegt). Ein bisschen änderte es sich.


    Lesen ist rock solid, die Fehler sind rein bein schreiben

    Die ROM-Anteile sind rock solid

    Disablen geht (dann kommen nur ROM-Inhalte)

    Der Sound Part geht (aber die Range des Potis ist etwas knapp, unten ein bisschen dann ist man schon auf 100%)


    Was kanns also sein? Im groben denke ich nicht, dass Kabellänge (1meter ROM-Verlängerung, etwas weniger Userport) das Problem ist. ROM geht ja, Sound, schreiben (bis auf die Fehler).

    Entweder sind die Ebay-Rams defekt -> dazu werde ich morgen mal den Arduino rauskramen und einen tester bauen.

    Was ich aber viel eher denke, und schon etwas in die Richtung fürchtete:


    Der Oneshot generiert dem R/W Impuls wenn PA5 gesetzt wird. Mit einer Verzögerung wird eine Zeit lang Schreiben freigegeben.

    Die Werte der Timing-R kann ich aus den Bildern ablesen. Beide identisch. (1K). Die C kann ich nicht erkennen. Der japanische Blogger nennt EINEN wert (4700pF) missinterpretiert die Schaltung aber, meint Ausgang 13 ginge zum Ram und der zweite Oneshot wird nicht genutzt. Jetzt kanns sein dass da der Wert einfach nicht stimmt. Wenn die Rams okay scheinen im Arduino werde ich da einfach mal was parallelklemmen und hoffen.

    Evtl kann einer mit mehr Erfahrung aber auch Timings hiervon ableiten (Original Manual):

    Die Daten werden via Basic gepoked, erst die Daten in einen 2 LS75 (das scheint zu passen), dann die ersten Adressbits in einen weiteren LS75 Latch, dann mit PA5 werden die letzten Adressen an 3 LS157 angelegt (0-4 aus dem aktuellen Befehl, 5-8 aus dem Latch) und dann alles ins Ram geschrieben.


    Da kann falsches Timing schon massiv reinfunken.


    Es bleibt also spannend.

  • So... Rams sind mit dem Arduino Mega (ein Wichelgeschenk letztes Weihnachten!) getestet und liefen da 200 Zyklen alle Adressen jeweils alle möglichen Testpattern ab. Alle 6 IC die ich habe sind mit diesem Test IO.


    Wenns also nix anderes wildes ist, dann sinds die doofen Timings. Hab letzte Nacht noch rumgerechnet und Datenblätter geschaut.

    Die jetzigen C sollten rechnerisch (muss das noch scopen) beide grob 2000ns Impulse ergeben.


    Heisst also sobald PA5 high geht (bzw ca 15ns (Inverter) und 44ns (erster Oneshot)) wird 2000ns gewartet und dann 2000ns RW auf low gezogen.

    Blöderweise SOLLTE das IO sein:




    Ich hab jetzt auch mal den Blog-Author kontaktiert.

  • So. Progress.

    Der Blogger hat mir superschnell geantwortet! Er hat die Karte nicht mehr (Reparaturauftrag), hat aber in seinen Unterlagen damals 4700pF explizit für beide Kondensatoren aufgeschrieben. Hat er jetzt auch auf seinem Blog geupdated. Tolle Sache. Hat mich sehr gefreut.


    Ich hab dann noch etwas rumprobiert und bin momentan der Überzeugung es liegt an der VIA selbst. Die hatte ich ja nie getestet.

    Ich hab noch ein paar neue EBAY Rockwell Vias, da hab ich mal einige probiert -> die produzieren in allen Zeichen Fehler. Nach den wiedereinsetzen war sogar auf der alten VIA weniger Fehler. Ich hab nochmal den (neuen) DualWipe Sockel kontrolliert und nochmal alle VIA-Pins gesäubert, aber das brachte dann keine weitere Verbesserung. Ergo: morgen wandert die VIA in eine meiner 1541 zum testen, und deren VIA in den Pet.


    Problem gestern Problem heute nach Wiedereinsetzen der Original VIA

     


    Der Rest... das ist jetzt die erste Schaltung die ich meine wirklich von A bis Z verstanden zu haben, und die ist schlüssig mit dem Code der benutzt wird. Da ist ja auch nix außer dem Speicher, ein paar Latches und den Umschaltern RAM/ROM.

  • Also die VIA scheint IO. Hab ein Programm geschrieben dass alle Bits einzeln setzt und das ist alles IO zu messen.


    Was komisch ist, einmal "angestoßen" oszilliert der Oneshot weiter, auch wenn das Programm beendet ist.

    Generell ist auch viel Noise auf den Leitungen. Das ist auch am ihn triggernden Inverter zu messen

    Dessen Ausgang (IC3 Pin6) zeigt auch im "Leerlauf" nach dem Programmm starke negativpulse, obwohl der Eingang statisch ist.

    Diesen Puls kann man auch an Pin 11 messen (!) obwohl die völlig unabhängig sind. Leicht abgeschwächt auch auf Pin13.

    Von diesem LS04 liegen 2 eingänge brach, die hab ich schon auf +5V gezogen.

    Morgen werde ich diesen Chips auch mal Bypasskondensatoren verpassen, im Originaldesign sind die nur an den Rams und Roms.


  • YAY


    ich hatte schon die Champusflasche in der Hand, dann nochmal mit 0 getestet... Champus wieder weggestellt.

    nay


    links unten ist mal da mal nicht, rechts das muster ist recht stabil (wenngleich nicht vollständig).



    was war die "Lösung" (bis hier hin):

    GND


    hatt in den (im original nicht bestückten) Footprint für einen weiteren Kondensator (sowas wie ein Bulk cap) zum leichteren messen einen GND-Pin gesetzt. Und den einfach mal aus Frust und last effort mit einem groundlead verbunden -> sofort ging alles weiß.


    Übrigens auch mit 470pF und 470pf-4700pf Mischbestückung (kurzer delay, langer impuls).


    Das System muss Probleme haben einige Adressen zu übertragen. Wie gesagt die Leitungen von der VIA haben einen ENORMEN noisefloor. Daher wohl auch alles 1: okay, alles 8: problem im Moment.

    Jemand ne Idee wie man das in den Griff bekommt? ein paar pF nach GND auf den Datenleitungen die von der Via kommen? Ich hab da leider kein Wissen in diese Richtung. Oder sowas wie schwache Pulldowns? 10K oder so?



    Ich will nochmal versuchen das Kabel nicht komplett durchgehen als Flachkabel zu nehmen. Das Original war so ein Kabel wo immer 10cm Einzeladern und dann wieder 10cm Flachband sind:



    Generell ist dann natürlich auch die Frage wie man die GND-Anbindung verbessern kann. Momentan ist läuft ja alles nur über den Sockel des Charroms.

  • Ich habe den Thread nur oberflächlich verfolgt.


    Jemand ne Idee wie man das in den Griff bekommt?

    Aber ehrlich, wie soll man dir helfen?

    Es gibt keine kompletten Schaltplan. Der in Post #7 ist unleserlich.

    Layout und Messergebnisse sind auch nicht verfügbar um mal eine Einschätzung machen zu können was du meinst.

    "ENORMEN noisefloor" ist leider nicht anständig greifbar.


    VCC und GND kommen nur vom CharROM-Sockel auf dem Motherboard? Und das CharROM ist über ein ca. 1m Kabel mit dem Motherboard verbunden? Dann wundert mich mehr, das die normalen Zeichen anständig dargestellt werden als das die Schaltung funktioniert.


    Ich würde unabhängig von allen Fehlern zum testen die Kabel so kurz wie möglich halten.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Na daran können wir arbeiten.


    Plan

    pcg6500.pdf


    Adapter auf 6540

    6540_adapter.pdf


    Layout

    pcg6500-F_Cu.pdf


    Hinweis: in den Plänen hab ich bereits die ungenutzten CS-Leitungen noch als +5V/GND-Leitungen mitbenutzt. Im Original und der aktuellen Hardware läuft wirklich alles über den VCC und GND Pin des Charroms. Die VIA-Leitungen haben keine extra GND-Verbindung.


    Messungen mach ich morgen mal. War bislang nur ein schnelles Oszi-Dranhalten aber da waren es schon hundert mV VPP die der Nullpegel (VIA auf Ausgang, 0 als Wert ausgeben rauschte.


    Ich werde auch mal ein kurzes VIA-Kabel bauen. Das 1m Charrom Kabel scheint ja gut zu laufen, darüber wird nur gelesen und das funktioniert einwandfrei.

  • Messungen mach ich morgen mal. War bislang nur ein schnelles Oszi-Dranhalten aber da waren es schon hundert mV VPP die der Nullpegel (VIA auf Ausgang, 0 als Wert ausgeben rauschte.

    Dann dokumentier bitte wie du gemessen hast. Am besten mit Bildern.

    Du weisst doch: Wer viel misst, misst Mist. ;)


    darüber wird nur gelesen und das funktioniert einwandfrei.

    Die Argumentation macht Sinn.


    die ungenutzten CS-Leitungen noch als +5V/GND-Leitungen mitbenutzt.

    Mach auch mal Bilder vom Umbau.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Ich hab heute nicht viel Zeit und vor allem Hirnpower gehabt, zwar auch etwas rumgemessen aber das war eher in die Kategorie "Mist".

    Das hier war das sinnvollste: ein Übergang low -> High einer der Via-Bits. Sieht meiner Meinung nach völlig okay aus. (mit Messaufbau: kurze GNDfeder zum ground der Karte mit Kabel zum Pet-GND

     


    Generell hab ich mit dem Scope das Ding dass alles davon überlagert ist: Probe auf Masse, aber langes Massekabel:


     


    Ist das interner Noise? Das reagiert auch darauf, ob und wenn der Trigger auch nahe Null ist, dann wird die "gemessene" Amplitude um Längen größer.


    --------------------------------------------

    Nach diesem Mist mal die Positive Nachricht: ich hab das Ding in einem Stadium, dass es perfekt funktioniert.. solange ich meinen Finger auf GND auf dem Board halte (zusätzlich zum Groundkabel).


    Ich hab dort wo in den Bildern GND angeschlossen ist, heute einen Kondi gesteckt. Und um dessen Kontakt zu verbessern hatte ich ihn festgehalten und verdreht. Damit liefs. Den Cap eingelötet -> lief nicht. Fasse ich den Cap an, geht's wieder. Geht auch, wenn ich das 1m Charrom-Kabel umfasse.


    Das geht sogar soweit dass ich einen "guten Run" erkenne, ob diese Ecke beim Programmieren der anderen Zeichen flickert oder nicht:

    Lasse ich den Cap los (oder das 1m Kabel) kommt dieses Artefakt sogar manchmal NACH Ablauf des Programms -> das deutet dann doch eher auf das Meterkabel. (Programmierbetrieb ist dann ja nicht mehr aktiv). Oder die Rams kippen.


    Am WE mal neue kurze Kabel bauen und/oder auch nochmal die Rams durchwechseln.

    Die gestern angesprochenen Umbau mit den Masseleitungen muss ich auch noch machen. Dazu muss aber die Adapterplatine mit den 24 auf 28 geraffel runter um daran zu arbeiten (das ist alles gelötet, nicht gesteckt).


    Jedenfalls ist das Ding SOOO knapp vor dem sauberen funktionieren. Wie gesagt, momentan: finger drauf und geht.

  • Das mit der GND-Feder find' ich schon gut.

    Hast du die Tastköpfe abgeglichen?


    Ich hasse die GUIs der China-Oszis. Rechts und links vollgekleistert mit sinnlosen Tasten, aber 'ne Info ob du mit 1:1 oder 10:1 misst und ob das in der V/div eingeflossen ist.


    Dein angeblicher Noise: Bei 20mV/div und 5ns/div siehst du immer etwas rauschen.

    Und was hast du wenn du den GND-Clip an die Tastkopfsptze klemmst? Eine Spule mit einer Windung! Und damit kannst du dir alles mögliche einfangen.



    Deine Handauflegen Geeschichte find ich viel beunruhiger. Sowas läßt sich gar nicht messen.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)