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 equipment. “I additionally clearly use it in my MSX2014. I’ve come to like the chip. Nonetheless, I am a little 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, with the intention to 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 screen modes and run TMS video games/utilities at any time.”
An RP2040-based add-on board for RP2014 and suitable microcomputers provides a crisp DVI video output and extra. (📷: Shiela Dixon)
Whereas which will appear to be “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 number 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 working was fairly easy, it makes use of two colours and I’ve loads of respiration room inside a 320×240 show and 8-bit colour. The TMS chip’s decision is simply 255p×192px, which implies we have now an empty coloured border as per the TMS chip. From right here, including TMS Graphics Mode 1 (aka ’tile mode,’ or ‘display screen 1’) was very fast. The characters go to eight bits broad 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 screen.”
The larger problem was Graphics Mode 2, also referred to as ‘Display 2’ — a bitmap mode supporting a 16 colour 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 (a minimum of not within the TMS9918A reference paperwork that I’ve).”
Graphics Mode 2 proved a problem, however provides a powerful consequence when applied. (📷: Shiela Dixon)
“Applications 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 lately.”
Whereas nonetheless within the prototype stage, the ensuing module now contains help for textual content and each graphics modes, and has the makings of a solution 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 ought to be attainable to learn the TMS standing register, which I have not applied on this prototype but however is necessary for working a number of the demos.”
Dixon’s full write-up is on the market on the challenge’s Hackaday.io web page.