Developer and classic computing fanatic Shiela Dixon is engaged on turning a Raspberry Pi RP2040 microcontroller into an emulated Texas Devices TMS9918A video show processor — full with very trendy DVI-over-HDMI video output.
“I have been utilizing the TMS9918A chip on my RC2014 for a graphic show,” Dixon explains, referring to the favored Z80-based microcomputer package. “I additionally clearly use it in my MSX2014. I’ve come to like the chip. Nonetheless, I am a bit annoyed with the composite video output of the 9918A. I would additionally like a module that accepts USB keyboard enter and handles the serial output, so that you could use video output from startup and work together together with your working system (eg CP/M) and use applications and utilities with serial output, while having the ability to swap to the TMS display modes and run TMS video games/utilities at any time.”
An RP2040-based add-on board for RP2014 and appropriate microcomputers gives a crisp DVI video output and extra. (📷: Shiela Dixon)
Whereas which will look like “moon on a stick” territory, that is precisely what Dixon is getting down to construct — utilizing a Raspberry Pi RP2040 microcontroller to emulate TI’s TMS9918A whereas including a couple of new options of it personal, together with pixel-perfect DVI output over an HDMI connector for contemporary shows.
“Getting the 40-column textual content mode operating was fairly easy, it makes use of two colours and I’ve loads of respiration room inside a 320×240 show and 8-bit coloration. The TMS chip’s decision is barely 255p×192px, which suggests we now have an empty coloured border as per the TMS chip. From right here, including TMS Graphics Mode 1 (aka ’tile mode,’ or ‘display 1’) was very fast. The characters go to eight bits large however solely 32 columns. The colour is a bit restricted, however a bit higher than the textual content mode’s two colors on the display.”
The larger problem was Graphics Mode 2, also referred to as ‘Display screen 2’ — a bitmap mode supporting a 16 coloration palette with two colours selectable per 8×1 block. “This gave me much more hassle,” Dixon admits. “I’ve spent hours puzzling over why I could not make this work and it seems that it is one thing not documented (no less than not within the TMS9918A reference paperwork that I’ve).”
Graphics Mode 2 proved a problem, however gives a powerful consequence when carried out. (📷: Shiela Dixon)
“Packages that use Graphics Mode 2,” Dixon continues, “appeared to ship weird values for these registers. On this specific mode, registers 3 and 4 work otherwise and in every case, solely a single bit signifies $0000 or $2000. Armed with this info I used to be capable of finding affirmation of this on-line, however solely in a doc that somebody had written comparatively not too long ago.”
Whereas nonetheless within the prototype stage, the ensuing module now consists of help for textual content and each graphics modes, and has the makings of a option to join the output of a USB keyboard to a serial console. “I’ve already designed a board that places all of this and the feather onto an RC2014 module (will look very cool in black),” Dixon notes. “With that board I’ve added extra logic and it needs to be doable to learn the TMS standing register, which I have never carried out on this prototype but however is necessary for operating a number of the demos.”
Dixon’s full write-up is obtainable on the project’s Hackaday.io page.