TMS9918 with DRAM

753 views
Skip to first unread message

Mark T

unread,
Jun 14, 2018, 12:41:37 AM6/14/18
to RC2014-Z80
I'm nowhere near as far on as J.B.Langston but this is an alternate attempt to get a TMS9918 running using TMS4464 dram.

I'm using a TMS9918 and not the TMS9918A. I've had this in my component box since buying it from Farnell in the early 80s together with a set of 4116 dram. The dram is long gone into another project, probably a zx spectrum upgrade. I did have a pair of TMS4464-15 in the component box, and as it seemed a bit crowded to fit the SRAM circuit into an RC2014 card I thought I'd try a dram version.

The advantage of using dram is that there is no need to latch the address data which reduces the chip count. The 4464 dram still has combined data in/out pins, so the TMS9918 needs a tristate buffer from the AD0-7 outputs to the dram data lines.

Note the TMS9918 generates a 7 bit row followed by a 7 bit column address, so can not be used with the 4416 type ram which requires an 8 bit row and a 6 bit column.

I've spent some time trying to get a simple VRAM test working. This writes a block of data to VRAM, 00, 01, 02 etc, and then reads it back to Z80 memory.

First the TMS4464-15s from my component box were getting very hot, not enough to blister, but not far off. I was able to get a set of TMS4464-10s from SAYAL, a local electronic supplier in Ontario. This seemed to solve the overheating problem so I think the old chips were already fried, or maybe I fried them using a slightly over voltage supply.

I swapped the USB power supply from one that measured 5.29v to one that measured 4.89v. Measured with an uncalibrated dvm so not sure how accurate this was.

With the dram and 74HCT245 removed, and 10K pullups on the RD0-RD7 inputs I was able to read FF, and by pulling each RD input to ground verified that the data inputs were working.

With the dram fitted but the 74HCT245 still removed I was still only able to read FF from every location, although using a logic probe on each data line from the dram was showing both high and low level pulses. I'd expected to read random data from ram.

I was suspecting timing, but everything in the TMS9918A data sheet seemed to be satisfied by the TMS4464-10. I tried finding a data sheet for the TMS9918 (without the A) but have not been able to find a datasheet. I was able to find a schematic for the TI99/4 which I think is the only computer to ever use the TMS9918 (without the A). It shows that a 68pF capacitor was added to the CAS to the 4116 dram, and also a series of 4 74LS04 gates in the WE line to DRAM. This suggests that the timing of the original TMS9918 did not match the 4116 dram correctly.

I added two 33pF caps in parallel to the CAS line as I didn't have any 68pF, but unfortunately this didn't work. This seems likely to be due to the shorter Tdis time of the TMS4464-10 compared to 4116. Adding two more 33pF caps for a total of 142pF seemed to correct the timing. i'm a bit concerned about the high capacitive load on the CAS output of the TMS9918 so I might try again with an RC circuit instead.

So far I've just been using an 11.0592MHz crystal to test the dram interface, I also tried 10MHz but it was 11.0592MHz that was used when the capacitors were added to the CAS line. It seems this is close enough for a black and white image on the tv.

Now that I'm sure the TMS9918 is working I'll try and get the correct crystal, verify the CAS capacitor is still required and then see if I can get a proper display interface software running.

If anyone has a datasheet for the TMS9918 (without the A) I'd very much like to get a copy. Also if anyone has the datasheet for the TMS9118 that includes sections 1, 2 and 3.



WIN_20180613_230428.JPG
DBD_schematic.pdf

Jan S

unread,
Jun 14, 2018, 1:24:06 AM6/14/18
to RC2014-Z80
Hi Mark

I do have a 72 page pdf covering ti-vdp programmers guide, which could come in handy......
Let me know

Best regards
Jan

Mark T

unread,
Jun 14, 2018, 2:49:38 AM6/14/18
to RC2014-Z80
Thanks Jan, I already found that one.

ZO...@gladucalled.com

unread,
Jun 14, 2018, 8:08:52 AM6/14/18
to RC2014-Z80
Hi Mark T,

I am not familiar with these video chips and started looking into them.  I found this link with a description of the A vs non-A part.

=Steve.

Untitled.tiff

Mark T

unread,
Jun 14, 2018, 3:34:39 PM6/14/18
to RC2014-Z80
Thanks Steve, In my hours (possibly days) searching the internet that is the only difference I was able to find between the TMS9918 and the TMS9918A until I checked the schematic for the TI99/4 (also without the A). I think the TI99/4 was the only machine to use the TMS9918.

Instead of messing about with capacitor values I'm going to swap the 74LS132 for a 74LS14, needs about 6 track cuts and a few wire adds, to take the CAS line through two inverters to add delay. I'd originally used the 74LS132 to try and shorten the end of the delayed WE pulse but after a few more hours studying the timing diagrams I don't think this is needed.

Note I chose the devices for the propagation times.
74HCT245 from HiZ to L/H + 74LS132 H to L > Tdis of TMS4464-10 (Avoid bus contention between 74HCT245 and TMS4464-10)
74HCT245 from HiZ to L/H < 74LS132 H to L + 74LS132 L to H (WE active after data valid)

74HCT132 might have worked but the maximum propagation is higher than the 74LS132.
74LS245 would probably not give enough time for valid data at the start of the WE pulse. Data is clocked into dram at the start of WE.

My interest in the TMS9118 datasheet is that there was a note in the TI 1984 IC Master selection guide that the TMS9118 can be used with either 4116 or 4416 dram. This conflicts with the info on dram where 4116 uses 7 bit row and 7 bit column, while the 4416 uses 8 bit row and 6 bit column. They might be using 8 bit row and 7 bit column with redundant bit in each but I'd like to know for certain that 4464 can be used on TMS9118.


Jan S

unread,
Jun 14, 2018, 5:05:14 PM6/14/18
to RC2014-Z80
Not much on the TMS9918, but I found this:


ptvdp.png

Peter Willard

unread,
Jun 15, 2018, 9:48:38 AM6/15/18
to RC2014-Z80
I think the Coleco ADAM used the TMS9918 as well.

Mark T

unread,
Jun 15, 2018, 12:31:59 PM6/15/18
to RC2014-Z80
The schematic I found shows it used a TMS9928A

Mark T

unread,
Jun 16, 2018, 10:58:17 PM6/16/18
to RC2014-Z80

Changing the delay in the CAS line from 132pF to Two 74LS14 gates was not a complete success, occassionally the least significant bit is read as 1 instead of 0. At least I can add a capacitor to increase the delay without increasing the load on the TMS9918. I'll probably wait until I get the correct crystal before I make any more changes.

Mark T

unread,
Oct 18, 2023, 4:03:00 PM10/18/23
to RC2014-Z80
It seems someone now has theTMS992xA vdp working with 4464 dram. They have a slightly different scheme for delaying the write data, so I may try altering the wire mods on my board to see if it works with the TMS9918A instead of the tms9118.


The tms rgb module might also be worth trying.
Reply all
Reply to author
Forward
0 new messages