Der LernComputer: Ein kleiner Selbstbau-Computer
Gepostet am inSchon als Kind fand ich Computer faszinierend und hatte den Wunsch, selber einen zu bauen. Doch statt mir einen PC aus fertigen Baugruppen zusammenzustecken wollte ich die Leiterplatte selber entwerfen und bestücken. Vor ungefähr 10 Jahren habe ich angefangen, mir das dazu nötige Wissen anzueignen. Während der COVID-19-Pandemie beschloss ich, das Wissen auch anzuwenden und mir diesen Wunsch zu erfüllen.
Komponentenauswahl
Bei der Wahl der Komponenten stand am Anfang fest, dass diese gut per Hand verlötbar sein müssen. Daher lag der Fokus auf Bauteilen mit Durchsteckmontage, wobei SMD-Bauteile in der Größenordnung von SOIC auch noch vertretbar gewesen wären. Außerdem sollte der Computer keine alten Komponenten verwenden, sondern welche die auch jetzt noch hergestellt werden. Als CPU kamen der 6502 und der Z80 in Frage. Auf letzteren fiel auch die Wahl, da dieser mit wenig Schaltungsaufwand die Speicherbausteine ansteuern kann und ich schon etwas Z80-Asssembler konnte.
Erster Prototyp
Für die erste Version habe ich drei Arten von ROM vorgesehen: das 28C256 EEPROM, das 27C256 EPROM und die SST39SFxx-Reihe von Flashspeichern. Der Arbeitsspeicher ist ein 62256. Zur Ein- und Ausgabe hat der Prototyp 8 LEDs und DIP-Schalter, was sich aber schnell als umständlich in der Handhabung herausstellte. Die zweite Version verwendet daher ein 16C550 UART zur seriellen Kommunikation mit der Außenwelt.
Im obigen Video sieht man das Zählerprogramm auf der ersten Version des Rechners laufen.
Verbesserte Version

Da sich die erste Version schnell als relativ eingeschränkt herausstellte, enstand bald eine zweite Version. In der Abbildung befindet sich hinten links die Stromversorgung und die RESET, NMI und INT-Taster samt deren Pull-Up-Widerständen, daneben sind der Taktgeber und das Steuerregister. Über dieses kann sowohl eine Folientastatur angesteuert und ausgelesen als auch die aktuelle Speicherseite gewählt werden, da die 4 unteren Bits an die oberen 4 Adressbits des 512kB großen Arbeitsspeichers angebunden sind. Von den vier großen ICs sind von Links nach Rechts: UART, CPU, RAM und der Flashspeicher. Letzterer hat, da dies den Assembler-Flash-Test-Zyklus deutlich vereinfacht, einen ZIF-Sockel verpasst bekommen. Vorne Rechts befindet sich die Schnittstelle für LC-Displays, mitsamt der Zwischenlogik.
Software
Natürlich benötigt ein Computer auch Software, um was sinvolles zu tun. Um die Funktionsfähigkeit zu testen habe ich einen einfachen Speichereditor geschrieben. Dessen UART-Treiber und ein paar Hilfsfunktionen sind auf GitHub zu finden.