Neo6502 › Artikel › Neo6502
Neo6502: ein echter 65C02 und ein RP2040 für 30 Euro — unsere Baustellen
Die Platine von Olimex, warum Tachibana sich dafür interessiert, zehn laufende Projekte — und was wir noch nicht behaupten.
Der Neo6502 ist eine kleine Platine von Olimex (80 × 55 mm, OSHW-zertifizierte offene Hardware, 30 Euro): ein echter W65C02S-Prozessor, ein RP2040-Mikrocontroller mit 2 MB Flash, ein DVI/HDMI-Ausgang, ein USB-A-Host-Port für die Tastatur, ein UEXT-Anschluss, ein 6502-Bus-Anschluss und ein Audioausgang. Die von Paul Robson geschriebene Firmware macht den RP2040 zum Chipsatz der Maschine: Video 320×240 mit 256 Farben, Sprites, Tiles, Blitter, 4-stimmiger Klang, FAT32-Dateien auf einem USB-Stick, alles vom 6502 über eine API bei $FF00 gesteuert. NeoBASIC startet sofort; C (llvm-mos, cc65) und Assembler werden unterstützt.
Der Neo6502 in Kürze
| Prozessor | W65C02S |
| Mikrocontroller | RP2040, 2 MB flash |
| Video | DVI/HDMI — 320×240, 256 |
| Tastatur | USB-A host |
| Erweiterung | UEXT, 6502 bus |
| Audio | 3.5 mm, speaker |
| Format, Lizenz | 80 × 55 mm, OSHW |
| Preis | 30 € |
Video 320×240 mit 256 Farben, 6,25 MHz und ≈ 61 KB nutzbares RAM: Werte aus den Dokumenten unserer Repositories; der Rest stammt vom Olimex-Produktblatt.
1. Warum Tachibana sich dafür interessiert
Ein 65C02 mit 6,25 MHz, rund 61 KB nutzbares RAM (der Bildschirm liegt auf der RP2040-Seite), eine echte Palette und schnelle Dateien: für unsere Oric-Portierungen ist das die sechsfache Geschwindigkeit und der dreifache Speicher, auf einer Maschine, die existiert, lieferbar ist und 30 Euro kostet. Und der 6502-Bus liegt an einem Steckverbinder an. Wir sehen darin zugleich einen Software-Prüfstand und eine Zielplattform.
2. Phosphoneo, das Referenzmodell
In der Linie von Phosphoric ist Phosphoneo ein Golden-Model-Emulator des Neo6502: zyklusgetaktet, 65C02-Kern zu 100 % am SingleStepTests-Orakel validiert (2,54 Millionen Fälle), Firmware-API aus dem offiziellen Code gelinkt, deterministische Werkzeuge (headless, Bildschirmaufnahmen, automatische Eingabe, Traces, Savestates). Sprint 1 geliefert (v0.2.0): NeoBASIC startet headless, die Aufnahmen sind identisch mit dem offiziellen Emulator.
3. Neo6502kbd, die Tastatur
Die Firmware liefert eine ASCII-Warteschlange und den Rohzustand jeder Taste. Neo6502kbd ergänzt auf der 6502-Seite einen Treiber in 65C02-Assembler (ca65): Erkennung von Tastendrücken, eine Ereigniswarteschlange (Scancode, Modifikatoren), eine konfigurierbare Zuordnung Basis / Shift / AltGr / Strg, kompiliert aus einer lesbaren .kmap-Datei (us, fr) durch neokbd, ein Go-Werkzeug, das erzeugt, prüft und simuliert.
4. Neo6502bbc, Spiele des BBC Micro
BBC Micro und Neo6502 teilen sich den 6502; BBC-Spiele rufen das MOS über feste Vektoren bei $FFxx auf, die sich leicht umbiegen lassen. Neo6502bbc leitet OSWRCH, OSBYTE, OSWORD, OSCLI, OSRDCH, OSFIND und OSGBPB auf die Firmware-API um. Epic 3 läuft: ein BBC-Model-B-Emulator (reload, Branch bbc) startet MOS 1.20, BASIC 2 und DFS auf dem PC und bringt Spellbinder bis zum ersten spielbaren Raum. Der Neo6502 ist für diese Portierungen besser geeignet als der Oric: 320 native Pixel, MODE 5 mit 4 exakten Farben.
5. Der Firmware-Fork
Drei dokumentierte Sprints: PC-Emulator und Referenzaufnahmen; Videomodi (PicoDVI-Budget, Multimodus-Architektur, Hercules 720×350 mit 9×14-Schrift, 320×256 mit 16 Farben, Bildschirmseiten, XOR-Sprites); System (Tick-IRQ, ein präemptiver Scheduler mit 10 Vektoren im 6502-Kernel, Multi-Boot des RP2040: ein Selektor und vier 480-KB-Flash-Slots für die Neo-Firmware und reload-Images BBC, Oric, Apple //e, wählbar aus dem Monitor).
6. AsteroNeo, Astéroric portiert
AsteroNeo ist die Portierung von Astéroric, unserem Studienklon von Asteroids für den Oric-1: die Spiellogik (Wellen, Fragmentierung, KI der Untertasse, Hyperraum, Highscores — aus dem Disassembly der Arcade-ROM rev 4 übertragen) bleibt in cc65-C unverändert; alles, was die Oric-Hardware berührte, wird durch die Firmware-API ersetzt — XOR-Linien und -Pixel im Modus 0 (320×240), Asteroiden als aus den Arcade-Formen abgeleitete, geglättete Polygone (24/16/10 Ecken), vom RP2040 gezeichnet (poly_xor in Assembler), Tastatur über umbelegbare HID-Codes, 4-Kanal-Ton, Spielschritt mit 30 Hz auf 60-Hz-Frames. Sprint 1 geliefert, Sprint 2 (Playtest und Polish) läuft: v0.2.0, Binary asteroneo.neo auf GitHub und Framagit veröffentlicht, Host-Tests (gcc), Phosphoneo-Aufnahmen bitgenau verglichen, Rauchtest im offiziellen Emulator.
7. Neo6502Prophet, das Programm-Repository
Neo6502Prophet ist eine unabhängige Go-Neuimplementierung des Prophet-Servers, des Programm-Repositorys der Neo6502-Gemeinschaft: das Protokoll des Clients prophet.neo byteweise nachgebildet, Punkt für Punkt gehärtet (Aktualisierung mit Token, begrenzte Eingaben, eingeschränkte Dateien, SHA-256-Fingerabdrücke), doppelter HTTP- und HTTPS-Listener, statische Prüfung der .neo-Dateien und dynamisches Audit in Phosphoneo (56 von 56 Programmen abgespielt), Weboberfläche, eigenes Repository, in dem AsteroNeo veröffentlicht ist. In Produktion auf prophet.3617.fr; ein nativer grafischer Client ist begonnen.
8. Die Vorstudien
Neo6502drive: virtuelle Festplatte und Disketten auf einem Feather RP2040 USB Host, als FAT32-USB-Stick (MSC-Modus, kein Treiber) oder als UEXT-Blockgerät. Oric 2 Neo: ein Oric der nächsten Generation auf dem Neo6502, kompatibel zu Oric-1/Atmos, erweitert durch ROM und Firmware. Neo6502civ: Civilization 1 in 6502-Assembler (geblitteter Mono-Framebuffer). Neo6502scumm: Maniac Mansion über den SCUMM-v0-Interpreter. Alle in Sprint 0: Vorstudie, kein Code.
9. Was wir nicht behaupten
Keiner dieser Bausteine ist bisher auf einer Platine gelaufen: alles wird im offiziellen Emulator, in Phosphoneo und in Co-Simulation (libemul) geprüft. DVI-Renderer, Taktwechsel, Timer und Busschleife warten auf einen Neo6502 auf dem Tisch. Die Validierungsprotokolle sind geschrieben; sie werden ausgeführt, sobald die Platine da ist.