Der Raspberry Pi RP2040 wird zum TMS9918A


Shiela Dixon ist Entwicklerin im Heute, aber auch begeistert von RetroComputing. Dadurch verbindet sie alte mit heutiger Technologie. Ihr aktuelles Projekt dreht sich um einen Raspberry Pi RP2040 MikroController, der seinerseits einen Texas Instruments TMS9918A “Video Display Processor” emuliert. Besagter TMS9918A wurde zunächst im Texas Instruments TI-99/4A Home Computer eingesetzt, später aber auch auf der MSX-Plattform.
 
An oversized TMS9918ANL integrated circuit hovers above a Texas Instruments TI-99/4A Home Computer
Der TMS9918A wurde zuerst im Texas Instruments TI-99/4A Home Computer eingesetzt.

Was machen mit dem Composite-Video-Ausgang?


Das Problem? Es gibt keinen Composite-Video-Ausgang (mit seiner niedrigen Qualität) mehr auf dem Adafruit Feather RP2040. Daher wurde ein moderner DVI-over-HDMI Ausgang als Ausgang verwendet.
 
Raspberry Pi RP2040 acts as a TMS9918A in this prototype.
Dixons Breadboard-Prototyp basiert auf einem Adafruit Feather RP2040 mit DVI-Ausgang. Quelle: hackaday.io

Die technischen Herausforderungen


Dixon, eine erfahrene Nutzerin des TMS9918A-Chips, kennt dessen Einschränkungen und plante daher ein paar Verbesserungen. Unter anderem schwebte ihr ein Modul mit Anbindung eines USB Keyboards an eine serielle Konsole vor. Diese Herausforderung wurde von Dixon mit Hilfe eines Raspberry Pi RP2040 als Emulator für den TMS9918A gelöst. Die Erweiterung um eine DVI-Schnittstelle wurde mit-implementiert.

Den 40-Zeilen-Textmodus zu aktivieren war für Dixon keine große Herausforderung. Der TMS-Chip hat mit 256 x 192 Pixel eine recht geringe Auflösung. Daher waren ausreichende Ressourcen vorhanden, um ein 320x240 Pixel-Display (8-bit Farbe) anzusteuern. Nach diesem Erfolg fügte Dixon den TMS Graphics Mode 1 hinzu, welcher mehr Auflösung und Farbauswahl bietet.

Die Implementierung von Graphics Mode 2 stellte dann eine Herausforderung dar. Dieser Bitmap-Mode unterstützt eine Farbpalette mit 15 Farben, wobei pro 8x1-Pixel-Linie allerdings nur zwei Farben auswählbar sind. In dieser Betriebsart verhielten sich einige Register unvorhersehbar!

Der Prototyp von Dixon unterstützt sowohl den Text- als auch beide Graphik-Modi. Ein USB-Keyboard kann zur Anbindung an eine serielle Konsole angeschlossen werden. Damit nicht genug, hat sie auch ein Modul mit allen Features für ihren modularen RC2014-Z80-Computer entwickelt. Diese neue Leiterplatte beinhaltet noch etwas zusätzliche (Logik-) Hardware, mit deren Hilfe die TMS9918A Statusregister ausgelesen werden können – was sehr praktisch für Demos und Debugging ist.

4930021689151049727.jpg
Dixon konnte sogar den selten verwendeten Multicolor-Mode implementieren. Hier kann jede der 15 Farben in einer 64x48 Pixel-Bitmap verwendet werden. Quelle: hackaday.io

Wie geht es weiter?

Interessierte Leser finden auf de Hackaday.io Seite von Shiela Dixon Neuigkeiten und weitere Entwicklungen dieser interessanten Mischung aus Vintage und moderner Technik.