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 geraumer Zeit hatten wir ja bereits EhBASIC auf dem Steckschwein zum Laufen gebracht. Diese Version war im Wesentlichen eine Machbarkeitsstudie. Diese setzte auch noch nicht auf unseren SteckOS-Kernel auf, sondern auf BIOS-Routinen. Hier lag also noch ein wenig Arbeit vor uns.
Die EhBASIC-Dokumentation setzt bei einem potentiellen Portierungsziel nicht sehr viel voraus, und dies sind schon die “Preferred requirements”:
- 6502 or better processor (65c02, CCU3000, M38xx).
- 10k ROM or RAM for the interpreter code.
- RAM from $0000 to $BFFF (more with changes).
- Any character based I/O (e.g. RS232, LCD/keyboard etc).
Punkte 1 und 2 sind schnell abgehakt. Einen 65c02 hat das Steckschwein ja. 10k ROM haben wir nicht am Stück, jedoch wollen wir das Basic ja als Programm im RAM ausführen, und davon haben wir 64k. Alles klar.
Es ist mal wieder recht still ums Schwein. Und mal wieder ist das kein Indiz dafür, dass nicht gewerkelt wird. In den letzten Wochen wurden BIOS und der SteckOS-Kernel auf Basis des Assemblers ca65 neu gebaut. Dessen nachgelagerter Linker erlaubt eine übersichtlichere Strukturierung der Codebasis.
In den FAT32-Code wird aktuell ebenfalls einiges an Hirnschmalz investiert, um endlich Cluster Chain lookups und Schreib-Support bauen zu können.
Darüberhinaus kam letzte Woche der Geistesblitz, die Kommunikation des Tastaturcontrollers ATmega8 mit der Tastatur über dessen eingebauten USART zu machen, anstatt “Zu Fuß” in Software. Hier wird aktuell also auch geforscht. Wenn das klappt, dann wird dies auf jeden Fall in das Redesign des IO-Boards einfließen.
Endlich,
wir haben uns mal bemüht und pünktlich zum 17. VCF das Steckschwein auf 5V umgerüstet. Genauer gesagt war ja nur noch das Video-Board und der YPbPr auf RGB-Encoder das Problem. Der kam zwar mit 5V auch klar, jedoch war dann der Kontrast und die Farbsättigung “unterirdisch”.
Was haben wir geändert?
Vorab muss man sagen, dass uns in den - mittlerweile - letzten Jahren zahlreiche Emails von Interessenten, Retro-Freaks und Bastlern ereilten. Vielen Dank an dieser Stelle für Anregungen, Hinweise und das Interesse!
Wir arbeiten an neuen Revision unserer Prototyp-Platinen.
Den Anfang macht das CPU-Board. Zum einen sind ein paar Layoutfehler korrigiert worden, zum anderen ist der kürzlich vorgestellte Wait-State-Generator in das Board integriert worden.
Mit den neuen Boards wollen wir auch denen entgegenkommen, die sich selbst ein Steckschwein bauen wollen. Das sind nämlich mehr, als wir dachten. Dementsprechend lassen wir jeweils ein paar mehr Boards herstellen. Um die Inbetriebnahme des Steckschweins zukünftig zu vereinfachen, sind eine Hohlbuchse und eine USB-Buchse dazugekommen, um das Steckschwein später mit 5V aus einem handelsüblichen Netzteil oder per USB zu versorgen. Die 12V für das Video-Board werden nämlich in einer späteren Revision wegfallen.
Wir haben vor, eine neue Revision der Steckschwein-Prototyp-Platinen herzustellen. Den Anfang macht ein neues CPU-Board mit einigen Bugfixes und den in Chiptuning beschriebenen zusätzlichen GAL als Waitstate-Generator, sowie einem geändertem Stromanschluss: In Zukunft wird es möglich sein, das Steckschwein mit nur 5V per USB, über einen Rundstecker oder wie gehabt über einen Pin-Header zu versorgen. Die Layouts sind schon fertig:
Bestückungsseite
Lötseite
An den Heimcomputern von “damals” gemessen ist das Steckschwein mit 4 MHz durchaus einer der schnelleren 6502-Rechner. Damals waren zumeist Taktraten von 1 MHz üblich. Einige wenige hatten deutlich mehr, wie z.B. der Apple IIgs (65816) mit 2.8 MHz. Einen 4 MHz-65(C)02-Heimcomputer hat es damals nach unserem Informationsstand nicht gegeben.
Nun ist es aber so, dass aktuell erhältliche 65c02-CPUs von WDC offiziell mit bis zu 14MHz getaktet werden können, inoffiziell wurden schon problemlos Taktraten von 20 MHz erreicht. Da ist also noch Raum für eine Prise Größenwahn. Den Takt des Steckschweins pauschal zu erhöhen funktioniert nicht. Zu viele Bausteine kommen dann nicht mehr mit. Das verwendete Atmel 28c256 EEPROM hat eine Zugriffszeit von 150ns. Im WDC-Datenblatt ist tACC des Prozessors bei 4MHz mit 145ns angegeben. Also ist das stand jetzt schon etwas eng. Schneller takten geht also schon allein deswegen auf keinen Fall. Für den Videochip TMS9929 und den Soundchip gilt ähnliches. Das SRAM hingegen läßt sich problemlos gegen Bausteine von Alliance Memory mit 55ns Zugriffzeit austauschen. Damit sollten Taktraten von um die 10 MHz möglich sein.