TMSEMU
TMS9918A graphics, 80-column colour terminal, HDMI out and USB keyboard in
TMSEMU is an alternative to the TMS9918A video module with a sharp and vibrant HDMI picture and now 80-column colour serial terminal functionality. There is a growing library of demos and games for the RC2014 + TMS (and sometimes + AY) combo.
I've designed my own mcu board because I wanted something that resembled a DIP40 chip and I needed more GPIO exposed plus the HDMI socket on-board. That mcu board (dubbed Dr.VIP - an anagram of RP DVI) is included. Dr VIP is not a drop-in replacement for a TMS chip, but this complete module is a drop-in replacement for the more traditional RC2014 TMS video module and adds serial functionality, HDMI-compatible output and USB keyboard input.
For me, a video module is a game-changer for the RC2014 and compatible computers. I've done a lot of work with the TMS chip on RC2014 and my MSX2014 project. I love it, it's very powerful for its time, with 40-col text mode, tile mode, bitmap mode and full colour (lores) mode. However, the real TMS9918A chip as used in J B Langston's module has composite output which is, well, composite. I thought I could make an alternative with the same functionality plus convenient HDMI out and a nice sharp vibrant picture.
Useful resources:
- TMS9918A datasheet - an excellent programmer's reference.
- J B Langston's excellent repository - with example code and libraries for asm and C.
- my repository of software built for both cpm and 32k RC2014 computers with TMS graphics module
TMS emulation does provide:
- all documented screen modes; text, tile, bitmap and multicolour modes
- 255 x 192 pixel display plus a coloured border as per the real chip
- sprites as documented - 32 x single-colour sprites with size and magnification options
- 16k of VRAM (additional to your computer's ram) with the ability to read and write VRAM via hardware ports
- status byte is readable, and provides software with the 'frame' bit which is often used for timing / vblank signal
- a single jumper to easily switch between ports 98/99 (MSX), 08/09 (Tatung Einstein) and BE/BF (Colecovision)
- if you're into programming, J B Langston's excellent library provides a great API for asm, C and basic.
It adds:
- no limitation on the number of sprites that can appear on a scanline.
- serial terminal functionality in 40-col text mode, and now an 80-column colour terminal mode.
- USB keyboard input.
It doesn't provide:
- 'fifth sprite' information in the status byte. The fifth sprite information is less important because this module doesn't have the 'four sprites per scanline' limitation.
- video input. This has never been a goal for this project.
Supported systems:
- RC2014 'Pro' running CP/M. My repository has a growing library of software built and ready to run on this computer.
- RC2014 'Zed Pro' running ROMWBW - tested and no problems seen
- RC2014 32k configuration (Classic). My repository has a growing library of software built and ready to run on this computer.
- RC2014 Mini with or without CP/M upgrade. In testing as I make this listing
- The SC series of RCBus computers - see Steve Cousins' own review and endorsement
Unupported systems:
- Z180 systems - entirely untested
Buy one