V9958 update

A project log for MSX COMPATIBLE BOARDS FOR RC2014

Create a series of boards designed for the RC2014 bus to achieve MSX/MSX2 compatiblity

Dean NethertonDean Netherton 11/26/2020 at 00:400 Comments

The new boards that use the 41464 DRAM memory chips have arrived and been built.

A couple of interesting things were discovered.  On first power up, the board exhibited the same 'faults' as my SRAM based boards - what tha?

The issues were:

  1. Running a test app to write/read to VRAM would identify the occasional failed write.
  2. Running RomWBW TTY emulation code (using the compatible TMS9918 driver) - would generate some on screen corruptions - some characters would be duplicated and some characters would get blanked.

So perhaps the issue is not hardware but software.

So in the course of investigating, I ended up learning two things:

  1. Although the V9958 is backwards compatible with the TMS9918, its timing requirements are a little different - especially in text mode - it needs a few more wait states for VRAM access - generally in the order of about 4us or about 30T states for a cpu at 7.3Mhz.  Once I updated the RomWBW TMS driver to include some additional wait states - the TTY emulator worked perfect.  Now my RC2014 RomWBW has native support for 80 column text.
  2. But what about the test code that was identifying failed writes?  Well it turns out I had failed to disable interrupts during some of the IO to the chip - the RomWBW interrupt handler within the TMS driver also interacts with the chip.  By not disabling interrupts, the sequencing of register writes can become disrupted, causing random like errors.  I knew this, but simply had not noticed a section without the appropriate DI/EI instructions.  It definitely was a facepalm moment.

Perhaps the SRAM version works?  I may go back and test again with that version - but I don't have enough spare parts at the moment - so gonna keep moving forward for the moment, with the DRAM version.

So far I have only been able to test using the composite video signal - using a cheap ebay video to VGA converter.  The conversion works, but colours are not very good - and text can be very blurry.  At 80 columns it very difficult to read text.

So next step is to try the RGB signal, using the OSSC.  I wonder what drama awaits me?