Close

Video using the TMS9918A chip

A project log for MSX on RC2014

in which I attempt to make an MSX1 compatible computer using RC2014, keeping to standard RC2014 backplane and modules as far as possible.

shiela-dixonShiela Dixon 04/04/2023 at 19:341 Comment

The first step is to have a working TMS9918A module. I've owned one for around 3 years, bought as a kit, following J B Langston's design. It hasn't worked until now and I've spent many hours looking at my module, the schematic and Mr Langston's example code. One potential issue is that the TMS9918A chips aren't available new, and if you buy alleged new old stock, you take a punt on whether you'll get a genuine and working chip.  The one in my kit was tested and so should have been fine and I now know that it was. I have bought a few more since and the ones I've tried are also good.

There were multiple problems. One was hardware-related (a soldering problem) and one software issue. I'll leave the software answer here in case this is relevant to anyone else: J B Langston's examples all perform a port test at the start. it's a very clever and useful routine.  TmsProbe: in tms.asm tests commonly-used ports to see whether the video card is present. If it does find the video chip on any of the ports it tests, it'll use that port. If not it'll helpfully tell you that it hasn't found it and exit gracefully. The problem is that the first port in the list is $be which (on my RC2014 setup at least) is related to the ROM switching and the test causes the machine to hang. The solution is simple. (remove $be from the list. Or, as I did, make TmsProbe return immediately, and make sure that $98 is in the variable TmsPort at startup).  If I'd bothered to search the RC2014 Google support group I'd have found this answer there. 

I'm glad that I had this problem and the soldering issue because I've gained a good understanding of the workings of the TMS9918A chip and J B Langston's module.

Another important note is that the documentation says that to jumper this module for the MSX ports ($98 and $99), set J4 "3rd from right" but after looking at the schematic - and trying it in real life - I believe it's 4th from the right. 

This chip has several screen modes and is very powerful thanks to its own video RAM (up to 16k) which is separate and additional to the computer's own RAM. (This does mean that all reads/writes to the vram are made via the TMS chip). Above is the 40-column text mode. It also has graphics modes with 16 colours and sprites too. It can even receive video and overlay its layers on top. 
All of this makes me feel that the MSX computers are under-appreciated.

Here's a static image of the Plasma example. This type of demo is now well-understood but still looks very impressive on an 8-bit computer

(I've tweeted a video of this running: https://twitter.com/shieladixon/status/1640137090531745794)

So that's video working, and jumpered to use the MSX ports ($98 and $99).

Discussions

gennapaul31 wrote 01/19/2024 at 18:36 point

Hey there! It's awesome that you've been working on a TMS9918A module for three years, and kudos for your dedication. Troubleshooting and getting it to work can be quite a journey, especially with the challenge of finding genuine TMS9918A chips. It's unfortunate that these chips are no longer readily available new, making it a bit of a gamble with alleged new old stock. Your experience highlights the importance of careful sourcing. I'm glad your initial chip turned out to be functional after all the effort. It's great that you've continued experimenting with additional chips and finding success. 
Click Here the URL: https://modcapcutapk.com/capcut-for-ios/

  Are you sure? yes | no