I built up a new pcb using TMS9918A and TMS4464-10 without track cuts and wire mods for the 74LS14 or capacitor on the /CAS line.
It seems to work OK on initial power up but something is still not quite right and starts to show strange bit maps for some sprites and characters after about 10 to 15 minutes. Either timing of signal to dram or possibly logic level mismatch.
Tried 10K pull up resistors on RD0-7 just in case the TMS9918A didn't like floating inputs when the 4464-10 outputs are tristate.
Tried pull up 20K pull up resistors on AD0-7, as TMS9918A VOH minimum of 2.4v and TMS4464-10 VIH minimum of 2.4v leaves no noise margin.
I realised then that the time between the end of the write signal and beginning of CAS for the next cycle is a lot shorter than it looks in the TMS9918A timing diagram, minimum is 25 ns, so if the end of the write signal is extended by more than 25ns the next cycle will write invalid data, as an early write cycle. Using a 74LS00 should delay the end of the write cycle by two gate delays, typical would be 20ns but maximum would be 40ns.
With 74LS00, to ensure the outputs of the data buffer are still tristate before the outputs of the 4464-10 are disabled requires using 74LS245 for the data buffer. Then from enabling the 74LS245 to the start of the write enable to the ram is only two gate delays between 20ns and 40ns while the propagation delay of the 74LS245 is typically 27ns and max of 40ns.
Maybe I can get the timing correct if I add an additional OR gate, 74LS32, to terminate the write signal to the ram as early as possible.
Or maybe its time to give up and use SRAM or try and get a TMS9128 that is intended to work with DRAM that supports early write and common input and outputs.