Junior Computer ][

  • Ah ok, danke!

    ___________________________________________________________________________________________________

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

  • Damit ihr wißt, wozu ich das brauche: reine Nostalgie. In meiner frühen 6502-Zeit hatte ich das Buch von Rodnay Zaks "6502 Games". Hierin wird ein Gameboard beschrieben und aufgebaut, auf dem man einfache Spiele programmieren konnte, z.B. Tic-Tac-Toe, Slot Machine, Echo und noch ein paar mehr. Mir kam die Idee, das ganze an den Junior ][ anzupassen und dazu benötige ich erst mal die Hardware. Die habe ich jetzt zum größten Teil fertiggestellt und ich denke, ich kann die Spiele an den Junior anpassen. Sicher nichts besonderes aus heutiger Sicht, aber auf jeden Fall wieder mal eine gute Fingerübung und zudem schön, wenn's funktioniert. So wie es jetzt aufgebaut ist, brauche ich vermutlich keine weiteren I/O Bausteine, sondern nutze den Parallel Port Interconnect für den fehlenden VIA. Im Anhang ein Foto vom Stand der Dinge.

  • Nachtrag: ohne den Parallel Port Interconnect funktionieren allerdings das ASCII-Keyboard und der Papertape Reader nicht.

    Aber um kurz mal zu Spielen finde ich das ok. XModem funktioniert zum Laden weiterhin.

    ___________________________________________________________________________________________________

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

  • Super! Dein "Game Board" sieht echt klasse aus. Was sind das für Taster? Und wo um alles in der Welt bekommt ihr (Norbert und Michael) immer noch die bunten Flachbandkabel her? Meine Vorräte sind da seit den frühen 90ern aufgebraucht.


    Eventuell kannst du statt der 6532 Ports auch ein oder zwei I2C Port Expander nehmen. Ich nehme mal an, dass du diese Portleitungen ja zum Abfragen der Hextastatur benötigst.

  • Die Taster sind einfache Tactile Switches mit Kappen,die selbst noch einen Klarsichtdeckel besitzen. Darin einfach ausgedruckte Buchstaben/Zahlen hinterlegen. Die Chinesen haben sowas. Die Schaltungen des Game Boards sind angehängt. Kannst dsu mir bitte beizeiten mal erklären, wie das mit den I2C Port Expandern funktioniert? Noch einen schönen Sonntag.

    Zu den Flachbandkabeln: Unter der Bezeichnung 'Flachbandkabel bunt' findest du in der Bucht noch ziemlich viele Angebote.

  • Mein Board läuft jetzt komplett, die Nutzung des 6532 auf dem Junior Mainboard funktioniert ohne Probleme.

    Sollte jemand auf die Idee kommen, das Board nachzubauen, im Buch ist ein Fehler in der Schaltung mit dem 74154. Pin12, der rechts schon auf GND geht wurde im Teil links vom 74LS154 fälschlicherweise auch einer Taste zugewiesen. Also einfach links Pin 12 ignorieren und Taste 'B' Pin 13 zuordnen. Dann entsprechend alles eins weiter nach unten verschieben, Pin 14 = 'C', usw. .

    ___________________________________________________________________________________________________

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

  • Hallo Norbert


    Kannst dsu mir bitte beizeiten mal erklären, wie das mit den I2C Port Expandern funktioniert?

    In deinem Fall musst nur den PCF8574 an SDA, SDC des IO Boards hängen, A0..A2 des PCF auf Masse (Basisadresse ist dann 32) und P0..P3 an den 4 zu 16 Decoder statt dort die Portpins des 6532 zu nutzen.



    In der angehängten ZIP findest du die Datei PCF8574 Keyboard.asm. Die Routine KEY_DOWN musst du dann an der Stelle deines Codes mit JSR aufrufen, an der du die 6532 Port Pins P0..P3 setzt. Rückgabe ist dann Carry gesetzt = Taste gedrückt, Carry nicht gesetzt, keine Taste gedrückt.


    Zusätzlich zu der asm Datei ist auch der geupdatete Stack Editor, der jetzt stack:ed heißt in der ZIP. Es sind ein paar neue Funktionen hinzugekommen und Fehler behoben:


    - Der Editor speichert jetzt Position und größe des Editor Fensters

    - Ctrl-X/C/V/A funktioniert jetzt auch in den Such Eingabefeldern

    - Löschen aller gesetzter Positionsmarken geht jetzt

    - Zusätzlich zum Kontextmenü: Ctrl-Shift 1..9 toggelt eine Positionsmarke

    - Zusätzlich zum Kontextmenü: Ctrl 1..9 springt zu einer gesetzten Positionsmarke

    - Klicken in den Zeilennummernbereich setzt Positionsmarken. Ein Klick auf ein Positionsmarkensymbol löscht die Marke wieder

    - Geänderte, nicht gespeicherte Dateien werden in der Work Bench jetzt farblich (rot) hervorgehoben

    - Es wird vor dem Speichern eine Backup Datei angelegt

    - Die assemblierten BIN und LST Dateien werden nun auch in das Ursprungsverzeichnis zurück kopiert - sind also nicht nur im Pfad des Editors zu finden


    Die PDF-Anleitung für den A65 Assembler ist nun auch in der ZIP mit drin.

  • Vielen Dank jörg! Ich werde mir das mal in Ruhe genauer 'reinziehen'.

    ___________________________________________________________________________________________________

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

  • Ich bin ja eigentlich wegen der Tastatur hier gelandet. Aber irgendwie konnte ich es dann doch nicht lassen, auch noch den Junior Computer ][ zu bauen. Jetzt hab ich dann auch noch die PCB von IO Language Card und Backplane bestellt. Wenn schon, dann richtig. Danke für das Projekt.


    Falls jemand Interesse an Platinen hat, ich gebe gern die übrigen zum Selbstkostenpreis ab.


    forum.classic-computing.de/index.php?attachment/157245/


    forum.classic-computing.de/index.php?attachment/157244/

  • Hallo Hans,


    ich würde gerne 1 I/O-Language-Card nehmen.

    ___________________________________________________________________________________________________

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

  • Hier nochmal ein Update meines kleinen 6502 Assembler Editors stack:ed.


    Ich hab jetzt noch ein größeres Problem bei der Fehleranzeige gefunden. Bei längeren Datendeklarationen im Code (DB $01 02 ... oder TEXT 'Hello World') erzeugt der a65 Assembler aus einer Zeile Code im Ergebnislisting mehrere Zeilen mit jeweils 8 Byte, was dann zu Verschiebungen in darauffolgenden angezeigten Fehlerzeilen führte. Also z.B. Fehler ist in Zeile 100, wird aber für Zeile 105 angezeigt. Das Problem ist jetzt behoben.

    Ausserdem könnt ihr jetzt Datei-Typen (also z.B. .asm) unter Windows dem Editor zuweisen, so dass diese wie gewohnt per Doppelklick den Editor öffnen (Kontext Menü: Öffnen mit -> Standardprogramm auswählen... -> Weitere Optionen -> Andere App auf diesem PC suchen).


    Drag and Drop funktionierte ja bereits für den Editor Bereich, in einer der nächsten Versionen werde ich das dann auch auf den Work Bench Bereich ausweiten. Aussderdem kommt dann noch eine Favorite Liste hinzu und häufig benötigte Dateien sollen dann im Work Bench angeheftet werden können.


    Ich hab jetzt endlich auch wieder etwas mehr Zeit, so dass ich hoffentlich diese Woche den SPI/SD-Card Code endlich in das Junior BIOS bekomme, bevor das VCFe in München stattfindet. Sobald fertig, werde ich mich natürlich gleich melden.

  • Hier die neue BIOS Version 1.0.3 für den Junior ][.


    Darin enthalten:


    SPI Treiber

    SD-Card Treiber

    Boot Code für SD Karte und künftige Floppy- und Festplattenlaufwerke

    Fehlerkorrektur für den Disassembler, wie von jet2blue gefunden und vorgeschlagen.


    SD Karten werden- wenn vorhanden - soweit korrekt erkannt und bei einem Reset wird zunächst der MBR geladen. Wenn hier der Boot Indikator gesetzt ist, wird der Boot Block der Partition 0 geladen. Falls dort dann der OEM String "JCOS" gefunden wird, springt die Reset Routine zum im Boot Block gespeicherten Code und führt ihn aus. Falls ihr eine SD Karte eingelegt habt, könnt ihr nach einem Reset den Boot Block im Adressbereich $600-$7FF ansehen und so prüfen, ob die Karte erkannt wurde. Ihr dürft mir da gerne Rückmeldung geben, ob das bei euch funktioniert. Ich habe jetzt mal 7 Karten mit unterschiedlichen Größen ausprobiert, bei denen das Lesen problemlos funktionierte.


    Natürlich kann z.Zt. noch nicht auf die SD Karten Daten zugegriffen werden, da noch kein DOS und somit keine FAT Treiber vorhanden ist. Ich werde in den kommenden Monaten daran arbeiten. Zusätzlich steht aber noch eine Grafikkarte ganz oben auf der ToDo Liste. Mal sehen, was mich da mehr antreibt.


    Vom 29.4. bis 1.5 bin ich auf dem VCFe in München. Vielleicht sehe ich ja dort ein paar von euch. Würde mich sehr freuen.


    Soweit wünsche ich euch erst mal viel Spass mit dem neuen BIOS.


    Jörg

  • Klasse, Jörg, vielen Dank!

    ___________________________________________________________________________________________________

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

  • Danke Jörg, das ganze scheint zu funktionieren. Kann ich etwas testen?

    ___________________________________________________________________________________________________

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

  • Jörg, das wäre wahrlich der Oberkracher!


    Macht ihm doch nicht so einen Druck. Dafür braucht er erstmal eine Auszeit und ein wenig Einlesen und Sinnieren, was denn eine gute Lösung sein könnte. Vielleicht kann man dafür ja auch mal "Sammeln", was die Grafik minimal können soll und die "User" sich so vorstellen würden.


    Es gibt da viele Für und Wider. Das geht schon beim Karten-Format los, und über Sprites und Auflösungen und Anschlüsse (VGA; DVI (?)) bis zu Colors und Speed und v.a. wie gut man am Ende eine Bibliothek damit aufmachen kann, die gern benutzt wird. Interessante Sachen wie VideoRAM einzeln (evtl. sogar double-buffered) und RAM für Sinustabellen und evtl. eine eigene CPU auf der Karte zu malen und als Blitter sind ja per se erstmal auch nicht ausgeschlossen. ;)



    Warum das Ganze: weil sich in dem Moment der kleine Rechner zu einem Gesamtsystem mausert. Inkl. Keyboard und SD-Card und dann auch in die Liga FOENIX / Commander16 / UltimatePET vorstößt / vorstoßen kann. Die gute (und praktikable) Grafik entscheidet da schon ein bißchen darüber mit.

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

  • zu keiner Zeit gab es hier im Thread irgend einen Druck - Jörg entscheidet das für sich was er kann und will.


    Mein Beitrag sollte lediglich signalisieren, dass ich auf jeden Fall dabei bin und Jörg somit irgendwann abschätzen

    kann ob überhaupt Interesse an sowas besteht.....

  • Zum Thema Grafikkarte:


    Zunächst, ich fühle mich durch eure Kommentare nie unter Druck gesetzt. Im Gegenteil, die Rückmeldungen, ob ihr für den Junior ][ irgendetwas sinnvoll/notwendig findet ist für mich ja auch eine sehr interessante Information.


    Bzgl. der Planung einer Grafikkarte hatte ich bereits mit Norbert einige Überlegungen ausgetauscht.

    Grundsätzlich gäbe es zwei Ansätze:


    1. Retro Bauteile

    2. Moderne Alternativen.


    Bei den Retro Bauteilen hatte ich den Yamaha V9938 im Auge. Mit Auflösungen bis 512x512 Pixel, Linien und Sprite Befehlen eigentlich der geeignete Kandidat. Show Stopper sind aber der Preis (ca. 35€) und die Tatsache, das ich hier nur SCART RGB oder mit Zusatzbaustein auch SVHS und Composite, aber eben kein VGA Signal bekomme (ließe sich aber per SVHS/VGA Wandler machen).

    Die moderne Alternative wäre für mich ein ESP32 mit der Grafikbibliothek FABGL. Kann VGA mit 64 Farben und Auflösungen bis 800x600 (evtl auch 1024x768), Sprites, Linien, Rechtecke, Ovale. Ausserdem benötigt man keinen zusätzlichen Speicher, und die Kosten liegen bei ein paar Euro. Fühlt sich natürlich irgendwie nach "Beschiss" an, ist aber pragmatisch gesehen die bessere Lösung.Da die Bib schon existiert, spart man sich da eine Menge Zeit und Nerven. Alternativ gibt es natürlich auch die BitLuni Bibliothek, mit der man sogar auf 14Bit Farbtiefe kommt.


    Propeller und EF9366 habe ich schon mal ausgeschlossen, weil nicht wirklich gut (Propeller) oder zu teuer, schwer zu bekommen und sehr eingeschränkt in der Funktion (EF9366).


    Ich eröffne jetzt also mal die Diskussion, was für euch wichtig/richtig/notwendig wäre, welche anderen (eventuell von mir noch nicht berücksichtigten) Grafik Chips noch möglich wären, und welche Ziele damit überhaupt erreicht werden sollten (besonders hohe Auflösungen, viele Farben, Schnittstelle, Kompatibilität, echtes Retro oä.).


    Bin gespannt


    Jörg

  • Ich halte eine ESP32 Lösung für machbar und gut genug. 64 Farben bei der genannten Auflösung wären für mich auf jeden Fall ausreichend, die Performance dürfte für Retro-Spiele oder kleinere Grafikanwendungen auch hoch genug sein.

    ___________________________________________________________________________________________________

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

  • zu keiner Zeit gab es hier im Thread irgend einen Druck - Jörg entscheidet das für sich was er kann und will.


    Ja, war auch vielleicht nicht so gemeint, wie es evtl. rübergekommen ist. War evtl. einfach nicht die passende Formulierung / Wort.


    Ich wollte doch nur vorschlagen, daß vermieden wird, daß er versucht bis in 2 Wochen was zusammenzuzaubern, was dann nur so "halbgar" ist, nur damit es demonstrierbar ist. Daß er das wohl könnte, dürfte allen hier mittlerweile klar sein. Das "Entwicklungstempo" ist schon teilweise recht hoch. Woanders liegen solche Projekt manchmal jahrelang ab, bis es mal weitergeht.



    Zunächst, ich fühle mich durch eure Kommentare nie unter Druck gesetzt. Im Gegenteil, die Rückmeldungen, ob ihr für den Junior ][ irgendetwas sinnvoll/notwendig findet ist für mich ja auch eine sehr interessante Information.


    s.o. ; das ist aber schön, wenn Du es so siehst.




    Ich mach mal 3-4 Punkte zur Grafikkarte, die mir so einfallen würden:


    a.) die Kartengröße : das ist eher auch was langfristiges, nämlich die Idee, daß ja ExtensionCards auch halbe Breite des bisherigen Platinenformats haben könnten. Dann würden auch 2 nebeneinander passen, wenn man die Backplane entsprechend anpaßt. Es gäbe dann potentiell normale Breite und doppelte Breite. Und das wäre dann ziemlich genau so, wie es am Archimedes gemacht worden ist. Guck Dir das mal an ( die fullsize Module waren eher selten, weil man das oft gar nicht braucht, wenn es um spezielle Funktionserweiterungen geht)(Suchstichworte A310 A410 A440 A5000 Backplane Podule full-size bzw. double-width vs. normales Podule). Ich fand das da immer ziemlich gut.


    b.) old-school Chips gibt es eher ziemlich genau drei, die infrage kämen. Der NEC7220 , der Motorola 6845 [WikiP] und der Thomson EF936x. Man bekommt die noch, aber wahrscheinlich auch nicht ewig. Vor allem aber wird die Grafik selbst dann eben auch sehr old-school ( = langsam, wenig fabrig, klein Auflösung )


    c.) wichtig wäre im Vorhinein zu klären, an was die Leute sowas anschließen wollen. Ein Videochip, der Video ausgibt stößt sofort auf das 15 kHz Problem und die nicht mehr vorhandenen Monitore (auch wenn mir klar ist, daß die aktuelle "Zielgruppe" sowas rumstehen haben wird). Interessante Alternativen wären wohl am ehesten VGA oder etwas, was von einem moderneneren Monitor/TFT sinnvoll skaliert werden kann. Evtl. auch was, was es so noch nie gab - d.h. Auflösung klein, aber hohe Frequenzen. Zu hoch geht die Auflösung ja wohl auch nicht - oder nur unter bestimmten Voraussetzungen (aktive CPU auf der Karte), weil der Rechner sie ja auch bespielen muß.


    d.) evtl. sollte man auch gar nicht an "die" Grafik denken, sondern von vorneherein mal von mehreren Optionen ausgehen. Das ist eher wichtig für die Software. Man könnte dann aber mit einer Variante anfange, die es schon gibt. Mir ist neulich hier der "Mikro PET" bzw. "Ultimate PET" untergekommen - und der Grafikteil da sieht so aus, als könne der auch woanders benutzt werden. Mal ansehen !

    GitHub - fachat/MicroPET: A Commodore PET replica and more - with all new parts in 2022
    A Commodore PET replica and more - with all new parts in 2022 - GitHub - fachat/MicroPET: A Commodore PET replica and more - with all new parts in 2022
    github.com

    MicroPET/upet-system-architecture.png at main · fachat/MicroPET
    A Commodore PET replica and more - with all new parts in 2022 - MicroPET/upet-system-architecture.png at main · fachat/MicroPET
    github.com

    MicroPET/CPLD at main · fachat/MicroPET
    A Commodore PET replica and more - with all new parts in 2022 - MicroPET/CPLD at main · fachat/MicroPET
    github.com

    Könnte mir sogar vorstellen, daß der Autor sich freut, wenn das an einer anderen 6502 Machine ebenfalls benutzt wird.


    e.) wichtig wäre ein schneller Textmode, was aber bei entsprechend moderner Grafikhardware kein Thema sein sollte - die kann dann auch rein Grafikbasiert sein und trotzdem schneller ist als der Rechner, der den Text liefert. Sehr schön bei 8Bit Rechner fand ich immer die Variante mit den umstellbaren Zeichensätzen, das ginge dann ja wohl auch. Interessant wäre da die Auflösung. Denn mit 40x25 Zeichen werden die wenigsten heut' Freude haben. Sollte also schon auch sowas wie 64x40 Minimum können.


    f.) Colours. Bunt ist schon schön, aber auch "teuer" (RAM). Daher wäre zumindest auf der 8Bit Seite sicher irgednwas wie eine Palette Lösung oder ein geschicktes Aufteilen von 8Bit in Farbanteile interessant. Aber auch da wird es ohne externes VideoRAM schnell eng werden.


    g.) reine "Postscipt" Lösung wäre sicher ein Novum für 8Bit, also bißchen in der Art der Data Becker Graphikkarte für den PET, die hier mal vorgestellt worden ist. Mit Spielen ist dann aber nicht viel los.


    h.) Sprites; wenn das mal angefangen werden soltle, dann evtl. am ehesten als add-on zu Grafikkarte. Das sollte man dann aber schon beim Bauen dieser mal mitüberlegen. Das komplizierte an Sprites ist m.E. nicht das nachträgliche Einblenden in den Videobereich (sowas habe ich schon mal irgendwo als Bastelei gesehen) sondern vielmehr die Geschichte mit dem automatischen Collision Check.

    (Die Menge der Sprites sollte mindestens einen halben Bildschirm überdecken können. Mehr ist besser.)


    i.) Positionsangaben kann man evtl. auch "un-exakt" machen. Dann käme man mit sowas wie 8Bit = 256 = 100% hin. Positioniert wird dann immer im "256"er Modell. Der Bildschirm hat also immer 256x256 Pixel - nur die Auflösung kann wesenltich höher sein. Ein CIRCLE 128,64,64 wäre dann ein Kreis bei X = 50% von XMax und Y = 25% von YMax. Damit man mit sowas auch exakt zeichnen kann, lassen sich dann Zusatzparameter mitgeben, die das pixelgenau ausgleichen. CIRCLE 128,64,64,xdelta,ydelta

    Probiert mal einen Sinuskurve mit einem Sinus, der nicht in Grad oder Neugrad läuft zu zeichnen, sondern mit 256 Stufen von 0 bi 2*'Pi, das geht eigentlich ganz vorzüglich, wenn man nicht gerade CAD macht.


    j.) 3D Grafik ... ;) man gewinnt da viel, wenn man kleine Dreiecke in Hardware schnell zeichnen kann. Und Z-Buffer muß auch passend vorhanden sein. Und DoubleBuffer. Bei 512x384 oder so bleibt das trotzdem noch im überschbaren Rahmen. Ganz eigentlich will man evtl. nur den Pointer auf die Rohdaten der Modell und den Drehwinkel von 8Bit Seite aus übergeben. Und evtl. Koordinaten, wo das errechnte Bild erscheinen soll. Die Drehmatrix etc. kann man auch nicht vernünftig auf 8Bit machen - das wird zäh ohne Ende. Wäre aber eher ein potentielles Grafikkarten add-on.


    k.) für Doom fehlt dann noch Sound ... :)




    PS: schöne Seite mit Übersicht über old-school PET Grafiken bei http://mikenaberezny.com/hardw…m/cbm-hsg-graphics-board/ und rechts in der Seitenleiste weitere

  • noch eines


    wegen hier



    ist es evtl. ja eine schöne Variante Text und Grafik per se zu überlagern.


    Zumindest, wenn das Projekt da mal was zu einer echten Hardware führt. Geht aber auch schnell voran da.

  • und noch : PicoVGA


    PicoVGA - VGA/TV display on Raspberry Pico, demo samples
    PicoVGA library allows output from Raspberry Pico to a VGA monitor or PAL/NTSC TV interlaced, with a focus on ease use in technical and gaming applications.M...
    www.youtube.com


    PicoVGA - VGA/TV display on Raspberry Pico

    GitHub - Panda381/PicoVGA: VGA/TV display on Raspberry Pico
    VGA/TV display on Raspberry Pico. Contribute to Panda381/PicoVGA development by creating an account on GitHub.
    github.com

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

  • Hallo

    Ich habe mich hier angemeldet wegen des junior computers ][

    Ich habe die junior computerplatine 3.1B und die I/O 1A


    Ich habe das Proplem das ich das enbasic nicht zum laufen bekomme.

    Ich habe nach anleitung von

    2ee

    #946

    2ee

    das Basic Hochgeladen.

    aber es startet nicht, sondern es bleibt hängen mit B000-R


    jetzt habe ich im beitrag von

    DL8EBD

    #982


    gelesen das man einen Cut am U3 durchgeführen muss


    währe es möglich mir zu erlären wo dieser cut durchgeführt werden muss?


    Danke für das Projekt und eure mühe

  • Hallo Jürgen,


    hier siehst du, was auf der Rückseite der I/O-Karte zu tun ist. Der Cut ist oben links die helle Stelle auf dem Bild in der Mitte oberhalb des 10k Widerstands. Beachte bitte auch die kleine Drahtbrücke in der Mitte rechts. Die Schaltung ist hier. Die Dioden sind 2 x 1N4148, der Widerstand 10k .


    Liebe Grüße,

    Norbert

    ___________________________________________________________________________________________________

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