After three versions of the board and lots of software development I finally have a finished module that does everything that I originally envisioned, without bodges!
It works on a cp/m RC2014, at 7 Mhz. It also works on a 32k RC2014, as long as the serial card is SIO/2 and not the ACIA (this has to do with port clashes. This video board is fixed at ports $98 + $99)
It runs all of the demos that J B Langston has shared for RC2014+TMS. The limitations of this version (I knew all of this from the start) are:
- It allows reading of the TMS status register but only the top bit is meaningful (it indicates the vertical blank). The rest of that register (which is missing) has mostly to do with sprite collision.
- It doesn't allow the VRAM to be read. This turns out to be a little more significant than I originally thought. If you want to plot or draw, it's important to read the existing bitmap and 'or' your new bit with what's there already (or vice-versa to 'unplot'). It's reasonably easy to work around this if your program keeps a copy of the bitmap in regular ram, this takes about 6k.
- It doesn't give an interrupt signal. But all of the RC2014 examples I'm aware of poll the status register and that works.
- This version is fixed at TMS ports, as mentioned above. It will only take a bit more logic to allow jumpering to einstein ports ($08 amd $09) to avoid that clash on 32k machines
- This version doesn't have USB host functionality (for USB keyboard). To be honest I haven't tried yet, it hasn't been a high priority because I always have a terminal connected for file transfers etc.It's not my intention for this to be a full terminal but the USB keyboard input is a nice-to-have if that works
- This version doesn't work on my MSX2014. I don't know why but I am trying to find out.
I believe that I can overcome all of these things and have a fully-compatible TMS9918A module for RC2014 with some basic serial in/out. This will also involve using a surface-mounted RP2040 rather than the Feather which will look much neater.
Here are a couple of videos which show this card in operation. To be honest they're the same videos as included in the last log but nothing has changed as far as the functionality goes, it's just a little more finished and polished hardware-wise.
The second demonstration shows how nice it is to have a little bit of terminal functionality.