Genie III High Resolution Graphic

    • Offizieller Beitrag

    Wir hatten schon im PGA Thread Genie III Programmable Graphics Adaptor (Nachbau) ueber eine HiRes Karte diskutiert.

    Nach JenGun s Vorschlag fuer die Grafyx Solution Karte habe ich mir die mal genauer angesehen. Ich hab auch einen re-engineered Schaltplan gefunden, was fuer die Analyse sehr hilfreich war.

    Die Grafyx Karte ist fuer den TRS-80 Model4. Wie hier die Videogenerierung genau funktioniert habe ich nicht weiter untersucht.

    Nach ein paar weiteren Ueberlegungen wie man die Schaltung in den GenieIII bekommt, wollte ich die Grafyx Karte erstmal in einem FPGA "aufbauen".


    Und so sieht das ganze dann aus.


     


    Und so im eingebauten Zustand.




    Nach kleinen elektrischen Problemen und etwas Loeten-By-Editor (FPGA-Aenderungen), konnte ich mit einem BASIC Programm schon mal die ersten Striche auf den Bildschirm zeichenen.



    Fortsetzung folgt.

    • Offizieller Beitrag

    Diesen hier: TRS-80 Model 4/4P MicroLabs Grafyx Solution Hires Board Reproduction? Grafyx für den Genie III in 2022!

    Genau.

    Grafyx fuer den Genie ist aber noch im Entwicklungsstadium.


    Ich will mal auf ein paar Unterschiede eingehen.


    Das Tandy Model 4 arbeitet mit 24 Zeilen und je 10 Rasterzeilen. (Rasterzeile = Bildschirmzeile. I.a. 10 oder 12 Bildschirmzeilen bilden eine Textzeile.) Das ergibt 240 vertikale Pixel.

    Der Genie III hat 24 oder 25 Zeilen mit 12 Rasterzeilen, sind also 288 oder 300 Pixel.

    Mehr Pixel sind zwar schoen, ich brauche aber 9bit "Adresse" fuer die Y-Richtung.

    Der nennenswerte Unterschied betrifft eine gemischte Text/Grafik Anzeige. Wenn man bestehende Software benutzt, kann es zu Problemen mit der Texthoehe kommen.


    Jetzt steht noch die Frage an, TTL-Grab oder CPLD. Da bin ich mir noch nicht schluessig.

  • Jetzt steht noch die Frage an, TTL-Grab oder CPLD.

    TTL-Grab ist zu statisch - denke dabei auch an den Entwicklungsaufwand - auch wenn sich die Grafikkarte auf einem Steckbrett aufbauen läßt. Ich tendiere mittlerweile zum Löten by Editor weil ich mir dann dieses ganze Geraffel mit Lökolben und der notwendigen Stellfläche als 'Dauerexponat' sparen kann. Den Mehraufwand durch ISE oder Quartus nehme ich da gern in kauf - ein Labtop ist schneller zusammengeklappt und weggeräumt wie wie das hantieren mit dem Testaufbau samt Scope und Meßgeräte bis endlich alles steht und läuft. Ich sehe auch für den Nachbau(er) beim CPLD ganz klar die meisten Vorteile: Da weniger Bauteile, weniger Fehlermöglichkeiten, von Problemen bei der TTL-Bauteilbeschaffung einmal ganz abgesehen.

  • Du sprichst mir aus der Seele.

    Der einzige Nachteil bei CPLD u.ae. ist das SMD-Gehaeuse TQFP und kleiner. Das macht beim loeten keinen Spass. PLCC Gehaeuse, die durch Sockel wieder im 1/10 Zoll Raster liegen, sind auch schon alle abgekuendigt und dadurch in der Beschaffung auch nicht sicher.


    Allerdings wird sich die Anzahl der Nachbauer durch den kleinen Kreis der Genie III Besitzer in Grenzen halten.

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

    • Offizieller Beitrag

    Ich werfe mal als Gegenargument zum CPLD in die Runde, daß das natürlich überhaupt nicht zeitgemäß für den Genie III ist.

    Und wie man sieht, sind das ja auch eher kurzlebige Teile. Was man da jetzt verbaut, ist gerne mal nach ein paar Jahren nicht mehr verfügbar.

    Das TTL-Zeug gibt es seit Jahrzehnten, und ich schätze, daß es das auch nach ein paar weiteren Jahrzenten noch geben wird.

  • Da muss ich dir mal dazwischen graetschen.


    natürlich überhaupt nicht zeitgemäß für den Genie III ist.

    Also ich brauche keine 1:1 Kopie der damaligen Grafyx Karte. Auch werde ich keine ICs suchen, die den richtigne Datecode haben.

    Ich bau hier keinen Apple 1 auf.


    Auch werde ich nicht 10 2kB SRAMs verbauen, wie auf dem Original. Dazu kommt dass das 20kB RAM nicht mehr reichen wegen der groesseren Aufloesung (s. Post #4). Und die Aufloesung auf 240 Pixel begrenzen ist auch nicht sinnvoll.


    Versuch doch mal zeitgemaesses 1MB RAM fuer deine MFA-Z180 auf die Platine zu bekommen.

    Zuerst geht es um die Funktion.


    Und wie man sieht, sind das ja auch eher kurzlebige Teile. Was man da jetzt verbaut, ist gerne mal nach ein paar Jahren nicht mehr verfügbar.

    Ich weiss nicht welche "kurzlebigen" Teile du meinst.

    Ich hab gerade in die Revision History der XC9500XL CPLD Familie geschaut.



    Seit 1998 gibt's die Teile. Das ist nicht kurzlebig. Und die stehen noch auf Active, d.h. werden produziert.

    Es werden immer mal Gehaeuseformen abgekuendigt, die nicht laufen. Gerade habe ich eine Costumer Notification von 2021 gelesen, da fliegt das PQ208 Gehaeuse raus, aber nicht nur bei CPLDs, sondern auch bei aelteren FPGAs.


    Ich rede hier von Xilinx Bausteinen, weil ich mich mit denen am besten auskenne.


    Das TTL-Zeug gibt es seit Jahrzehnten, und ich schätze, daß es das auch nach ein paar weiteren Jahrzenten noch geben wird.

    Wenn ich mir die Lagerhaltung bei reichelt & Co anschaue, wird die Beschaffbarkeit von 74LSxx auch immer duenner bis zu null.

    Und auch bei Digikey und Konsorten ist DIL Gehaeuse teilweise nicht erhaeltlich. Ok, viele ICs werden auch gar nicht in DIL hergestellt, ist also nicht schuld des Haendlers.


    Fazit:

    Machen wie es gerade am besten machtbar ist.



    Nachtrag (2024-01-27):

    Anfang Januar kam die Abkuendigung aller Xilinx CPLDs und Spartan3 FPGAs (Quelle: XCN23009). So schnell kanns gehen.

    Aber 25 Jahre Laufzeit bei einem so kurzlebigen Produkt ist schon bemerkenswert.

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

  • Das TTL-Zeug gibt es seit Jahrzehnten, und ich schätze, daß es das auch nach ein paar weiteren Jahrzenten noch geben wird.

    Fragwürig, wo doch immer mehr auf Energieeffizienz geachtet wird. TTL-Gräber saugen auch als LS erhebliche Leistung auf.

    Wenn ich mir die Lagerhaltung bei reichelt & Co anschaue, wird die Beschaffbarkeit von 74LSxx auch immer duenner bis zu null.

    Kann ich nur bestätigen. Zum Teil muß man sich aus diversen Quellen bedienen um an alles zu kommen, das Treibt die Projektkosten wegen der jedesmal anfallenden Versands unangenehm in die Höhe. Bei Kauf in China sind es außerdem die erheblichen Wartezeiten.

  • Das TTL-Zeug gibt es seit Jahrzehnten, und ich schätze, daß es das auch nach ein paar weiteren Jahrzenten noch geben wird.

    Fragwürig, wo doch immer mehr auf Energieeffizienz geachtet wird. TTL-Gräber saugen auch als LS erhebliche Leistung auf.

    Bei den millionenfachen Stand-By Geräten, die es heutzutage gibt, sind unsere, meist in Regalen stehenden Geräten, doch in der Energieumsetzung zu vernachlässigen.


    Ausserdem habe die meisten unserer Geräte doch ein H-Kennzeichen. :)

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

  • Ausserdem habe die meisten unserer Geräte doch ein H-Kennzeichen

    Wenn es nur darum geht ein Anschaungsobjekt mit so original wie möglich gehaltenen Erweiterungen auszustellen, hast Du allemal recht. Ich finde es auch immer wieder spannend zu sehen, was damals für'n Aufwand betrieben wurde, um die Rechner mit Must-Have-Features aufzubohren. Da sind aber Überlegungen wie anfangs zu lesen 'Jetzt steht noch die Frage an, TTL-Grab oder CPLD. Da bin ich mir noch nicht schluessig' nicht erlaubt. Das klingt doch eher wie 'Retro' oder 'Vintage' ?. CPLD wäre dann Retro, TTL-Grab gleich Vintage. Dr. Google liefert einen Erklärungsansatz:


    "Echt Vintage oder nur Retro-Stil? ... “ Im Klartext: Vintage ist tatsächlich alt, Retro ist neu, lehnt sich aber an alte Designs an.":nixwiss:


    Ich empfehle die Münze zu werfen ::heilig::

  • Die Wuerfel sind gefallen.



    Ich hab da jetzt mal alles reingebaut.

    HiRes Graphic

    PGA (wie Genie III Programmable Graphics Adaptor (Nachbau))

    Umschaltbarer Zeichensatz

    Das ganze Steuerung befindet sich in einem CPLD XC95144XL.


    Ich hab da noch 'ne Erweiterung eingeplant fuer Farbgrafik auf einem CGA Monitor. Dafuer ist allerdings ein groesseres CPLD notwendig. Und noch nicht simuliert, also mal sehen.


    PCB ist bestellt, werd's dann mal zusammen loeten.

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

  • PGA und Zeichensatz sind 2 Optionen.


    Der PGA funktioniert wie der Originale, also eine Bitmap fuer jedes Zeichen in ein RAM schreiben. Adressiert werden die Zeichen dann ueber die Nr. 192-255.


    Fuer den umschaltbaren Zeichensatz hab ich das Character-EPROM mit auf die Platine "verlegt" und durch ein groesseres (E)EPROM ersetzt. Ueber bis zu 4 zusaetzliche Adressleitungen kann man zwischen unterschiedlichen Zeichensaetzen umschalten.

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

  •  


    Gestern "mal eben" das CPLD gelötet, programmiert und vorsichtig in Betrieb genommen.

    Und oh Wunder, es klappte schon eine ganze Menge.

    Nur das Character-ROM gab falsche Daten aus. Bei vorsichter Beruehrung war's gut, sieht nach einem Wackelkontakt aus.

    Gerade nochmal alles geschaut, ich hatte einen Jumper vergessen.


    So sieht dann nicht initialisierter Bildschirmspeicher aus.



    Das Bild hatte ich schon mal zum testen mit dem GODIL.




    Und dann hab ich jetzt einen umschaltbaren Zeichensatz, praktisch fuer Deutsch und US-English.

    Da ist mir noch was aufgefallen.

    Der Genie III verschiebt die Zeilen im Zeichengenerator um 2 Zeilen. Man kann's auf dem obigen Bild erkennen, das die Linie in Zeile 0 Abstand zu den Zeichen in der 1. Zeile hat. Das wuerde nur in Inversdarstellung auffallen. (Jetzt wird mir klar, warum die das gemacht haben.)

    Diese Oberlaenge hab ich mal fuer die deutschen Zeichen ÄÖÜ benutzt.

    Links normaler deutscher Zeichensatz, rechts mit Oberlaenge.


     


    Jetzt brauchen wir nur noch Software.

  • Ich hab diese Woche einiges an Software portiert und eine Killer-Applikation für die HiRes Grafik im Genie III gebaut.

    Ein paar Bilder, leider schlechter als ich dachte.




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

  • Und wie immer kann man auch etwas sinnvolles rechnen lassen.




    yalsi, hat das Forum keinen Betrachter fuer BMPs? Weder SW noch 24bit Farbe werden angezeigt. Hab's jetzt extra nach PNG konvertiert.

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

    • Offizieller Beitrag

    Das muss Dein Browser können, nicht das Forum.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • So weit kommt es ja gar nicht.


    Wenn ich ein PNG (oder JPG) mit Drag&Drop in den Post lade, wird das als Anhang angelegt und auch im Post als Vorschau angezeigt.

    Lade ich ein PDF, TXT oder BMP, wird es nur als Anhang abgelegt. Druecke ich noch "In Text einfuegen" erscheint im Post nur ein Link auf den Anhang.

    Also wird BMP nicht als Grafik erkannt.

    Ist aber nicht wichtig. Wunderte mich gerade nur etwas.

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

  • Der Genie III hat 24 oder 25 Zeilen mit 12 Rasterzeilen, sind also 288 oder 300 Pixel.

    Mehr Pixel sind zwar schoen, ich brauche aber 9bit "Adresse" fuer die Y-Richtung.

    Wie genau ist das jetzt gelöst? Extra-Port? Das Test-Programm läuft wohl unter MBASIC und CP/M 2.2XV3: ist das ganz unten die Statuszeile von CP/M 2.2X? Wird die wieder "invertiert", wenn man OUT 245, 1 eingibt?

  • Ich hab das 9. Y-Bit ins X-Register verlegt. Hier werden nur 7 Bits benutzt (Werte 0-79).

    Wenn ich also bestehende Software nutzen wuerde (falls ueber welche existiert), wuerden soweiso nur 240 Zeilen benutzt.


    Bei der Karte habe ich mich von Basic verabschiedet.

    Das Loeschen des Bildschirmspeichers braucht schon Minuten.

    Dann hab ich ein Maschinenprogramm geschrieben, unter Basic aus DATA Zeilen in einen String kopiert und dann aufgerufen.

    Das Maschinenprogramm macht die Aufgabe in Sekunden, aber das Laden in den String dauert schon ueber 10 Sekunden. Also alles Murks.


    Ich hab jetzt (endlich) einen C-Compiler fuer CP/M und MS-DOS getestet, installiert usw.

    Ich benutz den Hi-Tech C-Compiler. Den gibt's als Cross-Compiler und laeuft in einer DOS-Box. Und ich hab den auf dem Genie3 am laufen.

    Wem ein reinen Cross-Compiler reicht, wuerde ich z88dk mit SDCC verwenden.


    Die Statuszeile wird auch wieder "normal", wenn man in den Invers-Mode (nenn ich jetzt mal so) umschaltet.

    Aber im Invers-Mode kann man keine Grafik anzeigen.

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

  • Da die HRG beim Schreiben und Lesen noch ein paar Pixel-Fehler generierte, habe ich am Wochenende mal etwas Fehlersuche betrieben.



    Alle Fehler gefunden und beseitigt.


    Und wenn ich schon mal dran war, habe ich die PGA-Funktionalitaet auch direkt implementiert.

    Jetzt kann man mit schoenen alten Schnoerkelschriften oder alten Computerschriften schreiben.


     

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