Junior Computer ][

  • Nicht schlimm, ich wollte nur anderen das Grübeln ersparen, die noch < V.0.8 haben. :)

    ___________________________________________________________________________________________________

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

  • http://www.sunrise-ev.com/photos/6502/EhBASIC-manual.pdf

    (ist auch darüber (up) eine hier "passende" Webseite)



    edit: Es gibt auch ein hübsche Aufbereitung als Webseite bei

    http://www.6502.org/source/monitors/ehbasic/ehbasic.html

  • Ich war halt mal neugierig. Scheint auch ein ziemlich komplettes BASIC zu sein. Und dank Sourcecode ( z.B. bei https://github.com/Klaus2m5/6502_EhBASIC_V2.22 ) evtl. sogar ein schönes Anschauungsobjekt für Assembler Lerner. Mir gefallen ja DEEK und DOKE ganz gut. Schöne Schleifen haben auch was für sich. Nur mit der Grafik hapert es naturgemäß ein wenig. Dafür sehen diese Interruptsteuerungen wieder sehr interessant aus, verdienen auf Fälle noch mal irgendwann einen zweiten Blick.

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

  • Mir gefallen ja DEEK und DOKE ganz gut

    Ja, die Befehle sind schon praktisch, ich hätte sie aber DPOKE und DPEEK genannt. Deek und Doke klingt irgendwie nach zwei kleinen Schweinchen :P.


    Schöne Schleifen haben auch was für sich

    Genau, ebenfalls eine sehr gute Befehlserweiterung. Allerdings erschließt sich mir nicht, warum er es so umständlich gemacht hat. DO...UNTIL, DO...WHILE und DO...LOOP wären geschickter gewesen als DO...LOOP UNTIL und DO...LOOP WHILE. Ausserdem macht eine DO...WHILE Schleife eigentlich keinen Sinn, dass müßte dann schon WHILE...DO oder so ähnlich sein, da ich eine WHILE Abfrage bitte sehr vor dem Eintritt in eine Schleife haben möchte (siehe Pascal).

    Die IF...THEN...ELSE Abfrage ist leider auch etwas inkonsequen, da bei einem ...ELSE... : ... alles nach dem Doppelpunkt immer ausgeführt wird, statt dann im ELSE Zweig behandelt zu werden.

    How ever, ich bin aber froh, dass es EhBasic gibt. Ich hab zwar schon einige (Basic) Interpreter geschrieben, allerdings nicht in Assembler, dass ist nochmal eine extra Herausforderung und muss gerade wirklich nicht sein. Vor allem vor den FP Funktionen kann es einem bei einem 8Bit Prozessor schon gruseln :zombie:.


    Nur mit der Grafik hapert es naturgemäß ein wenig.

    Da das Projekt glaube ich ursprünglich für Terminalbetrieb ausgelegt war, macht Grafik natürlich keinen Sinn. Auch ansonsten hätte die Portierbarkeit ziemlich gelitten. Aber mal schauen, ob der Junior noch irgendwann eine Grafikkarte spendiert bekommt, dann kommen da auch Grafikbefehle in EhBasic rein :).


    Dafür sehen diese Interruptsteuerungen wieder sehr interessant aus, verdienen auf Fälle noch mal irgendwann einen zweiten Blick.

    Die beiden Befehle habe ich bisher noch nicht angelangt. Prinzipiell sollte IRQ kein Problem sein, da ich sowieso eine Interrupt Daisy-Chain implementiert habe. Beim NMI muss ich da noch ein wenig Hand anlegen.

  • Aber mal schauen, ob der Junior noch irgendwann eine Grafikkarte spendiert bekommt, dann kommen da auch Grafikbefehle in EhBasic rein :) .


    Da gäbe es ja doch "nebenan" gerade dieses interessante PET Grafik Teil namens "Low Speed Grafik". Müßte an sich passen und man kann wahrscheinlich die Software relativ 1:1 übernehmen. Wenn man das kann zumindest. Vielleicht wäre es ja einen Blick wert. und 512x256 oder 512x512 ist so schlecht nicht. Der Nachteil ist wohl v.a. dieses ExtraRAM, aber dadurch vereinfacht sich wohl die "Einbindung ins System" etwas, aber für schnelle Grafik ist das schlecht, Games z.B. - weil man ja mit der CPU nicht direkt ins VideoRAM kommt.

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

  • Da gäbe es ja doch "nebenan" gerade dieses interessante PET Grafik Teil namens "Low Speed Grafik".

    Das werde ich mir morgen gleich mal anschauen. Vielen Dank für den Tipp. Die Auflösung hört sich für mich nach einem EF9366 an. Bin gespannt...


    Bezüglich EhBasic: Ich hab gerade den Befehl BEEP implementiert. Frei nach Tom Hanks: "ICH HABE FEUER GEMACHT!!!" :sunny::thumbup:



    Ergebnis: Beep...


    Anbei das neue Goldstückchen (keine Sorge, ich werde jetzt nicht stündlich neue Versionen veröffentlichen).

  • Och, ist doch schön, das ganze wachsen zu sehen. :)

    ___________________________________________________________________________________________________

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

  • Da gäbe es ja doch "nebenan" gerade dieses interessante PET Grafik Teil namens "Low Speed Grafik". Müßte an sich passen und man kann wahrscheinlich die Software relativ 1:1 übernehmen. Wenn man das kann zumindest. Vielleicht wäre es ja einen Blick wert. und 512x256 oder 512x512 ist so schlecht nicht. Der Nachteil ist wohl v.a. dieses ExtraRAM, aber dadurch vereinfacht sich wohl die "Einbindung ins System" etwas, aber für schnelle Grafik ist das schlecht, Games z.B. - weil man ja mit der CPU nicht direkt ins VideoRAM kommt.

    Hallo ThoralfAsmussen , ich hab mir den Thread mal angesehen. Wie ich vermutet hatte, handelt es sich um den EF9366. Den hatte ich tatsächlich bereits mal als GDP angedacht. Ich hab zwar bei mir noch einen in der Bastelkiste, aber ansonsten ist der IC leider nur noch schwer herzubekommen.

    Das tolle am EF9365/66 ist ja, dass du beliebig viele Speicher Panes übereinander schalten kannst und damit die Fartiefe problemlos auch auf 32Bit bringen könntest (was dann aber 32 Speicherseiten a 16KB = 512KB wären).

    Auf dem VCFe habe ich mich mit den zwei Jungs vom Steckschwein Projekt unterhalten. Die nehmen einen Yamaha V9958, den Nachfolger des TMS9929, der glaube ich auch im TI99/4A verwendet wurde. Der V9958 scheint recht gut erhältlich zu sein, allerdings habe ich mich mit dem Chip noch nicht wirklich beschäftigt. Jedenfalls nutzt der auch seinen eigenen Speicher.

    Bevor ich mit einer Grafikkarte anfangen würde, stände bei mir aber auch erstmal ein (3,5") Floppy-Controller auf der Wunschliste. Den würde ich zur Not auch mit einem Microcontroller basteln, da die alten ICs auch nicht mehr beim Bäcker zu bekommen sind. Und wenn ich tatsächlich ein uC für die Floppies nehme, lässt sich sicherlich auch noch recht einfach eine SD Karte darüber ansprechen.

  • Die Idee mit dem Floppy-Controller ist super! Bei der Implementierung einer Grafikkarte wäre aber auch ein PS/2 Keyboard sinnvoll.

    ___________________________________________________________________________________________________

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

  • Bei der Implementierung einer Grafikkarte wäre aber auch ein PS/2 Keyboard sinnvoll.

    Das kann man natürlich auch über den uC anbinden. Ich hatte aber daran gedacht, den 6532 RIOT neben dem Druckeranschluss noch dazu zu verwenden, eine ASCII Tastatur anzuschließen. An meiner Apple 1 Replica hab ich ja eine Cherry ASCII Tastatur dran, mit der wollte ich mal anfangen und eventuell dann eine eigene Tastatur entwerfen.

  • Auf dem VCFe habe ich mich mit den zwei Jungs vom Steckschwein Projekt unterhalten. Die nehmen einen Yamaha V9958, den Nachfolger des TMS9929, der glaube ich auch im TI99/4A verwendet wurde. Der V9958 scheint recht gut erhältlich zu sein, allerdings habe ich mich mit dem Chip noch nicht wirklich beschäftigt. Jedenfalls nutzt der auch seinen eigenen Speicher.

    Zum Thema Bildschirm am Junior ...



    Da kann ich folgendes sehr empfehlen:

    https://www.olimex.com/Product…-VGA/open-source-hardware


    Das MOD-VGA ist mit 25€ sehr preisgünstig.

    Es ist ein 1:1 Clone des zigfach bewährten GameDuino, aber halt erhältlich.


    Es kann 512 Farben.

    Es kann hunderte Sprites verwalten.

    Es hat Sprite Kollisions Erkennung.

    Es hat Sprite Rotation und Spiegelung.

    Hintergrund: 512x512 Pixel

    Zeichensatz: 256 Zeichen

    Pixel-smooth X-Y Wraparound Scroll

    Audio Ausgabe mit 12 Bit auf 64 Kanäle



  • Diddl: Sieht gut aus! Ich kenne das ganze ähnlich per Parallax Propeller Chip realisiert, der zwar grafisch nicht ganz so üppig ist - Sprites etc. kann er auch - , aber er kann auch noch mehr. Alles eine Frage der Programmierung. Hier zum Beispiel werden mit diesen Mikrocontrollern ein Spectrum, ein Colour Genie und ein TRS-80 emuliert. Damit läuft übrigens auch der Zeta Z80 von N8VEM (VGA, Tastatur, Maus, SD-Karte). Einziger größerer Nachteil wäre die notwendige Pegelwandlung von/nach 3,3Volt. Deine Lösung ist aber vermutlich einfacher und günstiger.

    ___________________________________________________________________________________________________

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

  • Ging es nicht um eine Grafikkarte ? Das hier sind doch eher "self-contained Rechner" mit Grafikoutput. Und auch wenn man den als pure Anzeige mißbraucht, dann hat man bei der Konstruktion doch immer, zumindest für Bitmaps o.ä., das Problem, daß der 6502 die Daten dahin schaufeln muß. Und das dürfte bei 400x300 Pixeln ganz schnell das Level sprengen, was diese CPU so erreichen kann. Als externer "Grafikgenerator" ist es aber wahrscheinlich witzig (dieses MOD-VGA), dann gehen halt nur Kommandos ala "zeichne einen Kreis".


    Ich habe auch noch nicht verstanden, wieviel (oder ob überhaupt) RAM auf der einfachen Variante zu finden ist.


    Prinzipiell sind das aber lustige Teile (auch der Propeller).

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

  • Ja, da hast du recht, würde den 6502 vermutlich schon ein gutes Stück Performance rauben ::ghost::.

    ___________________________________________________________________________________________________

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

  • Das ESP32 Terminal könnte man ja auch problemlos als Grafikkarte nutzen. Die FabGL Library kann auch Sprites, VGA Auflösungen, Sound, etc. und die ESP Modue sind billig und einfach auf eigenen Platinen zu nutzen. Aber letztlich geht es mir wie ThoralfAsmussen schon gesagt hat ja um einen Grafik Chip, der, wenn irgend möglich, noch retro ist. Bei so Dingen, wie Floppy Controller hab ich weniger Hang zum Alten, weil diese Controller ja eigentlich auch schon spezielle, vorprogrammierte Microcontroller waren. Bei einem Grafik Chip könnte ich mir aber auch vorstellen einen uC im standesgemäßen DIL 40 Gehäuse (ATMega 64, Propeller etc.) zu nutzen. Aber einen ESP32 oder einen Controller im Quadpack Gehäuse wie bei dem Olimex ist für mich eher eine Notlösung.

  • Ging es nicht um eine Grafikkarte ? Das hier sind doch eher "self-contained Rechner" mit Grafikoutput.

    Nee das Gameduino ist eine reine Grafik und Soundkarte.


    Gedacht ist es ja als Shield für einen Arduino.

    Aber es funktioniert an jedem 8 Bit Rechner.



    Ja, da hast du recht, würde den 6502 vermutlich schon ein gutes Stück Performance rauben ::ghost:: .

    Ja deswegen Sprites.

    Und Kollisionsdetektion.


    Das war schon beim C64 die optimale Konfiguration für einen 6502. :)



    Mag sein, dass das GameDuino mit einem modernen Chip arbeitet.

    Aber die Technik und die Art und Weise ist aus der Zeit des 6502.

    Auch die Farbvielfalt gab es damals schon, bei höher wertiger Hardware wie Spielautomaten.

  • Gestern Abend gab es jetzt noch den Befehl PLIST von mir als Erweiterung von EhBasic.

    Und hier das Ergebnis



    Gerade eben hab ich auch noch einen Fehler im SWAP Command behoben. Der Befehl hat immer Type mismatch Error geworfen.

    Für alle, die den Fehler auf einem anderen Rechner haben: Einfach in der Routine LAB_SWAP den Befehl BPL SwapErr in BNE SwapErr ändern.

    Einmal editiert, zuletzt von 2ee ()

  • Auf dem VCFe habe ich mich mit den zwei Jungs vom Steckschwein Projekt unterhalten. Die nehmen einen Yamaha V9958, den Nachfolger des TMS9929, der glaube ich auch im TI99/4A verwendet wurde. Der V9958 scheint recht gut erhältlich zu sein...

    ...hier ist ein aus meiner Sicht interessanter Forumsbeitrag zum V9958. Hier wird speziell auf Ein Videoboard gelinkt.

    ___________________________________________________________________________________________________

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

    Einmal editiert, zuletzt von NorbertJ ()

  • Ja, das ist mir auch bereits aufgefallen. Sehr grenzwertig. In China habe ich ihn gerade für 15,28€ inkl. Versand gefunden. Aber wer weiß, ob der funktioniert oder Fake ist. hier

    ___________________________________________________________________________________________________

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

  • Jetz hätte ich gerne mal eure Meinung zu folgender Problemstellung gehört.

    -------------------------------------------------------------------------------------------------------------


    Auf der Erweiterungsplatine wollte ich ursrünglich ein 32KB ROM einsetzten, von dem dann eine per Software wählbare 8KB Bank im Speicherbereich $C000 bis $DFFF eingeblendet werden könnte. Durch den Einsatz des EhBasic hat sich der Plan eigentlich erübrigt, da folgendes Problem:


    Das EhBasic braucht bisher 10.322 Byte und im Haupt-ROM habe ich jetzt gerade noch 4.142 Bytes frei.

    Ich kann also nun auf der Erweiterungsplatine eine der folgende drei Möglichkeiten gestalten:


    (Anmerkung - Die im unteren 8KB Block liegenden 2KB Speicher werden im folgenden nicht berücksichtigt, da sie durch I/O Blöcke vom Hauptspeicher ab $2000 abgetrennt sind und vom Basic Interpreter deshalb nicht genutzt werden können)


    1. 16KB ROM mit dem Basic auf die Zusatzplatine. Dann wären nur noch 32KB RAM aber insgesamt 9KB ROM übrig. Adress-Decodierung einfach.


    2. 16KB ROM auf die Zusatzplatine, von dem nur 12KB als 3x4KB im Speicherbereich $B000 bis $DFFF eingeblendet werden. 36KB RAM und 5KB ROM frei. Zusätzliche Adress-Decodierung aufwändig.


    3. 8KB ROM auf die Zusatzplatine, den freien Bereich des Haupt-ROMs an den Anfang schieben und so zusammenhängende 12KB aus 4KB+8KB schaffen. Keine zusätzliche Adress-Codierung nötig, 40KB RAM frei, aber das Basic muss in zwei ROMs aufgeteilt werden. Knapp 2KB ROM wären dann Stand jetzt noch für Gedöns übrig (Basic Erweiterungen, Kassetten Monitor, etc.).


    Mein Favorit ist natürlich 3. wegen des geringsten Hardwareaufwands. Es könnte auch jeder, der keine VIA-Karte braucht, ohne viel Aufwand eine kleine ROM Karte an den Slot hängen und den Junior so Basic fähig machen. Aber klar ist auch, dass das Aufteilen des Basics in zwei ROMs nicht gerade schön ist, und ein Rumschrauben am Basic-Interpreter dann auch nicht gerade einfacher wird.


    Die ersten Variante wäre auch einfach zu bewerkstelligen, bietet ebenfalls die einfache Anbindung des Interpreters an den Rechner, verschwendet aber ziemlich viel RAM und Stand jetzt wüsste ich nicht, was ich in die 9KB freies ROM quetschen sollte (OK in Zukunft evtl. ein DOS, Grafik Kernel, blabla).


    Variante 2. braucht einfach eine komlexere Adress-Decodierung, (weil die bisherige Aufteilung 8KB Adressblöcke sind) und ist deshalb nicht gerade mein Freund. Bietet aber immerhin 4KB mehr RAM als 1. Einfaches "ROM an den Slot hängen und fertig" ist dann aber nicht mehr.


    Was meint Ihr? :grübel:

  • Hallo Jörg,

    sorry, bin gerade erst nach Hause gekommen, möchte aber noch antworten. Da du gerade in der letzten Zeit über Floppy, Sound, RTC und Grafik nachgedacht hast, sollten wir dafür ausreichend ROM frei halten. Eine Grafik könnte - wenn nicht an Board des Chips - auch eigenes RAM bekommen.

    Die zweigeteilte Basic-Lösung finde ich ebenfalls in der Tat nicht so schön. Wie groß wird denn z.B. ein DOS?


    Liebe Grüße

    Norbert

    ___________________________________________________________________________________________________

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

  • Hallo Norbert,


    der (original) Junior Computer hat ja das Problem, dass er für die (wenigen) I/O Bereiche jeweils nur 1KB reserviert hatte, und der Junior 2 das aus kompatibilitäts Gründen natürlich auch so macht. Das ROM konnte als einzelner Baustein auch nie größer als (nutzbar) 8KB werden - wegen der Kompatibilität. Ausserdem gibt es bei der 6502 leider keinen getrennten I/O Bereich wie bei einer 6510 oder einer Z80, sprich ich verbrate hier immer kostbaren Adressbereich des Hauptspeichers.

    In dem pro I/O Port nutzbaren 1KB des Juniors liegt dann jeweils der Registerbereich des I/O Bausteins und ein eventuelles ROM, welches für rudimentären Code zur Chip Steuerung ausreichen kann, bei z.B. komplexen Grafikfunktionen aber schon eng wird. Deshalb ist natürlich ausreichend Platz im System ROM wichtig, wenn es gesetzte Funktionen sind, sprich, ich weiß (oder voraussetze), dass der RTC, der Sound-Chip oder der Grafik-Controller immer im System vorhanden ist. Das ist bei einer Steckkarte aber gerade nicht der Fall. Hier ist alles Option und das System ROM für solche Code definitiv der falsche Ort.


    Bei einem DOS wiederum, kann und sollte ich (siehe CP/M, MS-DOS) nur einen System abhängigen Teil im ROM halten und den Rest vom Datenträger lesen. Deshalb ist hier eine ausreichende Menge RAM genauso, oder sogar noch wichtiger. Ein DOS BIOS muss eigentlich "nur" den Controller-Baustein (Motor An/Aus, Kopf auf Position X, etc.) steuern, was locker in ein paar hundert Byte eines Steckkarten ROMs passt. Der Rest ist dann das eigentliche DOS, dass ich aber natürlich erst durch den Boot Vorgang ins RAM lade.

    Bei einer Implementierung von FAT (besser FAT32) schätze ich mal ca. 5-8KB Speicherbedarf, inkl. LOAD, SAVE, CD (legt mich da aber bitte nicht fest). Die weiterführenden Befehle (DIR, FORMAT...) werden dann erst bei Bedarf wieder vom Datenträger geladen, gehören also nicht zum DOS Kern dazu und können auch mehrere KB verbraten.


    Kurz, mehr RAM wäre also wichtiger als mehr ROM, außer man implementiert ein sehr statisches DOS im ROM, was aber auch keine besonders gute Idee ist. Deshalb gefällt mir ja auch die Option 3 am Besten, auch wenn ich dann das Basic stückeln müßte. Ein 8KB Basic wäre natürlich das Schönste gewesen, aber dann fehlen oft wichtige Befehle oder ich kann den Befehlssatz schlecht oder garnicht erweitern.


    Übrigens bin ich beim Sound-Chip gerade mit dem SN76489 am liebäugeln - kennt den jemand aus den MSX Rechnern, und wie gut ist der im Vergleich mit einem AY-3-8910?

  • Hallo Jörg,

    das ist einleuchtend und da schließe ich mich dir auch gerne an! :) Der Soundchip soll im Tandy 1000 gewesen sein, drei Rechteckgeneratoren und einen Noise-Channel haben. hier

    ___________________________________________________________________________________________________

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

    Einmal editiert, zuletzt von NorbertJ ()

  • Hallo Jörg,

    zu Deiner Ursprungsfrage: Ich finde die Variante 3 am interessantesten.

    Vorteile Überschaubare Adressdekodierung. Möglicherweise könnte man hier Deine ursprüngliche Idee mit dem 32 K Eprom verbinden.

    Wenn man (per Jumper?) eine Bank mit Forth oder Comal auswählt sollte der ausgelagerte Teil des Basics egal sein.

    Einziger Nachteil ist es den Basic-Code teilen zu müssen. Das stelle ich mir aber als nicht so großes Problem vor, Zwischengelagerter Produktionsschritt.


    Die Version mit DOS usw. sieht dann doch schon wieder ein wenig anders aus. Da muss ich aber mal nachdenken. Hier sollte man sich erst mal

    überlegen wie die Hardware dazu aussehen soll.

  • Der Soundchip soll im Tandy 1000 gewesen sein, drei Rechteckgeneratoren und einen Noise-Channel haben. hier

    Danke! Ich werde mir das definitiv überlegen, vor allem, weil der noch so schön billig zu haben ist (oder zu mindest die Fake Bausteine 8o). Ausserdem kann man den offensichtlich leichter ohne vorgeschalteten VIA/PIA Port nutzen.


    Möglicherweise könnte man hier Deine ursprüngliche Idee mit dem 32 K Eprom verbinden.

    Wenn man (per Jumper?) eine Bank mit Forth oder Comal auswählt sollte der ausgelagerte Teil des Basics egal sein.

    Das sehe ich auch so. Allerdings hat das Comal, dass ich mir angesehen habe auch schon wieder mehr als 8KB :wand:. Forth müsste aber z.B. gehen. Die Überlegung ist auch, die 8K ROM der Erweiterungskarte komplett ausblendbar zu machen, so dass das RAM wieder nutzbar wird, dann hat man die Option, hier einen anderen Interpreter zu nach zu laden und verliert nicht noch mehr Speicher. Das Bank Switching mache ich über das Schreiben in eine Speicheradresse der Karte. Dann muss man da keine Jumper bewegen. Ich werde den bisherigen Schaltplan diese Woche mal posten.

    Einziger Nachteil ist es den Basic-Code teilen zu müssen. Das stelle ich mir aber als nicht so großes Problem vor

    Die Aufteilung ist kein Problem. Einfach nach 8192 Byte abschneiden und den Rest dann ins System ROM. Es geht da letzt endlich nur um die Tatsache, immer zwei ROMs brennen zu müssen, wenn man eine Änderung in das Basic eingepflegt hat. Aber das sollte ja hoffentlich auch mal ein Ende haben, ich will ja nicht dauernd neue Features in EhBasic pflanzen.

  • Wenn das System umfänglich ausgebaut werden soll, also mit BASIC und anderen Programmiersprachen, Assembler und anderen größeren Applikationen, empfehle ich möglichst viel RAM zusammenhängen von page $00 bis HIMEM. Auch wenn das bedeutet, die Junior Memory Map zu ändern. Ein leistungsfähiger Massenspeicher wird dann auch notwendig. Betriebssystem und Programme werden ins RAM geladen. Damit ist man flexibel und die Wartung der Software wird stark vereinfacht. Neue Versionen sind dann auf dem Massenspeicher und nicht mehr zwingend im E(E)Prom.


    Ich spreche da aus Erfahrung. Im meinem modifizierten Junior habe ich RAM von $0000 - $F000, I/O - $F800 und BOOTPROM $F800 - $FFFF. Das System ist über 40 Jahre alt und läßt sich immer noch sehr gut warten und weiterentwickeln. Letztes Jahr habe ich endlich eine I2C-Schnittstelle implementiert :)


    Die nötige Anpassung der Software auf eine andere Memory Map ist ziemlich trivial und erfordert kaum Aufwand


    Just my 2 cts


    Dietrich

    Meine Computer: Elektor Junior, EPSON HX-20, Robotron PC1715, Poly-Computer 880, Schneider CPC464, APPLE II+, VIKTOR V386PX

    Mein Betriebssystem: CPM-65

  • Hallo Dietrich,

    beim Junior Computer 2 habe ich sowieso schon den Bereich $2000-$DFFF vollständig mit RAM gefüllt und die unteren 2K Adressen werden auch vom RAM genutzt. Außerdem sind 512 Byte im I/O Bereich der ACIA eingeblendet, die in meinem erweiterten Monitor als String- und Datenbuffer für Ein-/Ausgabe genutzt werden. Und genau dort habe ich auch den iBuffer des EhBasic reingelegt. Zudem liegen alle Sprungvektoren im RAM des RIOT.

    Eine Änderung der Ursprünglich Adressdekodierung oder ein Ändern des Original Monitor ROMs war für mich von vorne herein für den Junior 2 ausgeschlossen. Das wollte ich einfach so hinbekommen. Ich denke aber, dass man mit den vorhandenen Resourcen auch ganz gut zurecht kommt, immerhin hatten Rechner wie der C64 auch nicht viel mehr Speicher für Basic frei. Und ich finde es ja auch immer spannend, aus dem bischen verfügbaren Speicher und der Rechenleistung das Maximum heraus zu quetschen.

    I2C werde ich via VIA (Wortspiel :)) auch implementieren, das Bussystem fand ich immer sehr praktisch und hab das früher oft mit der Parallel-Schnittstelle unter MS-DOS implementiert um Elektronikbasteleien zu steuern. Eventuell kommt auch SPI mit dazu, aber wir werden sehen...

  • Denk(t) evtl auch mal über einen KontextSwitch im unteren Bereich nach. Man kann ja evtl. auch das RAM unten "multiplexen". Dann hätte man quasi sowas wie wie Pages und kann oben z.B. ab $FFFF abwärts 8K oder 16K oder auch 32K "ROM" einblenden. Den RAM Bereich ab dieser Untergrenze für ROMs gibt es dann auch nur einmal - als bei 32K gibt es nur einmal RAM ab $8000. Unten läßt man die Zeropage und ein wenig Verwaltung frei außerdem natürlich den Stackbereich, der ja fix liegt - also z.B. $0000 bis $0800 werden nicht geswitched, das RAM von $0000 bis $8000 kann aber umgeschaltet werden auf ein reales anderes RAM und hat eine eindeutige "Banknummer". Der CPU und den Programmen von sollte es eigentlich egal sein und es läßt vom speed her alles offen, nämlich Direktzugriff auf Stack und Zeropage sowie auf den Bereich ab z.B. $8000 als ROM Bereich. Probelm ist evtl eine potentielle Grafik, was sich aber auch nicht problematisch gestaltet in dem Moment, wo der Grafikchip (egal welche es denn wird) sein eigenes VideoRAM hat.


    Die Idee ist quasi wie eine RAM Bank - nur eben unten eingeblendet und gewechselt. Beispiel für sowas, wäre etwa die RAM Bank für C16 von Solder Synergie mit 256kB und prinzipiell nach oben offen (1MB gibts da als Modifikation) oder auch die REU für C64

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

    Einmal editiert, zuletzt von ThoralfAsmussen ()