8-Bit Computer selber bauen?
Ich habe vor mir einen 8-BIT Computer selber zu bauen (kleinere IC's bevorzugt) jedoch habe ich nur begrenzt Wissen."Unter einem Computer stelle ich mir sowas wie ein Comodore vor". Ich kann Programmmieren (C, C++, Python, JavaSkript), habe auch schon Erfahrungen mit dem Arduino machen können. Weiß aber nicht weiter wie ich zu diesem Ziel komme. Den Aufbau und Funktion einer modernen CPU und einer RISC-architektur habe ich verstanden. Könnte mir jemand ein Buch oder eine Website bzw. Begriffe sagen die mich diesem Ziel näher kommen. Danke im voraus.
5 Antworten
Da würde mir noch das Buch: "From Nand to Tetris" einfallen.
Du könntest mal schauen, was es bei hackaday.io gibt.
Entweder "homebrew CPU" oder "homebrew computer"
Interessant fand ich z.B. folgenden Ansatz (leider allerdings nicht typisch für eine CPU), weil die sogar eine Programmiersprache - Basic - mit liefern:
https://hackaday.io/project/20781-gigatron-ttl-microcomputer
Ich persönlich würde mich nur auf den Bau der CPU + notwendige Peripherie beschränken und bei der Programmierung bei Assembler bleiben... (das ist, denke ich überschaubarer) Es sei denn, du entschiedest dich für einen Befehlssatz, für den es schon einen Compiler gibt. Es gibt auch minimale C-Compiler für solche Zwecke.
Ein Betriebssystem/ Kernel würde ich auch nicht nehmen, sondern das Ding wie einen Mikrocontroller programmieren. Vielleicht sogar mit einem Arduino schummeln, der einen Speicher emuliert, Memory-Mapping zur Peripherie macht und die Bytes an die CPU schickt und Ergebnisse empfängt.
Sollte ich mal dazu kommen/ Zeit haben, wäre das so zumindest mein Traum der Umsetzung. :-p
Vielleicht hilft dir das:
Den Ben Eater hätte ich auch vorgeschlagen, da er ja genau so einen Breadboard-8bit-Computer gebaut hat...
Schau mal "Ben Eater" auf YouTube, vor 1-2 Jahren hat er eine komplette Playlist zu genau dem Thema erstellt.
Also die CPU auch selbst gebaut?
Da hast du dir was vorgenommen...
Naja, du musst halt einen Befehlssatz festlegen (ASM-Befehle).
Dann brauchst du einen Compiler, der deinen C++-Code in diesen Befehlssatz kompilieren kann.
Und eine Vorrichtung, womit du der CPU das kompilierte Programm in Form eines ROMs an die Hand geben kann.
Dann braucht dein Computer RAM, um das Programm da reinladen zu können, um es zu verarbeiten und damit überhaupt Arbeitsspeicher zur Verfügung steht.
Die Ausführung beginnt dann mit Byte 0.
Dieses Programm ist aber kein "normales" , sondern das Betriebssystem. Du brauchst kleine Unterprogramme für jeden "Furz", wie Tastatur abfragen, Zeichen auf Bildschirm...
Schau dir am besten mal an, wie das Assembler unter MS-DOS funktioniert. Speziell die Interrupts. Ist zwar 16bit, aber so kann man es auch für 8 Bit machen.
naja ich habe an etwas wie der 65815 gedacht oder einer 8008 gedacht, müsste aber einen eigenen Kernel schreiben und dafür finde ich auch ÜBERHAUPT nichts