mein CBM 8032 (No. 2) mit Commodore High Speed Graphik

  • Und warum nutzt man zu Zeiten des CBM 3032 noch 2708 Eproms? :grübel:

    weil die 2708 und die 2508 viel günstiger waren als die 2516 und die 2716.


    oft waren es 2516 oder 2716 deren andere hälfte einen defekt hatte,

    so verkaufte man die als xx08. so etwas wurde von den herstellern auch bei den damaligen rams gemacht.


    nicht verwechseln mit den 2708, z.b. von intel, die hatten drei spannungen.


    die halb defekten haben nur eine 5v spannung.

    die habe ich damals zu hunderten in meinen interface verarbeitet, weil ich nur 512 bytes benötigte.


    zuerst benutzte ich proms in meinen interfaces und im pet, da eproms viel zu teuer waren.

    so war mein erster programmer ein prom brenner der die proms geschossen hat.


    mein erstes eprom lag damals bei ca. 800 dm, es kostete mich mein halbes monatsgehalt.

    so war ich sehr am schwitzen gewesen, ob mein neu entwickelter eprom brenner, auch richtig funktionierte.

    da ich mir nur ein eprom zum testen leisten konnte. zuerts baute ich es für die eproms mit drei spannungen,

    dann ein paar monate später, bekam ich die eproms mit einer spannung und ich änderte meinen programmer wiederum. nur noch zum programmieren der einspannungs eprom typen.


    ich war der erste, der für den pet einen (e)prom brenner baute. weil ich als erster, in den interface,

    ein prom und später ein eprom benutzte. wegen dem umlauten usw.


    der dann sehr oft nachgebaut wurde.


    z.b. von vero = vobis, die sogar mein layout 1:1 kopierten.

    ein funkamateur hat meinen, ganz dreist als seine entwicklung, an vobis für 500 dm verkauft.

    und vobis verkaufte den V80 programmer dann für 298 dm pro stück.

    durch den eprom brenner nachbau, lernte ich die vero / vobis geschäftsführer, herrn fraling und herrn liven kennen

    und vobis wurde dann danach zu meinem größten kunden.

    so müsste ich dem funkamateur nachträglich, für die nachfolgenden millionen dm umsätze mit vobis, dankbar sein ;)


    die proms wurden damals nicht nur als speicher ic sondern auch sehr gerne als gatter schaltungs ersatz benutz.

    um z.b. speicherbereiche zu dekodieren. so auch von mir.

    wie viel später die 82s100 pla im c64 oder anderen commodore rechnern.


    so kam ich dann, ca. 1981, auch auf die idee, nachdem die eproms nun günstiger wurden,

    ein eprom als speicher und auch gleichzeitig als ein gatter ersatz zu benutzen.


    z.b. in meinem neuerem iec / ieee488 interface. zuerst wird das eprom wie eine pla benutzt.

    mit atn die deviceadresse und die sekundäradresse ausgewertet. indem das eprom als gatter

    die zustände auf dem bus in echtzeit auswertet, dann wird der zustand in einem ein bit flip flop latch gespeichert.
    falls es adressiert wurde und ab dann dient das eprom nur dazu, mit der eingetragenen umwandlungstabelle,

    um die daten vom rechner, auf das entsprechende drucker ascii, umzuwandeln.


    so benutzte ich noch vor commodore ein eprom wie eine pla.


    als dann commodore die pla erstes mal benutzte, im dem c64, kam ich dann auf die idee,

    die commodore pla (82s100), wie ein eprom auszulesen, auszuwerten und durch ein eprom zu ersetzen.


    damals gab es aber noch kein 27512 eprom und auch später war es teurer als die original commodore pla.


    so benutzte ich die original commodore pla in kombination eines kleinerem eproms für die änderungen.

    so machte ich es aber auch am anfang bei dem pet, als proms oder eproms viel zu teuer oder noch nicht

    in der entsprechenden größe lieferbar waren.


    z.b. für die umlaute. ich nahm das original rom und blendete nur in den entsprechenden speicherbereichen,

    die paar bytes, mit meinen änderungen ein.


    gruß

    helmut

    Einmal editiert, zuletzt von axorp ()

  • …weil das hier ein richtig fertiger Haufen Verrückter ist, lasse ich Bilder sprechen:





    Ergebnis:



    Toast_r , Jogi , @allediehierimbootsindundsoherrlichunterstützen


    DANKE! :)


    Der GAL, sowie die PROMs- alles funktioniert auf Anhieb.

  • Klasse! Ich hab auch eine GAL-Version des Boards aufgelegt, da kann der direkt verbaut werden.

    Klasse! :)



    Die Frage ist halt, ...

    ... jetzt haben wir schon diesen GAL drinnen ...


    ... jetzt könnten wir doch auch gleich versuchen noch mehr zu optimieren!



    Wir könnten mal anfangen mit:

    • statt des Counter+PROM+D-FF
    • ein GAL


    Wir würde da gerne behilflich sein.

    Was meinst du dazu?

  • Klingt auch gut. Wie ich schon mal schrieb: erst Ziel war 1:1 Nachbau, und wenn der bestätigt ist, den frei zu veröffentlichen. Eine "milde" Optimierung finde ich auch sehr gut als Option, wenn eben Dinge die heute nur noch schwer oder gar nicht mehr zu bekommen sind ersetzt werden. Wo ich für mich die Grenze ziehen würde sind sachen wie "alles in einen FPGA stecken". Das ist cool, aber auch irgendwie nicht so meins. Nicht nur, weil ich davon noch weniger Ahnung habe als das bissl Halbwissen und Rumraten vom dem TTL-Grab, wie es sich jetzt darstellt. xD


    Vielleicht an einem Beispiel beschreibbar: für meinen SX64 wollte ich einen Speeder, weil meiner mit den Überresten eines Parallelspeeders kam. Und weil es sich beim SX ja auch anbietet, schließlich sieht man das hässliche Kabel nicht. Ich hab mich bewusst für einen "primitiven" Nachbau des DolphinDOS entschieden, weil das halt durchaus zeitgemäß ist. Ein MeGALoDOS hingegen würde ich niemals einsetzen. Dann kann ich gleich einen Pi in ein Gehäuse stopfen. Zu modern alles, wenns geht noch mit Display - das ist es nicht für mich. Schön das es sowas gibt, aber persönlich danke, nein danke :) (zumal ich mich bei sowas immer frage: ich würde dann eh nur einen Speeder nutzen, wozu also dann die Option für 1000 andere)


    Oder kürzer ausgedrückt als mein Gelaber bislang: den Timingschaltkreis vereinfachen, um das PROM "rauszuwerfen" fände ich sehr gut als Option. Das mit den Rams auch noch für eine dritte Version, danach wäre ich tendenziell raus, aber natürlich kann auch dazu auf die dann veröffentlichte Repo zugegriffen werden. Gerne sogar.

    • Offizieller Beitrag

    statt des Counter+PROM+D-FF

    Bisher brauchst du wenigstens 9 Ausgaenge (6 Clk und 3 Zaehlerbits), waere also ein 22V10 moeglich.


    Wenn ihr mit mehreren Baenken (>2) arbeiten wollt, solltet ihr noch ein MUXER Signal einplanen, dass fuer das 8. DRAM Adressbit (bei 4164ern) zustaendig ist.

  • Bisher brauchst du wenigstens 9 Ausgaenge (6 Clk und 3 Zaehlerbits), waere also ein 22V10 moeglich.


    Wenn ihr mit mehreren Baenken (>2) arbeiten wollt, solltet ihr noch ein MUXER Signal einplanen, dass fuer das 8. DRAM Adressbit (bei 4164ern) zustaendig ist.


    Ich sehe gerade, die generierten Signale sind ja teilweise für den Refresh der DRAM ...



    Da stellt sich mir die Frage, ob man nicht gleich SRAM nutzen kann?

    • SRAM ist heutzutage spottbillig
    • man spart sich die Refresh Sache
    • Offizieller Beitrag

    SRAM wäre zu schwierig, denke ich.

    Nicht nur, daß der Grafikprozessor gemultiplexte Adressleitungen passend für DRAM hat, der Zugriff auf die RAMs erfolgt für den Bildaufbau auch noch bitweise statt byteweise. Sonst müsste man per Schieberegister aus einem Byte die einzelnen Pixel-Bits erzeugen, so wie beim Zeichenorientierten Bildaufbau des CBM.

  • Wo ich für mich die Grenze ziehen würde sind sachen wie "alles in einen FPGA stecken".

    Da bin ich ganz bei dir!




    Ein MeGALoDOS hingegen würde ich niemals einsetzen. Dann kann ich gleich einen Pi in ein Gehäuse stopfen.

    Da sind wir nicht konform ... :D


    Ich LIEBE das MeGALoDOS!!!

    Ein Leben ohne kann ich mir kaum noch vorstellen.


    Ein PI ist ganz was anderes!


    Das MeGALoDOS baut die alte Speeder Hardware 1:1 nach.

    Natürlich hat man statt 20 TTL und statt mehrerer RAM Chips nur einen RAM.

    Natürlich hat es abartig viel SRAM.

    Natürlich hat es abartig viel EPROM.

    Aber es ist trotzdem "nur" ein 1:1 Abbild.


    Der Arduino hat keinen Kontakt zur 1541, wenn man von der GND und 5V absieht.

    Der macht nur was sonst Schalter, Jumper, Taster und Gatter machen würden.

    Also Reset, Schreibschutz und Vorgabe welche Speeder Hardware aktiv sein soll.



    ich würde dann eh nur einen Speeder nutzen, wozu also dann die Option für 1000 andere)

    Manchmal ist es halt nett, wenn man den Speeder wechseln kann.

    Gerade für Speeder Vergleich eine tolle Sache.




    Oder kürzer ausgedrückt als mein Gelaber bislang: den Timingschaltkreis vereinfachen, um das PROM "rauszuwerfen" fände ich sehr gut als Option.

    Sehr gut.

    Ich werde das mal behirnen.


    Wie stehst du zu SRAM statt DRAM?

    • Offizieller Beitrag

    man spart sich die Refresh Sache

    Da kannst du nichts sparen, das macht der EF936x.

    Im Gegenteil, du muesstest aus RAS und CAS Adressen eine komplette Adresse fuer das SRAM erzeugen. Also 2 Latches.


    Nee, SRAM geht gar nicht. Der EF936x braucht bit-weisen Zugriffs aufs Video-Memory.


    Diddl , machs nicht komplizierter als noetig. 8o

  • SRAM wäre zu schwierig, denke ich.

    Nicht nur, daß der Grafikprozessor gemultiplexte Adressleitungen passend für DRAM hat, der Zugriff auf die RAMs erfolgt für den Bildaufbau auch noch bitweise statt byteweise. Sonst müsste per Schieberegister aus einen Byte in die einzelnen Pixel-Bits erzeugen, so wie beim Zeichenorientierten Bildaufbau des CBM.

    Ah okay.


    Wobei man könnte ja auch nur Bit 0 des SRAM benutzen.

    Der Vorteil wäre immer noch, dass man nur 1 Speicher IC hat und dass der Refresh unnötig wird.



    Wie sieht es mit der Beschaffbarkeit der DRAM aus?

    Kriegt man die noch heutzutage?

    • Offizieller Beitrag

    Wobei man könnte ja auch nur Bit 0 des SRAM benutzen.

    Geht auch nicht.

    Es wird auch byte-weise gelesen.

    • Offizieller Beitrag

    Wie sieht es mit der Beschaffbarkeit der DRAM aus?

    Kriegt man die noch heutzutage?

    Sobald man von den 4116 mit den 3 Spannungen weg ist, hat man ja relativ viel Auswahl, welche man nimmt - je nach Verfügbarkeit und Preis.

    4164, 41256, 411000 - u.U. nutzt man halt den Speicher nur teilweise.

  • Bisher brauchst du wenigstens 9 Ausgaenge (6 Clk und 3 Zaehlerbits), waere also ein 22V10 moeglich.

    Up/Down Eingang ist low (siehe bild) - er zählt also runter. dann passt es wieder


    7-6-5-4-3-2-1-0-7


    Brainstorming ...



    Naja, eigentlich braucht es nur

    • EINEN EIngang - die 14 MHz
    • und 7 Ausgänge: Clk_1_75, CLKrascas, CLKras, CLKcas, CLKef936x, CLKclr, CLK_write



    Oder hab ich was übersehen?

    • Offizieller Beitrag

    Oder hab ich was übersehen?

    Ja, den Zaehler.

    Auch wenn du den Ausgang der Zaehlerbits nicht direkt benoetigst, braucht es die Makrozelle mit dem FlipFlop. Die entsprechenden Pins kann man bei GALs nicht mehr als Eingang verwenden (kann vielleicht Ausnahmen geben, aber als Ausgang erst recht nicht).

    Bei CPLDs geht das bei manchen, z.B. XC95xx von Xilinx.



    Sagt mal, hat nicht jemand gesagt, es wuerden nur 5 Bits im PROM benutzt?

    Wenn dem so ist, warum sind 6 Ausgaenge benutzt?

  • Bisher brauchst du wenigstens 9 Ausgaenge (6 Clk und 3 Zaehlerbits), waere also ein 22V10 moeglich.

    Ja du hast schon recht mit dem 22v10.


    Der GAL 16v8 lässt keine NODE zu.

    Also braucht es jeden Ausgang.

    Auch wenn ich den gar nicht auf einem PIN führe ...


    Verflixt!


    Aber besser ein GAL22v10 als zwei TTL und ein PROM ... :)

    • Offizieller Beitrag

    Vor dem festlegen der GAL-Pins, _IMMER_ erst die GAL-Gleichungen schreiben, durch den GAL-Assembler laufen lassen und dann weiter machen.

    Sonst wird das schnell eine No-Go-Schaltung.

    • Offizieller Beitrag

    Der GAL 16v8 lässt keine NODE zu.

    Auch wenn du es als NODE schreibst, es braucht die Makrozelle. Das ist die Begrenzung. Und beim xxV8 gibt's nur 8 Makrozellen.



    Ausser du haettest jetzt Glueck und ein Ausgang entspricht genau einem Zaehlerbit.

    Hat sich jemand die Gleichlungen angeschaut, die im PROM "verbaut" sind?

    • Offizieller Beitrag

    Was meinst ihr?

    Wenn Reengineering, dann bitte richtig.


    Ich hab mal den PROM Inhalt grafisch dargestellt.

    Kann das bitte jemand kontrollieren?



    D2 entspricht dem QC des Zaehlers. Ein GAL-Ausgang gespart.

    D4 folgt D3 invertiert um einen Takt.

    D0 folgt D1 um einen Takt.

    Fuer D0 und D4 kann man einen 7474 nehmen und spart 2 GAL-Ausgaenge. Ist jetzt die Frage was sinnvoller ist.

  • Es scheint noch ein Problem zu geben ...

    WinCUPL lässt den Term .CK nicht zu beim GAL?



    Der GAL ist ziemlich eingeschränkt:

    Die Extensions bei einem GAL22v10 sind: .OE .D .AR .SP

    Leider ist der Clock anscheinend gemeinsam ...


    So wie ich das sehe, kann man damit keinen Frequenzteile realisieren?

    Oder bin ich nur zu blöd?


    Ein Schieberegister ist kein Thema.

    Aber wenn der Clock überall alle gleich ist ...

    • Offizieller Beitrag

    Der Clock ist bei GALs immer gleich.

    Auf jeden Fall bei 16V8, 20V8 und 22V10.


    Aber es gibt doch nur einen Clock in dem GAL.

  • Hi


    Der EF9367 ist günstiger zu bekommen und kann noch höhere Auflösungen wenns der Monitor noch könnte...

    Habs nicht getestet soll aber direkt einsetztbar sein..

    Ordnung ist das halbe Leben, aber wer mag schon halbe Sachen!


    Ich sammle nicht ich habe nur 106 VC20/VIC20.

  • Hi


    Der EF9367 ist günstiger zu bekommen und kann noch höhere Auflösungen wenns der Monitor noch könnte...

    Habs nicht getestet soll aber direkt einsetztbar sein..

    Soll ich so ein Teil mal ordern? Versuchen könnte man es ja! :)

  • So, der GAL 22v10 sollte nun alle Clock Signale sauber generieren aus dem 14 MHz Clock. :)



    Am Pin 1 werden die 14 MHz angelegt.


    Die Ausgänge 23 bis 17 sollten die Signale ausgeben wie bei der originalen Schaltung.


    ===


    Evt. muss Pin 13 auf GND gelegt werden.

    Ich bin mir da nicht sicher, ob /OE obligat ist bei dem Register Typ.


    Im Simulator braucht es das nicht.

    Aber bei Tests mit einem 16v8 an meinem Kanda Board braucht es das OE.

    Das wäre bitte zu testen, falls die Signale nicht generiert werden.


    .

  • Also der 22v10 ist viel flexibler wie der 16v8 ...


    Man kann die OE frei definieren auch im Registered Mode. :)


    Hier noch ein Jedec wo OE fix auf 1 steht.

    Damit sollte es unabhängig von Pin 13 funktionieren.


    .