Bug fixes and support for 512K cartridges

A project log for TMS9900 compatible CPU core in VHDL

Retro challenge 2017/04 project to create a TMS9900 compatible CPU core. Again in a month... Failure could be an option...

Erik PiehlErik Piehl 10/09/2017 at 14:582 Comments

I did a couple of important bug fixes. I finally found, actually surprisingly quickly, the bug that caused the top pixel line to be shifted. The picture below illustrates this problem. The problem was not on the top line, it was that all the other scanlines of the picture that were right shifted by one pixel. This can be seen in the picture below, for example by looking at the top pixels of the M character on the topmost line.

I also modified the right border start setting to properly display border colour in 40 column text mode. In that mode the picture is 240 pixels wide, not 256 pixels as in all the other modes. Not dealing with this properly caused the VGA scanline doubler to show pixels that were not written to during screen refresh.

Then I changed the memory mapping, to support 512K cartridges. I did this by reallocating the 1MB external memory to Ti-99/4A mapping. Now 512K is allocated for paged cartridges (up from 64K). That came at the expense of reducing SAMS compatible memory to 256K. But importantly this allowed me to run the cool TI-99/4A megademo called "don't mess with Texas", and running that demo did reveal some bugs, below is the video.


Barry Nelson wrote 10/10/2017 at 05:05 point

Does it have sound output yet? Will it include floppy disk emulation? Do you plan to include support for the extra video modes of the F18A? Make sure it can be slowed down to the real machine's speed please.

  Are you sure? yes | no

Erik Piehl wrote 10/10/2017 at 11:07 point

Yes, sound has been supported by the start. Floppy disk emulation is also already there (albeit not much tested yet) by means of having the PC serve disks. I may integrate the actual F18A with this, but I have no plans to add myself the support of F18A modes to my own TMS9918 core. On the speed side I will add some more provisions to slow it down to speeds close to the original but my goal was never to make a cycle accurate copy. That's one of the reasons this thing is an open source design, so people can tinker and modify to their needs.

  Are you sure? yes | no