Mainboard CBM identifizieren: OK=CBM8296 "Commodore PCB 64K/128K CPU" Mainboard Only in Betrieb nehmen ?

  • Wer kann mir sagen, was das für eine Commodore Hauptplatine ist ? ( Sorry bin leider (noch) kein Commodore CBM Experte - vielleicht ja trivial )

    Aus der Platine steht "Commodore PCB 64K/128K CPU"


    (Als Anhang anbei)


    Wie kann ich diese in Betrieb nehmen !?: (Mit Hilfsmitteln aus dem Hobby/Bastelkeller und Arduino ...)

    CBM-Matrixkeyboards kann man ja wohl z.B. mit nem PIC-uC (? Alternativen) emulieren und PC-PS2-Keyboard anschliessen ...

    Wenn man keinen passenden Röhrenmonitor zur Hand hat, benutzen "Retro"-Computer-Enthusiasten wohl gerne analoge Video-Digitalisierer (Alte Hauppauge-Videokarte, besser ein USB-Video-Digitalisierer - weil übersichtlich am Labor-Notebook betreibbar) Welche preisgünstigen USB-Video-Digitalisierer lassen sich z.B. unter Linux verwenden.

    Andererseits haben solche Geräte der CBM-Generation ja "digitales"-Video-Out über ein Shift-Register (serielles Signal mit den Sync-Phasen zwischendrin ) - Schon mal was gesehen, was diesen seriellen Datenstrom ( sind wohl ca. 4 Mhz ) mit einem modernen Mikrocontroller parse'd und die Pixel in ein dann anderweitig ausgebbares Format wandelt ?

    Als Massenspeicher über den IEEE488 kommt ein uC mit SD-Card oder PC mit Parallel-Port, denen IEEE488-Protokoll beigebracht wurde, für mich in Betracht. ( Simple Schnelllösungen ??? )

  • Hallo "Schroeder", danke für die schnelle Hilfe.

    Ja das passt - habe es mit Bilder aus dem Internet verglichen.

    OK - nun wie komme ich weiter ?

    Gibt es eine gute Referenz im Internet zum CBM8296 ? Schaltpläne in den Archiven ?

    Aus einem Innenbild sehe ich dass da nur ein Trafo angeschlossen werden muss ? 3 Leitungen an den Stecker in der Nähe des Kühlkörpers !?

    Gute Schritt für Schritt-Anleitung, was man alles prüfen sollte, bevor man da 5 Volt auf den Spannungseingang gibt ?

    80 Zeichen Video-Out muss ich jetzt zunächst mal anschauen - ob da was rauskommt und erstmal wo ...

    Kann ich einen Standard BAS-Monitor , z. B. vom Apple II anschließen ?

  • Info zum Board bekommst du beispielsweise hier: http://www.6502.org/users/andre/petindex/boards.html und natürlich auch hier: http://www.zimmers.net/anonftp…uters/pet/8296/index.html


    Die PETs haben aber keinen normalen Video out sondern steuern (bei den späteren Geräten) mittels eines CRTC den normalerweise integrierten Bildschirm an. Zumindest beim Vorgänger, dem 8032(-SK) sind dies auch echte Drivedaten, keine reinen Syncdaten, wie sich beispielsweise ein Amiga als Hsync/Vsync ausgibt. Der Monitor selbst hat keinen Oszillator, der mittels solcher Signale gesynct wird, sondern verstärkt nur das Signal und gibt beispielsweise das Horizontal-Drive-Signal mehr oder weniger direkt auf den HOT. Die Horizontalfrequenz liegt beim 8032 auch bei um die 20Khz, nicht die üblichen 15Khz. Einen Standardmonitor anhängen geht also nicht so weiteres. Man kann den CRTC aber programmieren/parametrisieren, dass er ein näher am Standard liegendes Signal ausgibt.

  • Hallo zitruskeks,

    danke f. die Info: Die zimmers.net-Ref. war natürlich über google sofort zu finden und tatsächlich sind hier die für die nähere Untersuchung "wertvollen" Schaltpläne des Gerätes !

    Einen Überblick fand ich unter: http://www.6502.org/users/andre/petindex/8x96.html


    "CRTC aber programmieren/parametrisieren, dass er ein näher am Standard liegendes Signal ausgibt."

    Ok - wie geht man da vor. Bedeutet das nicht, dass man dazu die Firmware ändern muss ?


    Ich sehe im Schaltplan: Ist ein CRTC-LSI 6545 und Character-Generator -ROM dessen Bits über das übliche 74LS166 Shiftregister ausgegeben werden.

    An dem Stecker J7 ist dann der Bit-Stream , sowie Hsync/Vsync , wie vom 6545 generiert.

    Gut - also möglicherweise muss man den LSI 6545 entsprechend programmieren ... - irgendein Source-Code-Template dafür ?


    Alternativ hätte ich immer noch die "Straight-Forward"-Idee den seriellen digitalen Bitstream mit einem modernen Mikrocontroller zu parsen. Der Character-generator sitzt auf einem IC-Sockel. könnte man auch gleich die aus dem Video-Ram kommenden Bits shiften - also quasi den Video-RAM auslesen und an ein PC/NB-Front-End morsen. ( Das ist dann nahe der Idee, Floppy-Read-Streams mit Logicanalysator zu sichern )

    Aber als ersten Schritt hänge ich wohl mal ein Scope an den 74LS74, der den 74LS166-Bitstream taktet.


    Der 8296D hat offensichtlich ein Schaltnetzteil - hier ist alles noch konventionell. Die Vss Wechselspannung, die aus dem Trafo (Doppelwicklung) kommt, habe ich jetzt noch nirgendwo beziffert gesehen ?

  • Hallo CBM-Expertern,


    zitruskeks:

    danke für den Link. Das ist also ein Weg, eine Ausgabe aus dem Board mit einfachen Elektroniklabormitteln zu bekommen.


    Edit-ROM ändern:

    HIer wäre ja der Source des Originals: http://www.zimmers.net/anonftp…324243-04_disassembly.txt


    bzw. scheint auch hier enthalten zu sein

    https://github.com/sjgray/cbm-edit-rom

    Den notwendigen ACME Cross-Assembler scheint es f. Windows zu geben - Im https://www.c64-wiki.de/wiki/ACME findet sich auch ein Hinweis auf Linux. Habe aber noch nicht gefunden, wo man acme für Linux downloaden kann !?


    Wenn man den Edit-ROM schon ändert, wäre es eine grundsätzliche Möglichkeit die GETKEY und ChrOutNormal -Routine zu ersetzen, so dass man weder Bildschirm noch die externe Tastatur am CBM8296-Mainboard für den Betrieb braucht.

    Da es offensichtlich feste Sprungvektoren am ROM-Beginn gibt, ist es wohl komplett funktionsneutral, wenn man hier größere Änderungen vornimmt, oder muss man befürchten, dass bestimmte Software dann nicht mehr Input und Output bekommt ?


    So wäre das Mainboard als Host mit angeschlossenem Terminal (seriell im einfachsten Fall) zu betrachten.


    Frage an die CBM-Experten, ist das eine Option oder muss man Probleme befürchten ?


    Wenn man sowieso weder Monitor noch Tastatur für das Gerät hat, könnte man aus der Not eine Tugend machen und Input/Output virtuell verlegen. ( ähnlich es bei aktuellen Computern via RCS oder VNC möglich ist )


    Auch wäre dann eine schöne Idee, eine Tastatur mittels uC-Board Wireless anzukoppeln oder die Bildschirmausgabe auf das HandyDisplay zu verlegen ...


    Liebe CBM-Experten, gibt es Argumente, die dagegen sprechen ?

  • Verwendet wurde hier der Transformator 324748-01 mit 2x 8V Wicklungen und Mittelanzapfung, daher auch der dreipolige Anschluß.

    Bei der Bildröhre kam später eine abweichende Version mit 17 kHz anstelle der 20 kHz vom Vorgängermodell zum Einsatz. Hier wird aber mit dem Editor-ROM 901474-04 noch 20 kHz erzeugt. Es handelt sich dabei um KEINE DIN-Version. Häufige Fehlerquellen sind die beiden PLAs auf UE5 (8700-008, 324745-01) und UE6 (8700-009, 324744-01).

    • Offizieller Beitrag

    Ein großer Teil der vorhandenen Software wird so nicht laufen. Es war üblich, direkt auf den Bildschirmspeicher zuzugreifen. Die Umschaltung zwischen Text und Grafik Modus wurde fast ausschließlich durch direktes beschreiben des entsprechenden Registers gemacht. Und vor allem bei Spielen wurde auch schonmal die Tastatur direkt abgefragt.

  • Hallo CBM-Experten,

    danke für die Antworten.

    HofMar: "Transformator 324748-01 mit 2x 8V Wicklungen und Mittelanzapfung,"

    Wieviel Ampere kommen eigentlich aus dem Trafo ?

    Jetzt habe ich verschiedene Optionen: Aus meinem Portfolio einen passenden Trafo suchen | habe hier noch C610-Netzteile (Trafo und sekundärem TL494-Schaltregler) gefunden. Die kann ich entweder so verwenden oder schauen ob der Trafo passt ... | ich benutze ein Schaltnetzteil , das für PCs gedacht ist und suche mir auf der Platine einen Einspeisungspunkt. ( Die Linearregler 7805 - interessant 2 davon, um den Strom von 2A (?) zu erzeugen - kann ich ja drin lassen: die Transistorstrecke ist für die Spannung ein nicht überwindbares Hindernis ...

    MDA-Monitor für PC's verwenden="Editor-ROM modifizieren"

    Der Code https://github.com/sjgray/cbm-edit-rom

    hat dafür in docs/CRTC Registers.txt eine Info und wohl auch ein Konfigurationsmöglichkeit. ( Filehierarchie und Mechanismus habe ich aber noch nicht wirklich verstanden)

    Der Link von "zitruskeks" zeigt, wie es praktisch grundsätzlich geht.


    Um an den Linux-ACME zu kommen musste ich wayback bemühen (https://web.archive.org/web/20….de/~marco/smorbrod/acme/) . Die Quellen sind seit August 2015 aus dem Web verschwunden.


    Nun versuche ich mal einen Binary d. EDIT-ROM f. den CBM8296 zu erzeugen.

    Hmm, EPROM-Brenner habe ich aus meiner Workbench verbannt. Muss ich ggf. wieder was aktivieren.

    Aber eigentlich wollte ich solche Sachen (mit mehreren Try&Error-Zyklen) nur noch mit EEPROM's machen. Adapter muss man ja sowieso für den ROM(!?) bauen ...


    Bei "https://www.nightfallcrew.com/?s=CBM+610" findet man Fotodokumentationen , in denen er am CBM 610 verschiedenste "Tube-Monitore" so auch einen von Apple und TV's angeschlossen hat. Leider nicht beschrieben, wie er das gemacht hat.

    Dazu gibt es aus alten "Elektor"-Tagen - glaube ich - Schaltungsveröffentlichungen, wie man die Sync-Signale mit Video in ein BAS-SIgnal mixed (!?)


    Toast_r: Danke für die präzise Info - Schade - hatte gehofft, das sei in der CBM-Welt wegen der verschiedenen Modelle etwas konservativer gehandhabt. ( Wie kompatibel ist der CBM8296 oder CBM II/CBM610 denn bzgl. des Video CRTC mit den PET/CBM-Vorgängern ? )

    Immerhin sollte also BASIC 4 und ähnliches problemlos mit einem SerIn/Serout-EDIT-ROM funktionieren.

    Was wären denn Beispiele für populäre Software-Ausnahmen der CBM-Welt, wenn man jetzt von Spielen absieht ?


    Die Seite "http://servant64.de/" aus 2015 scheint auch weg zu sein. Die Idee gleich eine USB-Schnittstelle an den Userport (bidirektional Parallel In/Out d. VIA6522) zu zaubern, gefällt mir gut.

    Welche Alternativen gäbe es möglichst einfach einen hinreichend schnellen Datenstream in die CBM-Welt zu bekommen ?

    • Offizieller Beitrag

    Auf die Schnelle nur ein paar Anmerkungen:

    Das 8296 Maiboard ist für die Verwendung im 8296-D (mit eingebauten Laufwerken) in einer anderen Bestückungsvariante verwendet worden.

    Dabei entfallen die Spannungsregler und der dicke Elko auf dem Board, es werden direkt +5V und +12V vom Schaltnetzteil zugeführt.

    Ein vorhandenes CBM 610 Netzteil könnte also verwendet werden.


    Der CBM 610 gibt ein BAS-Signal aus, daher können gewöhnliche Video-Monitore ohne Probleme angeschlossen werden.

    Wenn man den CRTC im 8296 auf die Werte wie im 610 programmiert, und die Schaltung für die Erzeugung des BAS-Signals aus dem CBM 610 übernimmt, sollte das damit auch gehen. Auflösung und Zeichenmatrix sind gleich. Allerdings läuft der 610 mit 2MHz, der 8296 mit 1MHz. Inwieweit die Werte für die CRTC-Register daher angepasst werden müssen weiß ich nicht.

  • Die Lestungsklasse des Trafo 324748-01 ist mir leider nicht bekannt. Könnte man über die Blechpakete abschätzen. Ich würde mir aber mal das Netzteil auf dem Board genauer ansehen. Die Dioden sind 3 Ampere Typen. Also wird es zwischen 1 und 3 A liegen.


    Aber ich würde an deiner Stelle auch die Bestückung ändern und das Board mit +5V und +12V versorgen. Da kann fast jedes PC-Netzteil verwendet werden. Dioden, Kondensator und Spannungsregler einfach entfernen und eigentlich den 3 pol. Stecker gegen eine andere Variante (waren es 4 pol.?) tauschen oder (mind. zum Testen) direkt anlöten.


    Die Signale VIDEO, HSYNC und VSYNC können auf dem Board inveriert werden. Zusammen mit der Mischerschaltung aus dem 610 übernommen bekommt man dann auch ein BAS-Signal.


    Die Unterschiede zum 610 sind:

    • Der CRTC wird im 6x0/7x0 mit 2 MHz getaktet, im 40xx/80xx nur mit 1 MHz. Daher sind einige Register-Werte im 6x0/7x0 doppelt zu hoch wie im 40xx/80xx.
    • Beim 6x0/7x0 wird immer pro CPU-Zyklus (Phi2) auch ein Zeichen dargestellt. Beim 40xx/80xx werden pro CPU-Zyklus (Phi2) zwei Zeichen ausgelesen und leicht versetzt dargestellt. Daher ist die Logik hier auch deutlich aufwendiger!
    • Das Schieberegister ist im 6x0/7x0 neun Bit (Pixel) pro Zeichen (daher 18 MHz Pixeltakt), im 40xx/80xx sind es nur acht Bit (Pixel) pro Zeichen (daher 16 MHz Pixeltakt).

    Unter Link siehst Du die gängigen CRTC Register-Werte der Editoren von 6x0/7x0 und 40xx/80xx. Das Excel-Blatt hilft beim Verstehen der Register und kann zum Offline-Experimentieren dienen. Dort gibt es in den Zeilen 20 und 21 die Werte eines anscheinend bereits an PAL angepaßten ROMs 901474-04, welches meines Wissens unter verfügbar ist. Ich habe das ROM aber nie selbst getestet, die Werte sehen aber vielversprechend aus.

  • Hallo HofMar,


    danke - das sind präzise Angaben mit Expertise.

    ...Die Dioden sind 3 Ampere Typen. Also wird es zwischen 1 und 3 A liegen.

    Aber ich würde an deiner Stelle auch die Bestückung ändern und das Board mit +5V und +12V versorgen. Da kann fast jedes PC-Netzteil verwendet werden.

    Dioden, Kondensator und Spannungsregler einfach entfernen und eigentlich den 3 pol. Stecker gegen eine andere Variante (waren es 4 pol.?) tauschen oder (mind. zum Testen) direkt anlöten.

    ...

    Zu Deinen Vorschlägen nochmal rezitiert aus meinem "Post" - das hattest Du wohl überlesen:

    HofMar: ....


    Jetzt habe ich verschiedene Optionen: ...

    ich benutze ein Schaltnetzteil , das für PCs gedacht ist und suche mir auf der Platine einen Einspeisungspunkt. ( Die Linearregler 7805 - interessant 2 davon, um den Strom von 2A (?) zu erzeugen - kann ich ja drin lassen: die Transistorstrecke ist für die Spannung ein nicht überwindbares Hindernis ...

    Also eigentlich wollte ich erstmal nichts entfernen. ( Siehst Du da eine Notwendigkeit ?)

    Auf dem PCB muss ich allerdings einen Einstiegspunkt für einen Steckkontakt /Kabelende m. Zwischenstecker finden, der dem Strom standhält. Wo siehst Du die Notwendigkeit für 12V ? Oder habe ich da auf die Schnelle was übersehen ?


    >>> Unter Link siehst Du die gängigen CRTC Register-Werte der Editoren von 6x0/7x0 und 40xx/80xx. Das Excel-Blatt hilft beim >>>Verstehen der Register und kann zum Offline-Experimentieren dienen. Dort gibt es in den Zeilen 20 und 21 die Werte eines >>>anscheinend bereits an PAL angepaßten ROMs 901474-04, welches meines Wissens unter verfügbar ist. Ich habe das ROM aber nie >>>selbst getestet, die Werte sehen aber vielversprechend aus.


    Schön - das ist eine weitere Quelle - muss ich mal prüfen und die Info extrahieren/abgleichen:


    Ich hatte mich jetzt diesem Code hier https://github.com/sjgray/cbm-edit-rom gewidmet.

    Dort enthalten docs/CRTC Registers.txt - eine Info, dass wohl auch ein Konfigurationsmöglichkeit vorgesehen ist.

    Verstehst Du so auf Anhieb, wie sich das der Autor mit der Konfiguration von Änderungen bzgl. des CRTC gedacht hat ?


    Einen Binary konnte ich, nachdem ich mir den Linux-acme ( im dortigen Repository enthalten ist nur eine Win-Exe) gezogen hatte, direkt erzeugen. Nun muss ich aber verstehen, wie die EDIT-ROM-Konfiguration auf die verschiedenen Situationen ge-"customized" wird.

    Unter http://www.primrosebank.net/co…rojects/roms/pet_roms.htm gibt es Hinweise, wie man mit dem github-Code zu einem Binary kommt und den ROM ersetzt. ( Target ist dort ebenfalls ein CBM8296 )

    Allerdings wollte ich eigentlich die EPROM-"Try&Burn-Again"-Orgie mittels EEPROM umgehen (z.Zt. habe ich auch keinen EPROM-Burner mehr einsatzbereit). Möglicherweise auch mittels 6264-SRAM mit Batterie.

    Um das komfortabel zu gestalten hat sich dieser Kollege <http://petsd.net/softrom.php> einige Gedanken gemacht und eine ähnliche Lösung entwickelt, die mir vorschwebt.

    Wie gesagt, aus Erfahrung, wenn man mit Bytes frickelt, hat man i.d.R. erstmal diverse Fehlversuche und da ich sowieso am EDIT-ROM modifizieren möchte, wäre mir ein flüssiges Arbeiten: "Crossassemble - Flash - Start im CBM8296-MB" wichtig. In Circuit mit Comm-Link zur Entwicklungs-Workstation werde ich das wohl nicht auf die Schnelle hinkriegen. Aber zumindest schnell steckbar vom Entwicklungshost "zum Flashen" und Target "zum Testen", wäre gut.


    Hättest Du für dieses Szenario aus Deinem Erfahrungs- und Wissensschatz auch Vorschläge, wie Du das machen würdest ?

  • Schaue doch mal in den Schaltplan des Netzteils vom Board. Dort findest Du den J8, der sowohl für die Speisung mit Trafo (und bestückten Dioden, Spannungsregler und Kondensator) an den Pins 1 (AC), 2 (GND) und 3 (AC) genutzt werden kann. So ist Dein Zustand aktuell. Alternativ kann auch über die Pins 2, 3 und 5 die +5V (Pin 5) und +12V (Pin 3) zugeführt werden. Pin 2 ist dabei immer GND. Die überflüssigen Bauteile müssen entfernt werden. Das betrifft mind. die Spannungsregler. Die mögen am Ausgang keine höhere Spannung als am Eingang. Aber auch die Änderung des Pin 3 muß berücksichtigt werden. Mit dem Trafo liegt doch AC, ohne Trafe wird's zum +12V-Pin. Neben dem Entfernen von Bauteilen sind auch Brücken (teilweise anstelle der Dioden) zu legen. Im obigen Schaltplan gibt es dafür drei Fußnoten. Und hier ein passendes Foto. (Ein besseres Foto fand ich auf die Schnelle leider nicht!)

  • Adapter muss man ja sowieso für den ROM(!?) bauen

    Solange das Editor-ROM nur 2 KB umfaßt (z.B. 901474-04), ist kein Adapter nötig. Ein 2716 paßt hier perfekt. Ob das 2816 (EEPROM) direkt paßt weiß ich nicht, sieht aber gut aus. Ich habe es aber nie ausprobiert. Selbst bei 4 KB benötigt man beim 2532 kein Adapter. Nur wenn man die gängigeren 2732 verwenden möchte ist ein Adapter nötig.