The Steckschwein is a homebrew 8bit computer based on the 65c02 CPU.

The Idea
The project began with a simple idea: create an 8‑bit computer that feels like it came straight out of the home‑computer era, yet works comfortably in today’s world.
So instead of floppy disks, the system uses SD cards via SPI, blending classic design with modern convenience.
We started by using genuine period‑correct chips to stay as close as possible to the machines of that time. As those components have become harder to find, we’re gradually introducing modern replacements—always with the goal of preserving the original spirit.
The Name
The name “Steckschwein” comes from our breadboard beginnings—Steckbrett in German. With all those unruly wires, the prototypes behaved like little pigs, so the name stuck.
The Specs
| Component | Specification |
|---|
| CPU | 65c02-CPU @ 10MHz |
| Memory | 512k SRAM / 512k Flash EEPROM |
| Storage | SD-Card (SPI) |
| Serial (rs232) | UART 16550 |
| IO | VIA 65c22 (2 Atari Joystick Ports + SPI (bit banged)) |
| Video | V9958 |
| Sound | YM3812 (OPL2) |
| Keyboard | PS/2 via ATmega8 over SPI |
| RTC | Maxim DS1306 |
Further reading and more details on Steckschwein Hardware.
The Story so far
It all started with a NOP. We put a 65C02 CPU on a breadboard and hard‑wired its data bus to $EA — the 6502’s NOP instruction, meaning “no operation.” The address bus was connected to LEDs, and the CPU clock ran at about 1 kHz. The question was simple: would the LEDs show something that looked like binary counting?
The photo series below highlights several milestones from the past years. For more detailed information about our development steps and processes, please visit our Blog.
Vor kurzem haben wir ja schon von ersten Gehversuchen einer FAT32-Implementation berichtet, mit der wir in der Lage waren, beim Systemstart eine Datei von SD-Karte zu laden.
Was fehlt, ist eine Möglichkeit, innerhalb eines Filesystems einer SD-Karte zu navigieren, Programme zu laden oder Dateien anzuzeigen. Um diese Lücke zu füllen, ist die SteckShell entstanden. In der aktuellen Version 0.6 unterstützt die Shell folgende Funktionen:
- Directory auflisten
- Directory wechseln
- Programm laden und starten
- Datei anzeigen
- Grafik (TMS9929-Rohdaten) anzeigen
Wer auf dem VCFe 16.0 anwesend war konnte diese Shell auch in Aktion erleben.
Nachdem das Grundsystem nun in Form von Platinen vorliegt und Marko dabei ist, das Videoboard zu layouten, ist die Gelegenheit günstig, schon einmal ein wenig vorhandene Software auf das Steckschwein zu portieren. Den Anfang macht MicroChess, 1976 von Peter Jennings für den MOS KIM-1 entwickelt und von Daryl Rictor modifiziert, um über ein serielles Terminal als Ein- /Ausgabestation spielbar zu sein, inklusive der coolen ASCII-Art-Darstellung des Schachbretts.
Dementsprechend einfach war es, es auf dem Steckschwein zum Laufen zu bekommen. Anstatt der vorhandenen Routinen zur Ein-/Ausgabe von Bytes über die 6551 ACIA verwenden wir einfach die UART-Routinen, die unser BIOS ohnehin bereitstellt, zur Ausgabe auf dem Terminal, während als Eingabe die ans Steckschwein angeschlossene PS/2-Tastatur dient.
Damit man mal was sieht!
Die UART-Platine hat noch für einiges Kopfzerbrechen gesorgt, weil sich dann doch noch ein Fehler eingeschlichen hatte. Dieser ließ sich aber durch einen Klecks Lötzinn an der richtigen Stelle korrigieren. Pin25, /ADS hätte noch auf low gezogen werden müssen. Da das von uns in KiCad verwendete Symbol diesen Pin erst gar nicht hatte, war dies im Layout auch nicht drin. Pin war im Schaltplan als “nicht verbunden” markiert. Menschliches Versagen also. Toll.
Es ist ruhig geworden ums Steckschwein. Das liegt daran, dass wir genug haben. Genug von dem Gewackel auf dem Steckbrett, genug von instabilem Monitorbild und anderen diversen Störanfälligkeiten. Wir wollen endlich Code schreiben, und die Bugs dort suchen, und nicht auf dem Steckbrett. Dazu müssen wir unsere Hardware in eine stabilere Form zu bringen. Das bedeutet: Platinen. Zwar noch nicht unser Einplatiner, aber es spricht ja nichts dagegen, die einzelnen Baugruppen auf je eine Platine zu bringen, und diese zu verbinden. So haben wir die Möglichkeit, später einzelne Baugruppen auszutauschen oder neue (Sound!) zu ergänzen. Die Layouts sind gemacht, die Platinen in Produktion, sodass uns aktuell nichts weiter bleibt, als abzuwarten.