Naturally I was curious to find out just how long the memory could last without being refreshed, so I created this program to help find out.
It works by writing a test pattern to memory, running in fast mode for a set time (such that refresh is disabled), and then checking the test pattern for changes.
The obvious problem is the program needs to be refreshed so that it doesn't become corrupted during the test. My solution is to arrange the program in memory carefully so that it occupies a subset of the memory rows. The program can then refresh itself while the test is running on the rows not occupied by the program. To ensure all memory is covered the program moves itself between one set of rows and another.
It seems the memory can last a surprisingly long time. I'm getting 2-3 seconds with 4164 & 41256 DRAMs (even longer when cold). The 4116 type DRAMs in a Dragon 32 were much less impressive, lasting only about 350ms.
wav/bin/source files and further info can be found here:
https://gitlab.com/sorchard001/dragon-refresh-test
Oh, and there's a stable text display while in fast mode
![Smile :)](./images/smilies/icon_e_smile.gif)