Nee muss es nicht, hat ja aber auch gar keiner behauptet. Ich denke es ist jedem hier klar, dass es massenhaft Tools gibt, um heute Spiele fuer moderne Systeme zu entwickeln. Aber das ist doch jetzt komplett am Thema vorbei, es geht hier doch um die Erschaffung einer neuen "Retro-Plattform".
Neuer Retro-Computer im 8-Bit Style
-
Retrofan -
1. März 2019 um 16:18 -
Erledigt
Es gibt 1.853 Antworten in diesem Thema, welches 267.591 mal aufgerufen wurde. Der letzte Beitrag (
-
-
Ja, da haste recht, das ist total offtopic.
Also, weiter im Programm.
-
Ich hätte hier mal einen Link für alle die sich für FPGA's interessieren, noch kein Development Board haben, sich aber mal Verilog anschauen wollen -> Bitte melde dich an, um diesen Link zu sehen.
Auf der Seite könnt ihr online Code für den Atari 2600 und Z80 basierte Arcade Hardware schreiben, oder über die Verilog IDE online Hardware entwickeln. Die Auswirkungen der Codeänderungen werden sofort auf einem kleinen, emulierten CRT sichtbar. Ist vielleicht besonders interessant für diejenigen, die sich mal anschauen wollen, wie man einen kleinen Videocontroller oder auch gleich ein 8 bzw. 16-Bit Retrosystem entwickelt. -
Und natürlich: ein Monitor sollte im ROM auch vorhanden sein.
Zu dem Thema ROM hatte ich schon geschrieben, daß ein neuer Rechner am besten überhaupt nicht über ROM verfügen sollte. Gründe s. o. Jede Nachfrage nach "irgendwas im Rom" geht damit von vornherein ins Leere.
Das ist wiederum ein ganz anderes Hobby.
Nicht jeder will ein FPGA-Programmierer werden.Und ich denke auch daß FPGA zwar ein gangbarer Weg ist, aber nicht 'DER' Weg ist, weil so ein FPGA halt viel zu ungenau ist.
Ein 6502 (oder Z80 oder 65816) ist genau definiert.
Gleiches gilt z.B. für den Y 9938 Grafikchip wie auch für StereoSID und oder OPL oder für AY-3-8910 soundchips.Der 'Reiz' eines Retro-8-Bit-Maschine ist es doch mit den eingeschränkten Resourcen klar zu kommen.
Irgendwie habe ich den ganzen Absatz nicht verstanden, Könntest Du das vielleicht noch anders erklären? Daß nicht jeder FPGA-Programmierer werden will, ist klar. Daß nicht jeder Eletronik-Experte werden will, auch. Daß nicht jeder Softwareexperte für Emulationen werden will, ebenso. Aber irgendwer muß doch die Hardware bauen oder den Emulator schreiben, oder nicht? Für eine Umsetzung in Hardware ist die Verwendung eines FPGAs heutzutage der einfachste und kostengünstigste Weg. Was Daybyter gesagt hat, ist doch nichts Anderes als: "Hey Leute, wenn Ihr Lust habt, ein System zu bauen, schaut Euch mal die FPGAs an. Da kann man beim Entwickeln Spaß haben und nebenbei eine Menge lernen." Meiner Meinung nach hat er da völlig recht.
Und wieso ist jetzt ein FPGA "ungenau"? Was kümmert es den Programmierer, ob der 6502 in "echt" vorliegt (, was immer das heißen mag), aus einem Softcore in einem FPGA besteht oder von einem Emulator ausgeführt wird? Inwieweit ist denn hier das Eine ungenauer als das Andere?
Und was hat nochmal die Begrenzung einer Retro-8-Bit-Maschine mit der FPGA-Programmierung zu tun?
Was wäre denn, wenn beide Stile unterstützt würden? Also im obigen Beispiel ':=' intern zu einem '´=' reduziert, 'NEXT' in 'END' umgewandelt und 'DO' einfach ignoriert wird.
Machbar wäre eine Analyse verschiedener Bezeichner/Schreibweisen, aber das würde den Compiler aufblähen. Außerdem sollte man um Mißverständnissen vorzubeugen besser eine eindeutige Syntax vorgeben.
Wie erstellt man eigentlich so essentielle Sachen wie Datenstrukturen in Basic?
Das ist ganz einfach.
1.) Zuerst einmal setzt man ein struct bzw. RECORD in Basic um, indem man zusammengehörige Variablennamen wie s1, s2$, s3, s4$ verwendet, was z. B. steht für Nummer, Name, Postleitzahl und Stadt.
2.) Als Nächstes erzeugt man einen Aufzählungstypen, indem man eine Variable a definiert mit den dazugehörigen Werten a1, a2, a3, a3, so daß man schreiben kann "IF a = a1 THEN".
3.) Bei der Parameterübergabe weist man die zu übergebenden Werte den Variablen p1[p], p2[p], p3[p]... zu, von wo aus sie dann im Unterprogramm verwendet werden. Adressiert werden die Arrays mittels eines Index p, der vor jedem Unterprogrammaufruf erhöht wird. Damit lassen sich weitere Unteraufrufe oder Rekursion erzielen.
4.) Danach geht man in die Küche und packt auf eine heiße Herdplatte. Dann stellt man fest, daß man doch kein Masochist ist, schmeißt das Basic in den Müll und programmiert in einer richtigen Hochsprache.Die Crux bei Basic ist:
Um in Basic einigermaßen strukturiert programmieren zu können, muß man vorher das strukturierte Programmieren in einer anderen Programmiersprache gelernt haben.Basic ist keine taugliche Programmiersprache für Einsteiger.
Dabei ist es völlig egal, ob das "B" in Basic für "Beginner" stehen soll. Grundlegende Konzepte, wie sie in allen möglichen Programmiersprachen bis heute verwendet werden (z. B. in C, C#, C++, Java...) sind in Basic nicht enthalten, was den Umstieg später auf eine brauchbare Sprache erschwert. Die klassische Einstiegssprache hingegen ist und bleibt Pascal: sehr wenige sprachliche Elemente, die man lernen muß, die aber alle möglichen, wichtigen Datenstrukturen abbilden können. Klare Syntax. Gute Lesbarkeit (auch von fremden Code). Man kann mit kleinen Programmen anfangen und sich dann nach und nach weitere Programmierkonzepte erarbeiten.
Basic hat jedoch noch ein ganz anderes Problem. Das scheint noch nicht so ganz rübergekommen zu sein. Daher nochmal:
Commodore-Basic ist mit normalen Bordmitteln nicht vollständig kompilierbar.
Möchte man ein Actionspiel in einer Hochsprache programmieren, setzt dies bei einem 8-Bit-Rechner (aber auch einem 32 Bitter) voraus, daß die Programmiersprache kompilierbar ist. Ist sie dies nicht (wie beim Commodore-Basic egal in welcher Version), verhält sich das so wie bei einem Wanderer, der eine längere Wanderung machen möchte (egal über welche Distanz) und sich vor Beginn ins Knie schießt. Die einzige Möglichkeit, mit Commodore-Basic ein Actionspiel zu schreiben, besteht somit darin, die CPU-Leistung irrsinnig hochzuschrauben. Das hat jedoch (nach meinem Geschmack) mit Retro und 8 Bit-Stil nicht mehr viel zu tun.
Den Grund, warum das Kompilieren nicht möglich ist, habe ich an anderer Stelle schon genannt. Die Kurzform: Die NEXT-Anweisung und dazugehörig die RETURN-Anweisung verhalten sich wie selbstmodifzierender Code und sind zur Compilezeit nicht eindeutig definiert. Eine Übersetzung ist ohne komplizierte Ablaufverfolgung/Codeduplikation... nicht machbar.Aus dem Grunde hatte ich diejenigen, die gerne auf dem Rechner selbst programmieren möchten, gefragt, ob es unbedingt Basic sein muß oder auch eine andere kompilierbare Sprache sein könnte, die sich nicht nur vom NEXT verabschiedet, sondern auch Datentypen wie INTEGER, CHAR, BOOLEAN beinhaltet sowie Strings fester Länge, um eine aufwendige Garbage Collection zu vermeiden. Denn erst damit läßt sich wirklich effizienter Code auf einem 8 Bit-Rechner erzeugen.
Schaut man sich den PICO-8 an (Dank an Bitte melde dich an, um diesen Link zu sehen. für das Video), so sieht man ja, daß hier ganz bewußt nicht auf Basic gesetzt wurde, sondern auf eine Programmiersprache, mit der sich sehr einfach und unkompliziert kleine Programme als auch größere Projekte schreiben lassen. Also nochmal die Frage:Wie wichtig ist Euch als eventuelle Programmierer eines 8 Bit-Rechners die Programmierung in Basic?
-
Ich mag Basic.
ASM auch.Ja, ein Computer macht natürlich nur Sinn, wenn es einen C64er Modus gibt, indem wertvolle Spiele, wie TT64, laufen.
-
Für ein möglichst "echtes 8bit-Feeling" ist für mein Verständnis BASIC unabdingbar.
Einfach aus dem Grund, weil es so gut wie jeder 8bit-Rechner damals hatte und wohl auch so gut wie jeder damit den Einstieg zum Programmieren genommen hat.
Ein 8 Bitter der z.B. nur Pascal on board hat, ist für mich vom Feeling her nicht reizvoll. Gegen ein verbessertes und complierbares BASIC wäre nichts einzuwenden, aber es soll schon noch erkennbar BASIC sein.
Und sowas sollte natürlich auch noch gehen:

-
Ein 8 bit Rechner ohne Rom und ohne Basic ?!?! Also für mich wäre das nix, ich wäre dann raus.
-
Für ein möglichst "echtes 8bit-Feeling" ist für mein Verständnis BASIC unabdingbar.
Einfach aus dem Grund, weil es so gut wie jeder 8bit-Rechner damals hatte und wohl auch so gut wie jeder damit den Einstieg zum Programmieren genommen hat.
Ein 8 Bitter der z.B. nur Pascal on board hat, ist für mich vom Feeling her nicht reizvoll. Gegen ein verbessertes und complierbares BASIC wäre nichts einzuwenden, aber es soll schon noch erkennbar BASIC sein.
Und sowas sollte natürlich auch noch gehen:

Nicht nur die 8bit-ter.
Auch Amiga, AtariST und man höre und staune: der IBM PC hatten BASIC.
Beim originalen IBM war es sogar so, daß wenn keine DOS-Diskette im Laufwerk war, der PC ins ROM-BASIC landete (der orig. IBM PC hatte 16/64kB RAM und -> Cassetten) Die Cassetten (aka Datasetten) Routinen wurden erst später entfernt
Wer kennt noch die Meldung bei Clones?
NO ROM BASIC
SYSTEM HALTED
?
Lang ist's her.
Also: wie gesagt, zum Retro gehört nun mal 'irgendein' BASIC Interpreter.
-
Ein 8 bit Rechner ohne Rom
Wie ich schon früher schrieb, wird das "ROM" beim Starten des Rechners in Nullkommanix von SD-Karte geladen. "Kein Rom" heißt nicht "kein Kernel", sondern einfach nur "kein langsames, teures Flashrom mit aufwendigem Boarddesign". Weitere Informationen s. o.
Für ein möglichst "echtes 8bit-Feeling" ist für mein Verständnis BASIC unabdingbar
ohne Basic ?!?! Also für mich wäre das nix, ich wäre dann raus.
zum Retro gehört nun mal 'irgendein' BASIC Interpreter
Nun gut, wie gesagt, einen Basic-Interpreter zu verwenden ist wie sich selbst durchs Knie zu schießen. Damit ist eine komfortable Programmierung von Spielen etc technisch nicht möglich. Der Widerspruch zwischen den beiden Anforderungen "Basic" und "geeignet für Spiele" ist nun einmal unauflösbar. Daraus entnehme ich, daß kein Bedarf besteht für eine echte Entwicklung auf einem Rechner. Somit bin ich hier raus.
-
Daraus entnehme ich, daß kein Bedarf besteht für eine echte Entwicklung auf einem Rechner. Somit bin ich hier raus.
Lass dich bitte nicht durch ein paar Nörgler entmutigen. Ich zum Beispiel lese alle deine Beiträge mit sehr großem Interesse.und kann mir gut vorstellen, dass auch andere das sehr gerne tun, ohne hier direkt mitzudiskutieren.Hast du denn schon sowas wie eine EBNF-Syntax für die von dir vorgeschlagene Programmiersprache oder sind das nur erste Skizzen?
-
Wie ich schon früher schrieb, wird das "ROM" beim Starten des Rechners in Nullkommanix von SD-Karte geladen. "Kein Rom" heißt nicht "kein Kernel", sondern einfach nur "kein langsames, teures Flashrom mit aufwendigem Boarddesign". Weitere Informationen s. o.
Persönlich hätte ich kein Problem mit FlashROM oder EEprom. Ich gebe nur eins zu bedenken: Das was die alten 8bit-er als 'Vorteil' hatten, ist daß Sie immer gleich waren. Es ist mir klar daß Flash oder Disc-basierte OSes die Möglichkeit bieten Bugfixes und Erweiterungen ein zu pflegen. Das Problem dabei ist: Kompatibilität. Habe ich und/oder den User den ich anpeile wirklich alle Updates eingepflegt? Ein ROM ist und bleibt immer gleich und ist außerdem Viren geschützt.
Aus dem gleichen Grund meinte ich das mit dem FPGA. Wer garantiert daß die Architektur im FPGA nicht umprogrammiert wird???
Das bedeutet nicht das ich FPGA ausschließen will. Es bedeutet nur daß man höllisch aufpassen muß nicht 100e 'leichte' Inkompatibilitäten herauf zu beschwören.Zitat von M.J.Nun gut, wie gesagt, einen Basic-Interpreter zu verwenden ist wie sich selbst durchs Knie zu schießen. Damit ist eine komfortable Programmierung von Spielen etc technisch nicht möglich. Der Widerspruch zwischen den beiden Anforderungen "Basic" und "geeignet für Spiele" ist nun einmal unauflösbar. Daraus entnehme ich, daß kein Bedarf besteht für eine echte Entwicklung auf einem Rechner. Somit bin ich hier raus.
Der BASIC-Interpreter ist doch nur für Otto Normaluser. Wo liegt denn das Problem für den ambitionierten Programmierer sein IDE zu starten?
Keiner der 'User in Spe' hat hier jemals gefordert daß die BASIC-Spiele rasend schnell sein sollten.
Dafür gibt es ja Assembler und die andere Sprachen (Pascal, C, Python, etc.).
Das BASIC sollte aber schon 'etwas' besser sein als das 2.0 vom C64er. So ab 3.5 (vom +4) oder wie das 7er des 128er wäre schon ok.
Und was Pico-8 angeht: auch der 128er hat schon ein Schimmer davon: der SPRDEF 'Befehl'. Das ist ein rudimentären aber funktionaler Sprite-Editor.
Sowas ähnlichem für Sound käme auch nicht schlecht. (Also ein rudimentären Tracker). -
Öhhhmm...warum sollte jemand Viren für diesen Rechner programmieren?
Er wird doch vermutlich eh nicht am Internet hängen?
Und nicht genug Rechenleistung haben, um Massen an Spam-Mails zu verschicken?
Willst Du mit dem Rechner Online-Banking machen?
-
Öhhhmm...warum sollte jemand Viren für diesen Rechner programmieren?
Er wird doch vermutlich eh nicht am Internet hängen?
Und nicht genug Rechenleistung haben, um Massen an Spam-Mails zu verschicken?
Willst Du mit dem Rechner Online-Banking machen?
Warum wurden Viren für den C64 programmiert?
Warum für den Amiga?
Und der Schreibschutz betrifft nicht nur Viren.Also ICH will damit nicht ins Internet. Dafür habe ich mein Raspi mit Q4OS, aber Bitte melde dich an, um diesen Link zu sehen. wollte mit dem Internet verbinden.
Und einige Gamer möchten schon irgendwie mittels Internet Netzspielchen machen. -
Also fällt Basic schon mal als Hochsprache weg, wenn man damit Actionspiele programmieren möchte, da es nicht kompilierbar ist.
Bitte melde dich an, um diesen Link zu sehen.
Danke für die sehr ausführliche Erklärung, von dir kann ich noch jede Menge lernen. -
Wer sagt denn, dass es unbedingt Commodore-BASIC sein muss? Man kann eine BASIC-artige Sprache auch so entwerfen, dass sie etwas moderner ist und man sich damit nicht so sehr ins Bein schiesst wie mit den damaligen. Auch kann es kompilierbar sein, verstehe nicht wieso das nicht der Fall sein sollte. Ich glaube einige versteifen sich hier zu sehr drauf, dass das BASIC exakt das von damals ist. Ich sehe "BASIC" hier eher als "einfache Programmiersprache mit Direktmodus", und nicht als "Klon von Commodore BASIC V2".
Was ich auch nicht ganz verstehen kann, sind diese staendigen "Wenn ihr das so [...] machen wollt dann bin ich hier raus"-Kommentare
Hier werden seit Beginn an verschiedene Ansaetze besprochen und dass da jeder andere Ansichten/Wuensche/Vorstellungen hat, sollte sich doch inzwischen rumgesprochen haben. -
Eine neue Programmiersprache entwickeln? Kann hier jemand sowas? Lohnt sich das wenn man mit LUA, JS, Pasval oder sonst was schon genug einfache Sprache existieren? C ist nun auch sehr einfach, bietet aber viele Fallstricke wenn man mit Zeigern arbeitet, aber da könnte man es ja so machen wie die NASA, die nur ein bestimmtes Subset von C nutzt. Alles was mit Zeigern zu tun hat, ist da nicht erlaubt, wenn ich das richtig in Erinnerung habe.
Aber reicht dann wieder ein 8Bit System und so einen Sprache wie LUA oder auch JS zu kompilieren, erst reicht wenn dann auch nur eine komfortable IDE im Speicher gehalten werden muss?
Ach mit den "ich bin dann raus" und so würde ich nicht für voll nehmen. Ich habe das Projekt hier auch schon oft für nicht realisierbar angesehen. Aber erstens bin ich kein Programmier Guru, wie viele hier, und zweitens ist der Grundgedanke ja schon verlockend.
-
- Offizieller Beitrag
Also nochmal die Frage:
Wie wichtig ist Euch als eventuelle Programmierer eines 8 Bit-Rechners die Programmierung in Basic?Basic wäre mir wichtig (nicht für mich (ich käme mit Pascal wahrscheinlich besser klar als mit Basic), sondern für einen möglichen Erfolg so eines Rechners). Aber Basic meint nicht Commodore Basic (egal, in welcher Version). Basic meint – ein paar bekannte Baisc-Befehle sollten drin sein (wie bei Visual Basic). Wie ich an anderer Stelle schon mal sagte, nehmt meinetwegen Pascal und ersetzt einfach die Schlüsselwörter. Dass man Variablen vorab deklarieren muss, daran wird man sich wohl gewöhnen können.
aber Bitte melde dich an, um diesen Link zu sehen. wollte mit dem Internet verbinden.
Nicht, dass wir uns falsch verstehen: zum einen ist mir das nicht so wichtig, zum anderen meint Internet hier nicht: Web oder eMail. Ich könnte mir halt vorstellen, wenn es technisch nicht zu aufwendig ist (selbst der C64 kann für 10€ mit WLAN versorgt werden), z.B. eine Art App Store anzubinden, in dem man auch selbst seine Elaborate hochladen kann. Auch einen proprietären Chat könnte ich mir vorstellen, damit man mit anderen Usern des Systems direkt in Kontakt treten kann, um Probleme zu lösen. Vielleicht auch Net-Play. Sowas halt, keine Webseiten, Videos, Spam-Mails ...
Ein 8 bit Rechner ohne Rom und ohne Basic ?!?! Also für mich wäre das nix, ich wäre dann raus.
Ich denke, hier gibt es ein Missverständnis. Wenn der eine "kein ROM" sagt, dann ist das sicherlich technisch gemeint, also kein Read-only-Memory (Baustein). Wenn der andere "kein Rom?" fragt, dann meint er sicherlich "nichts, was beim Start sofort da ist"? Also, es würde natürlich ein "ROM"-Image (Kernel, Basic ...) am Anfang von einem schnellen Medium (SD-Karte) geladen, sodass es sofort nach dem Start (in wenigen Sekunden) verfügbar ist.
Das BASIC sollte aber schon 'etwas' besser sein als das 2.0 vom C64er. So ab 3.5 (vom +4) oder wie das 7er des 128er wäre schon ok.
Das wäre mir zu wenig. Die alten Basics sind murks – wir brauchen ein "neues Basic".
Ich sehe "BASIC" hier eher als "einfache Programmiersprache mit Direktmodus", und nicht als "Klon von Commodore BASIC V2".
Richtig.
Aber reicht dann wieder ein 8Bit System und so einen Sprache wie LUA oder auch JS zu kompilieren, erst reicht wenn dann auch nur eine komfortable IDE im Speicher gehalten werden muss?
A: wir reden hier nicht von 8-Bit-Rechnern – sondern von leistungsfähigeren Rechnern "im 8-Bit-Style", genau wie bei den anderen Retro-Rechnern. Und B: die IDE muss nicht komplett im Speicher gehalten werden. Die ganzen Zusatz-Editoren sind ja nur optional aufzurufen und beim Schließen des Fensters wird die erzeugte Datenstruktur (Sprite oder was auch immer) an die passende Stelle im RAM gelegt und der Asset-Editor aus dem Speicher entfernt (wenn es eng werden sollte). Auch den Code-Editor kann man wahrscheinlich beim Kompilieren aus dem Speicher werfen, falls nötig. Und wir reden hier nicht mehr über 64 KB, sondern von 512 KB oder vielleicht auch 1 MB (oder noch mehr, je nach Ansatz).
Eine neue Programmiersprache entwickeln? Kann hier jemand sowas?
Ich denke, ALeX könnte sowas z.B. (schließlich ist er Informatiker). Aber ich weiß nicht, ob er Lust dazu hätte. Aber was den Aufwand angeht: Sicherlich ist das viel Arbeit – aber wenn wir es mit einer weitgehend neuen CPU zu tun haben, für die es ohnehin noch gar nichts gibt, dass müsste man auch eine vorhandene Programmiersprache erst daran anpassen. Da lohnt sich vielleicht dann doch der zusätzliche Aufwand, aus vorhandenen Konzepten etwas eigenes zusammen zu basteln.
-
development am Rechner selbst finde ich unwichtig. Da reicht den Monitor völlig denke ich. Es gibt nicht viele die wirklich auch was coden in Basic. Da fielen mir nur seeeehr wenige ein.
-
- Offizieller Beitrag
development am Rechner selbst finde ich unwichtig.
Da sind unsere Ansichten halt komplett konträr. Ich bin immer stärker der Ansicht, dass ohne On-Machine-Development so eine Hardware zum Scheitern verurteilt wäre. Wenn man komplett auf externe Programmierung setzten würde, hätte man eine Retro-Spielkonsole und keinen Retro-Computer.
-
Eine neue Programmiersprache entwickeln? Kann hier jemand sowas? Lohnt sich das wenn man mit LUA, JS, Pasval oder sonst was schon genug einfache Sprache existieren?
Aehm... es soll sogar Leute geben, die hier nen kompletten Rechner entwickeln wollen

-