Junior Computer ][

  • Hallo Norbert,

    danke nochmal für den Code. Du hattest ihn mir schon mal per PM zukommen lassen, aber für die andern ist der ja sicher auch interessant. :):thumbup:

    Bezüglich Uhren Bausteinchen bleibe ich mal bei der on board Lösung. Man benötigt ja nicht viele Bauteile. Ausserdem muss ich ja auch irgendwas auf die Platine drauf machen, sonst könnten wir ja gleich eine leere Lochrasterplatine unter den Junior schrauben 8o.

    Allerdings bin ich tatsächlich am schwanken, ob ich nicht auf einen RTC Baustein mit SPI - wie z.B. den DS1306 - zurückgreife. Dann muss ich nicht zwei verschiedene Seriell Protokolle unterstützen. Das kostet ja zum einen kostbaren Speicher für den Code und zum anderen spare ich natürlich ein paar Port-Leitungen, die ich dann wieder für was anderes (sinnloses) verballern kann. :grübel:

    Jedenfalls konnte ich schon mal auf den 74LS03 (NAND O.K) verzichten, den ich nur wegen der open Kollektor Verbindung zu /RAM_SEL drin hatte. Die Kombi NOR (U9B) und NAND O.K (U14A) - beide als Inverter geschaltet - ist jetzt draussen. Die hab ich einfach durch eine Diode ersetzt - Kathode am Ausgang des 2 zu 4 Decoders. Bei LOW zieht der dann auch /RAM_SEL auf LOW, bei HIGH hab ich dann auch einen offenen Ausgang.

    Den Sound Chip binde ich über einen weiteren 74LS373 8fach Latch an, dann muss nicht noch ein VIA Port dran glauben.

    Apropos VIA Port. Ich werde wohl Port C sowohl per Pin-Connector als auch via DB9 raus führen, dann kann man den Port auch als Joystick-Anschluss nutzen, falls wir dann doch mal irgendeine Grafikkarte basteln und das ganze für Spiele nutzbar wäre. ::ghost::

  • Allerdings bin ich tatsächlich am schwanken, ob ich nicht auf einen RTC Baustein mit SPI - wie z.B. den DS1306 - zurückgreife. Dann muss ich nicht zwei verschiedene Seriell Protokolle unterstützen. Das kostet ja zum einen kostbaren Speicher für den Code und zum anderen spare ich natürlich ein paar Port-Leitungen, die ich dann wieder für was anderes (sinnloses) verballern kann. :grübel:

    Gute Idee!


    Jedenfalls konnte ich schon mal auf den 74LS03 (NAND O.K) verzichten, den ich nur wegen der open Kollektor Verbindung zu /RAM_SEL drin hatte. Die Kombi NOR (U9B) und NAND O.K (U14A) - beide als Inverter geschaltet - ist jetzt draussen. Die hab ich einfach durch eine Diode ersetzt - Kathode am Ausgang des 2 zu 4 Decoders. Bei LOW zieht der dann auch /RAM_SEL auf LOW, bei HIGH hab ich dann auch einen offenen Ausgang.

    Prima, wieder etwas übersichtlicher.

    Den Sound Chip binde ich über einen weiteren 74LS373 8fach Latch an, dann muss nicht noch ein VIA Port dran glauben.

    Apropos VIA Port. Ich werde wohl Port C sowohl per Pin-Connector als auch via DB9 raus führen, dann kann man den Port auch als Joystick-Anschluss nutzen, falls wir dann doch mal irgendeine Grafikkarte basteln und das ganze für Spiele nutzbar wäre. ::ghost::

    Schön. dass der Sound noch mit intergriert wird. Grafikkarte wäre schon sehr schön, aber die wird wohl zu umfangreich, um sie noch mit hier zu integrieren, oder wie siehst du das?

    An anderem Ort in unserem Forum ist ein Verweis auf die Entwicklung eines funktionierenden Apple ][ mit unter anderem 6502 CPU und zwei Propeller-Chips. In angehängtem pdf ist auf Seite 3 das Schaltbild des mit einem Propeller verwirklichten Grafikteils des Apple. Ich finde diesen Ansatz sehr interessant und werde ihn bei Gelegenheit checken. Die notwendigen Dateien kann man ebenfalls downloaden.


    https://hackaday.io/project/17…le-ii-compatible-computer

    https://github.com/jonthomasson/retroii

  • An anderem Ort in unserem Forum ist ein Verweis auf die Entwicklung eines funktionierenden Apple ][ mit unter anderem 6502 CPU und zwei Propeller-Chips. In angehängtem pdf ist auf Seite 3 das Schaltbild des mit einem Propeller verwirklichten Grafikteils des Apple. Ich finde diesen Ansatz sehr interessant und werde ihn bei Gelegenheit checken. Die notwendigen Dateien kann man ebenfalls downloaden.

    Ich schau mir das mit dem Propeller Controller als Grafik Chip auf alle Fälle an. Platz genug wäre schon da und eine kostengünstige Grafiklösung würde mich schon echt reizen. Wenn die Grafikbibliothek im Microcontroller was taugt und ich auch keinen extra Speicher mehr anbinden muss, spart das viel Zeit und Geld. Der Propeller ist auch in einem passenden DIL Gehäuse, so dass das nicht zu neumodisch aussieht.

    Heute kommt auf alle Fälle erst mal der Sound Chip dran. Der ist leider nicht in der KiCAD Bib drin, deshalb muss ich den erst noch zeichnen.

    Beim DS1306 sieht es leider etwas schlechter aus. Der ist nicht bei Reichelt und Co zu bekommen. Bei anderen Quellen (eBay, etc.) kostet der Chip locker das dreifache des DS1302. Daher bleibe ich wohl bei letzteren. Ich kann da ja SCL und I/O auch mit den SPI Leitungen SCK und MOSI teilen und so zwei Port Pins sparen. Dann kann ich z.B. noch eine I2C Schnittstelle bereitstellen, die man ja immer für nette Erweiterungen (Port Expander, AD Wandler, etc.) brauchen kann.

  • Autsch, was für ein gruseliger Schaltplan!!! :censored: Da rollen sich mir ja die Zehennägel hoch. :wacko:

    Die Schaltung mit dem Propeller P8X32A scheint aber nur eine 8 Farben Grafik zu ermöglichen. Ich werde mal schauen, ob es da nicht Lösungen mit 64 Farben gibt.

    Edit: Ach ja, da war ja noch das mit der RC2014 Grafikkarte. Das hattest du mir ja auch schon gesagt NorbertJ . Sorry!

    Einmal editiert, zuletzt von 2ee ()

  • Ich will ja auch nicht auf dem Propeller herumreiten, war nur eine Möglichkeit. Wenn es eine einfachere und auch später eventuell spielekompatible Lösung gibt, wäre mir das auch sehr recht.

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • Ich will ja auch nicht auf dem Propeller herumreiten, war nur eine Möglichkeit. Wenn es eine einfachere und auch später eventuell spielekompatible Lösung gibt, wäre mir das auch sehr recht.

    Das hab ich keinesfalls so gesehen. Ich finde da jede Lösung spannend und hilfreich. Und der Parallax Controller ist sicherlich dafür sehr gut geeignet. Ich hab mich mit dem Propeller aber nur mal ganz kurz beschäftigt, als der damals raus kam. Ist schon ewig her (90er ? Artikel in der Elektor). Deshalb bin ich da ein echter Newbe. Ich war da eher jemand der mit Atmel oder PIC Controller gebastelt hat.

    Falls du eventuell Zeit und Lust hast, ein wenig zu recherchieren, was die einzelnen Lösungen mit Propeller so können, wie man sie in bestehende Schaltungen integriert und vor allem, wie man sie dann programmiert - sprich wie bringe ich vom 6502 da was auf den Bildschirm - wäre das super. Gerade bei der RC2014 Lösung scheint mir potential da zu sein. Wenn es bei dir zeitlich nicht passt, ist das aber kein Problem.


    Der Schaltplan des Apple II Nachbaus hatte mich vorher leider etwas aus der Fassung gebracht, weil der so unglaublich unübersichtlich und durcheinander ist. Texte über den Leitungsverbindungen, überlappende Widerstände, Leitungen die vom Datenbus überdeckt werden, Busleitungen die im Zickzack verlaufen... Da war mein Vertrauen in die Fähigkeiten der Grafik Unit schon leicht lädiert. :)

  • Kann ich verstehen. Und wenn ich den Grafikcode für den Apple ][ richtig gelesen habe, kann der echt nur 8 Farben. Hatte ich vorher nicht gesehen.


    Die RC2014-Lösung kann auch nur max. 64 Farben bei 320x240. Kommt mir auch spärlich vor.

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • Vielleicht sollten wir doch einen 'echten' Grafikchip nehmen.

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • Die Auflösung und die Farbtiefe finde ich gar nicht so schlimm. Die 6502 muss das ja auch noch handeln können und es soll ja auch retro bleiben. Einen Versuch ist es auf alle Fälle wert. Bei den "echten" Grafik Chips ist halt der Hardware- und Programmieraufwand wesentlich höher. Das ich bei der uC Lösungen auch keinen Grafikspeicher mehr brauche, finde ich ebenfalls sehr attraktiv. Wenn man darauf mal irgendwann Loderunner oder Pacman spielen kann bin ich schon glücklich ::heilig::.

  • Ich fange mal an: die wichtigen Links sind

    Tindie Angebot Grafikkarte für RC2014

    github Beschreibung der Karte mit Anleitung zum compilieren

    GCC für Propeller GCC download


    Es werden für den Z80 die I/O-Ports 40h-43h verwendet. Ansteuerung der Karte kann ich (noch nicht) viel zu sagen, da ich mich mit Z80 nicht auskenne.

    Einen fertig compilierten Code könnte ich anbieten in einen Propeller zu flashen. Soweit reicht mein technisches Knowhow bzgl. Propeller. Die Schaltung auf Breadboard aufzubauen ginge vermutlich auch noch, aber wie ansteuern?

    Bilder

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • Weiterhin Precompiled releases und - für uns wichtig - Commands. So, das wär's für heute. :)


    Ergänzung: Schaltbild und Code Added board image, schematics, gerbers and parts list

    Bilder

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

    Einmal editiert, zuletzt von NorbertJ ()

  • Frage: entspricht der WAIT Input beim Z80 dem RDY Input beim 6502? Dieses Signal wird in der RC2014-Grafikkarte verwendet.

    Solange Wait =High ist stoppt die CPU und wartet z.B. auf langsamere Devices. Bei Low geht's weiter.

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • Frage: entspricht der WAIT Input beim Z80 dem RDY Input beim 6502? Dieses Signal wird in der RC2014-Grafikkarte verwendet.

    Solange Wait =High ist stoppt die CPU und wartet z.B. auf langsamere Devices. Bei Low geht's weiter.

    Das WAIT Signal der Grafikkarte wird, soweit ich das verstanden habe, nur genutzt um eine Synchronisation zwischen Z80 und dem Monitor zu bekommen (Stichwort flickerfreie Darstellung). Ist also jetzt nicht absolut notwendig. Ansonsten sollte WAIT dem RDY der 6502 entsprechen.

  • Propeller ist geflashed.

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • Ich hab jetzt heute Nacht mal wie das kommunale Tiefbauamt vor den Ferien, drei Baustellen auf einmal eröffnet.


    1 - Grafik:

    Mit dem Propeller kann ich zwar Tiles (x * y Pixelblöcke) schnell Darstellen, aber bei einzelnen Pixeln benötige ich dann doch recht viele Befehle, da ich immer ein Kommando und die Pixel-Daten schicken muss. Das scheint mir dann doch recht langsam. Der Raw Bitmap Write Befehl macht das ganze zwar etwas besser, aber Grafikbefehle wi Linien oder Kreise muss ich zu Fuß programmieren. Ausserdem beherrscht die Propeller Lösung zwar anscheinend Sprites, ich hab aber nichts über Collision Detection der Sprites gefunden. Irgendwie scheint die Sache noch nicht ganz das Gelbe vom Ei zu sein. Vielleicht also doch eine andere Lösung.


    2 - Kassetten I/O:

    Welches Aufzeichnungsverfahren sollte ich nehmen? Das des Original Juniors? C64 oder Apple II? Was ist ausreichend schnell und wie aufwändig ist die Programmierung? Wie sollte ich die Aufbereitung der von der Datasette kommenden Signale machen? Kommen von der Datasette bereits verstärkte und wieder digitalisierte Signale, oder sind die noch analog, wie bei einem Standardkassettenlaufwerk? Soll ich überhaupt einen Kassettenport bereitstellen? Eigentlich finde ich es ja ganz charmant und retro, aber würde den den jemand nutzen, wenn eine SD-Karte on Board ist?


    3 - SD-Karte via SPI:

    Hier hab ich mir die konkretesten Gedanken gemacht. Zum einen habe ich mich das erste mal wirklich mit dem Datenblatt und den Möglichkeiten der 6522 VIA auseinander gesetzt, und zum andern, wie ich das SPI Protokoll am effizientesten umsetze.

    Dabei bin ich auf drei mögliche Lösungen gekommen, die ich im Anhang noch als (hoffentlich für euch lesbare) Aufzeichnungen beigelegt habe:


    Möglichkeit 1: Ich erzeuge den SPI Takt von Hand durch Setzen und anschließenden Löschen eines Port Bits. Die Daten werden via SPI gleichzeitig gelesen und geschrieben. D.h. an MOSI sende ich ein Bit und an MISO empfange ich eines pro Takt. Schreiben und Lesen der einzelnen Bits mache ich wie beim Takt durch schreiben bzw. lesen eines Port Bits nach jedem vollen Taktzyklus. Das (nicht ganz richtige - das letzte Input Bit wird hier noch nicht gelesen) Programm ist im PDF skizziert. Ich bräuchte für diese Methode ca. 23 Taktzyklen, was bei 1MHz dann eine maximale Übertragungsrate von 5,3 KByte/s wäre.


    Möglichkeit 2: Die VIA wird im Modus 3 Betrieben - Shift In Under CB1 Control. Hier kann ich über einen externen Takt am Anschluss CB1 Daten automatisch per Anschluss CB2 in das interne Schieberegister (SR) laden. Durch Verbinden des Port Pins PB1 - an welchem mein manuell per Programm erzeugter Takt ausgegeben wird - mit CB1 kann ich dann den im Programm mit * gekennzeichneten ROR Befehl weglassen, da meine MISO Daten dann ja automatisch in SR geladen werden. Ich muss dann nur noch nach acht Taktzyklen das SR auslesen. Durch den fehlenden ROR Befehl steigt meine Übertragungsrate auf ca. 6,1 KByte/s.


    Möglichkeit 3: Hier muss ich leider eine gesamte VIA für das SPI opfern und ich brauche etwas Zusatzelektronik. Aber es lohnt sich. Für diese Methode würde ich Modus 6 der VIA wählen - Shift Out Under Phi2 Control. Hierbei wird CB1 zum Taktausgang (CLK), der das Phi2 Signal 1:1 weiterreicht und CB2 (MOSI) schiebt im Takt den Inhalt von SR an die SD-Karte raus. An CB1 schließe ich den Clock Eingang eines 74LS164 Schieberegisters (Seriell In - Parallel Out) an. Der Eingang des 74LS164 ist dann MISO. Nach 8 Takten wird automatisch von der VIA ein Interrupt erzeugt, so dass ich die empfangenen Eingangsdaten aus dem LS164 per Port A einlesen und die neuen Ausgangsdaten in das interne SR schreiben kann. Das ganze läuft dann eigentlich wie ein kleiner DMA Controller, halt nur mit einem Byte 8-). Der Clou ist, dass ich mit voller 1MHz Taktrate lesen und schreiben kann, was dann zu 1MHz/8 gleich 125 KByte/s Übertragungsrate führen würde. Abzüglich der Zeit die zwischen drin zum Lesen und Schreiben der vollständigen Ein-/Ausgabe Bytes nötig wäre, kann man vermutlich von etwa 120KB/s ausgehen, was dann für so eine SD-Karte zumindest erträglich wäre.


    So weit mal mein Gedankenmüll von heute Nacht. Ihr könnt es euch ja mal ansehen und mir Bescheid geben, was ihr davon haltet, bzw. wie ihr entscheiden würdet. Ich muss jetzt erst mal wieder an die Arbeit, sonst kann ich mir das Hobby irgendwann nicht mehr leisten8o

  • Zu 1: Ok, vergessen wir den Propeller, vielleicht sind andere Chips nur genau für diesen Zweck besser geeignet.

    Zu 2: Kassetten Port wäre schön, ist aber nicht unbedingt nötig. Wir weichen ja mit SD-Karte usw. eh schon vom Original ab.

    Zu 3: Auch wenn ich Fan von vielen freien I/O-Ports bin, hat die Möglichkeit 3 was.

    Nicht zu vergessen die Sound-Option.


    Generelle Frage: wie stark wird die CPU eigentlich insgesamt belastet? Ich komme darauf, weil ein Freund mich vorgestern fragte: das alles soll der 6502 performant 'händeln' können? Ich kann aus eigener Erfahrung sagen, dass die KIM-1 SD-Karten-Option von corshamtech relativ performant ist, aber dort nimmt ja ein Arduino Mega dem 6502 alles ab...

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • ... weil ich eben VIA - SPI gesehen habe,
    da könnte man dann auch gleich einen SD-Karten Slot, bzw. Anschluss mit vorsehen, bzw. damit realisieren.
    halt sowas hier : pasted-from-clipboard.png

    weil sonst brauhst wieder extra 3.3V Level Shifter.


    mfG. Klaus Loy

  • ... weil ich eben VIA - SPI gesehen habe,
    da könnte man dann auch gleich einen SD-Karten Slot, bzw. Anschluss mit vorsehen, bzw. damit realisieren.
    halt sowas hier :

    weil sonst brauhst wieder extra 3.3V Level Shifter.

    Na na na klaly , da hat wohl jemand den Thread nicht mehr ganz aufmerksam verfolgt? 8o

    Die SPI Schnittstelle soll tatsächlich ausschließlich für eine SD-Karte mit drauf und da hatte ich bei AZ-Delivery was komplettes mit Micro-SD Slot, Pegelwandler und 3,3V Regler für 1,20€ das Stück rausgesucht. Da ist selbst löten keine Option mehr.


    Generelle Frage: wie stark wird die CPU eigentlich insgesamt belastet? Ich komme darauf, weil ein Freund mich vorgestern fragte: das alles soll der 6502 performant 'händeln' können? Ich kann aus eigener Erfahrung sagen, dass die KIM-1 SD-Karten-Option von corshamtech relativ performant ist, aber dort nimmt ja ein Arduino Mega dem 6502 alles ab...

    Ich würde sagen, dass das eigentlich keine Frage der Auslastung ist. Die CPU macht halt so schnell wie sie kann. Da sie keinen Idle Mode kennt, muss sie ja sowieso bei jedem Takt einen Befehl ausführen und wenn es NOPs sind. Bei SPI Option 1 und 2 muss ich natürlich alles selber machen, und deshalb ist dann die Übertragung halt langsam. Bei Option 3 könnte ich ja sogar Multithreading machen, da hier die Elektronik das meiste macht und sich per IRQ dann meldet wenn sie fertig ist. In der Interrupt Routine kann ich dann schnell per Pointer einen Lese- und Schreibbuffer nutzen.

    Ich hab mich vorhin wieder daran erinnert, dass die Jungs vom "Steckschwein" Projekt ja auch eine SD-Karte als Massenspeicher benutzt haben. Deshalb hab ich mir gerade deren Seite angeschaut. Und siehe da, sie machen das wie Option 2, also im VIA Mode 3 - Shift In Under CB1 Control. Da deren 65C02 aber deutlich höher getaktet war (4MHz ?) kommen die dann natürlich auf etwas bessere Übertragungsleistungen. Schnell ist das natürlich immer noch nicht. Die von mir ausgetüfftelte Version mit externem Shift Register und Taktung per Phi2 ist sicherlich das Maximum, das so erreichbar wäre. Das wäre meines Wissens jedenfalls schneller als eine Commodore 1541 Floppy.

    Zu 1: Ok, vergessen wir den Propeller, vielleicht sind andere Chips nur genau für diesen Zweck besser geeignet.

    Vielleicht nicht ganz vergessen, aber erst mal zurückstellen.



    Zu 2: Kassetten Port wäre schön, ist aber nicht unbedingt nötig. Wir weichen ja mit SD-Karte usw. eh schon vom Original ab.

    Ich glaub ich mach ihn drauf, wenn jetzt nicht alle anderen widersprechen. Bin da irgendwie altmodisch. Kassette hat so was gemütliches :kafeee:

  • Ich hab gerade gesehen, dass beim VIA Mode 6 CB1 nur den halben Phi2 Takt ausgibt. Also kommt man auf ca. 60KB/s. Ist aber immer noch ordentlich.

  • Ist gebongt. :)

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • > Na na na klaly , da hat wohl jemand den Thread nicht mehr ganz aufmerksam verfolgt?

    Ja, sorry, so ist es wirklich.
    Der Thread war mir "zu viel".
    Super wenn da dran gedacht wurde.

    mfG. Klaus Loy

  • Ja, sorry, so ist es wirklich.
    Der Thread war mir "zu viel".

    :) Kein Problem Klaus. Ich bin selber immer wieder erstaunt, wie viel ich hier reinschreibe. Muss das wohl etwas reduzieren, um euch da nicht zu nerven. :saint:

  • Mich nervt das nicht. :capone: Nee, im Ernst nicht.

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • Ich finds auch gut. Manchmal wäre für "Unbedarfte Mitlesende" auch mal ein kleines Wort der Erklärung mehr noch ganz gut. Zum Beispiel was genau SPI ist , ob es was mit I2C zu tun hat.


    Außerdem mal meine Anregungen (habe aber auch nicht alles gelesen und geklickt (das ist ja oft noch aufwendiger)):


    Karten sollten evtl. auch später mal noch nachbaubar sein. Man kann also schon durchaus ein Modul benutzen was es gerade günstig zu kaufne gibt, aber man sollte das dann so einbauen, daß man es evtl. in 5 Jahren als "Nachbauer" auch einfach durch was ähnliches ersetzen kann, was es evtl. optimalerweise dann auch mal irgendann zumindest als Schaltplan gibt.


    Außerdem sollte man evtl. mal was priorisieren. D.h. nicht alle drei Wunschsachen auf einmal bauen wollen. Momentan sind ja sogar eher mehr im "Gespräch", als da wären: RealTimeClock, SD-Card Interface, Grafikkarte, Soundmodul, Kassetten-Interface.

    Evtl. wäre es sinnvoll da mal mit einem anzufangen, sonst verschleißt das ja auch den Erbauer und am Ende geh alles nur so lala. Wenn man sich schon einig ist, daß man für bestimmte Sachen kleine Module nehmen will, die es schon gibt, wäre es evtl. sogar eine Option, mal festzulegen, wie solche Minimodule minimal/maximal auszusehen haben; dann kann man nämlich evtl. sowas wie Einsteckslots auf einer Platine vorsehen, die evtl. auch Adapter (Spannungswandler usf.) mitberücksichtigen, auch wenn man die fürs aktuell rausgesuchte Modul gar nicht braucht.


    Grafikkarte ist schon interessant, aber sicherlich eher ein schönes add-on. Aber wenn, dann sollte es auch ein bißchenw was können. Für mein Gefühl sind z.B. die Auflösungen von der Propeller Lösung ein wenig wenig, also klein ...


    Code
    The first byte sent to the data port selects the video mode:
    00H - Mode 1 = 320x240 (40x30 Tiles)
    01H - Mode 2 = 256x192 (32x24 Tiles)
    02H - Mode 3 = 256x224 (32x28 Tiles)
    03H - Mode 4 = 320x240 (Bitmap 3BPP)
    04H - Mode 5 = 256x192 (Bitmap 4BPP)
    05H - Mode 6 = 256x224 (Bitmap 4BPP)


    Das holt eigentlich niemanden mehr ab. Und Farben hat es ja auch nicht. Auch wenn es eine interessante Lösung ist - so ohen Grafikchip, wenn ich das richtig verstanden habe.


    Spanned wäre m.E. sowas wie VGA fähige Auflösung - dann gern auch in wenigen Farben. Oder alternativ Beschränkung auf Videomodes (mit der Problematik, daß man dann wieder das Gerät auf alte Monitore und TVs begrenzt, was auch schade ist) - dann aber bitte mit Sprites und Farben.

    Aus Geschwindigeitsgründen wäre es wohl gut, wenn das VideoRAM nicht von CPU und Grafik gleichzeitig benutzt wird, sondern, daß die CPU da zwar reinschreiben darf, aber der Videochip Vorrecht hat. Das RAM Problem ist zwar 1980 schwierig gewesen, sollte aber heute kein Hinderungsgrund mehr sein. Und es muß ja auch nicht viel sein - nur eben extra.


    SD-RAM Card ... ist für die reine Benutzbarkeit von so einem Teil wahrscheinlich wichtiger als ein Kassetteninterface. Kassette ist KULTIG und irgendwie auch genial (ich finde das ein richtig schönes Medium, weil einfach gebaut, langlebig, relativ haltbar in der Datensicherheit, billig, immer noch zu bekommen, wenn es nicht gerade besonder Datentapes sein müssen, standardisiert, Laufwerke immer noch gut zu bekommen) - aber real praktisch will man Datenaustausch mit einem PC nicht damit machen müssen. Dafür ist RAMcard viel angenehmer.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Der WAIT-Input wird beim RC2014, also in einem kleinen Z80-System verwendet.

    Wenn ich das richtig verstehe, machen wir hier was die Grafik angeht doch erst mal eine Stoffsammlung, oder habe ich da etwas falsch verstanden?

    Übrigens kann der Propeller sehr viel mehr, wenn man ihm noch RAM zur Seite stellt, wie es im HIVE-Projekt der Fall ist/war. Ich besitze eines diese Teile (Drohne 400). 1920x1280 in 64 (oder mehr?) Farben, wenn ich mich recht entsinne. Aber Ich möchte Jörg da recht geben, weniger ist oft mehr - und wir sollten nicht vergessen, dass das Projekt hier im Groben und Ganzen doch retro sein sollte. Und der Programmieraufwand sollte einen auch nicht die Lust verlieren lassen.


    Da schlage ich gleich mal den EF9366 Grafikprozessor vor, der in der Commodere HSG (high speed graphic) verwendet wurde.

    Kennt einer den? Sind wohl rar hier .

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • VideoDa schlage ich gleich mal den EF9366 Grafikprozessor vor, der in der Commodere HSG (high speed graphic) verwendet wurde.

    Kennt einer den? Sind wohl rar

    Hallo Norbert, den EF9366 oder EF9365 hatte ich schon vor einiger Zeit im Auge, weil die richtig gut sind und auch höhere Auflösungen können. Ich hab auch noch einen, aber die sind wirklich selten zu bekommen und dann natürlich $ch€i3 teuer.

    Außerdem sollte man evtl. mal was priorisieren. D.h. nicht alle drei Wunschsachen auf einmal bauen wollen. Momentan sind ja sogar eher mehr im "Gespräch", als da wären: RealTimeClock, SD-Card Interface, Grafikkarte, Soundmodul, Kassetten-Interface.

    Hallo Sebastian, den RTC hab ich ja schon drauf, der war auch immer mein Wunsch. Sound ist auch gesetzt und das SPI (Serial Peripheral Interface) für SD-Karten mache ich auch, weil kein Aufwand in der Hardware. Beim Kassetteninterface hatte ich für die Platine ja bereits den Platinenanschluss ala C64 in KiCAD designt. Um die Analogelektronik wollte ich mich aber zum Schluss kümmern, weil ich halt ein alter Digielektroniker bin.

    Prinzipiell kann man für den Nachbau alles weglassen, was man nicht möchte, und kann so Bauteile sparen. Ich werde das dann zu gegebener Zeit auch in der Aufbauanleitung so kommunizieren.


    Die Grafikausgabe war ja ursprünglich tatsächlich nicht für dieses Erweiterungs Board geplant. Aber da noch freier Platz vorhanden war, kann man natürlich drüber nachdenken. Beim Weglassen hab ich da aber absolut kein Problem, da ja sowieso (in ferner Zukunft) noch ein Floppy-Controller geplant ist, der dann die Grafik mit drauf haben könnte. Im Übrigen kann man bzgl. Grafikkarte natürlich immer noch am ESP32 und der FabGL Bibliothek festhalten, die ich für das ESP32 Terminal genommen habe. Die kann nämlich alles geforderte: Hohe Auflösung, hohe Farbtiefe, eigener Grafikspeicher, Linien, Rechtecke, Ovale, Sprites mit Collision Detection und und und. Einziges Manko, das ESP Modul sieht halt irgendwie wie ein Fremdkörper unter all den alten DIP Bausteinchen aus. Video


    VORSCHLAG: Wir lassen die Grafikerst mal weg und über das auf der Platine befindliche Lochrasterfeld kann man dann schon mal diesbezüglich experimentieren. Bei einer Rev.2 Platine kommt dann die Grafik mit drauf.


    Mich nervt das nicht. :capone: Nee, im Ernst nicht.


    Ich finds auch gut.

    Danke! :anbet:

  • Wenn ich das richtig verstehe, machen wir hier was die Grafik angeht doch erst mal eine Stoffsammlung, oder habe ich da etwas falsch verstanden?

    Übrigens kann der Propeller sehr viel mehr, wenn man ihm noch RAM zur Seite stellt, wie es im HIVE-Projekt der Fall ist/war. Ich besitze eines diese Teile (Drohne 400). 1920x1280 in 64 (oder mehr?) Farben, wenn ich mich recht entsinne. Aber Ich möchte Jörg da recht geben, weniger ist oft mehr


    Ja, so war das wohl gedacht. Wobei der Jörg ja wohl schon die MSX Chips ganz gut fand. Allerdings habn die eben auch genau das Problem, daß sie a.) endlich und b.) zunehmend teuer und/oder schwer zu finden sind.


    Der EF9366 bzw. EF9365 ist tatsächlich "soeben" hier im Forum benutzt worden. Da gab es das Projekt "Low Speed Graphic" als Nachbau der Originalkarte für den PET. Dank zitruskeks und cbm_ba (als Antreiber ;) ) ist das auch sehr flott fertig geworden und scheint auch bestens zu funktionieren

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


    so richtig los geht es auf Seite 4 und spruchreif wird es dann, als joshy anbietet, daß er Chips da habe und für Prototypen zur Verfügung stellen kann. Letztlich gab es sogar einen ebay Anbieter in Europa https://www.ebay.de/itm/281762326050 der noch ein paar hat.

    Und genau sowas ist ja auch das Problem an so einer Lösung, vor allem langfristig.



    Interessant war auch der Einwurf von osi , der da etwas da hatte, was eher "generisch" ist

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


    Ich find ja, daß die Hauptentscheidung die ist, ob man moderne Monitore anschließen können will oder alte Videomonitore. Damit einher geht dann die Frage, ob ein 6502 mit Auflösungen ab 640x480 überhaupt umgehen kann (speed).



    ( Und dann gäbe es ja evtl. auch noch die Option von was komplett Eigenem, da könnte man möglicherweise auch tricksen, wenn man kann. Etwa ist beim 6502 und Grafik das Unangenehme immer, daß man mit 16Bit Werten umgehen muß. Vielleicht wäre aber auch eine Option das Ganze zu "kacheln" und als Grundbaustein sowas wie die osi Karte zu haben die 256x256 Pixel hat - und davon nimmt man 4 Stück und hat dann 512x512 oder mit 6 Stück 1024x512. Und in SMD sollte das ja machbar sein, auch relativ platzgünstig. Es wirft aber natürlich die gesamte normale "Malalgorithmik" um und fertige Bibiotheken gitb es für sowas vmtl. nicht. )



    Für den PET gibt es das Anschlußprojekt mit der Data Becker Karte

    Data Becker Highres Grafikboard - der Versuch eines Nachbaus

    das läuft gerade.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries