Ok, I'll move onto something else not CTC related.
But, is this DMA problem likely to cause issues elsewhere that I should be aware of, or is it limited to CTC?
Hi,
Thanks for fixing the cascading CTC issue.
I have another issues related to CTC and DMA in CSpect.
I am using DMA code to clear memory buffers, and it seems to affect the timing of the CTCs
When I use DMA and I cycle though the clock speeds using F6, the CTC counter will also speed up/slow down, but not in always predictable ways.
If I remove the DMA code, then using F6 has no effect on the CTCs.
It also seems to be size related with the DMA, smaller moves (eg 255 in size) dont seem to have the same effect on CTC, but large moves (eg $1000) do.
And running on ZXNext hardware works fine.
Here is a simplistic sample that utilises 3 cascading CTC timers/counters to increment a counter every 1 second and displays the count on the screen.
In Cspect, the counter CTC2 does not cascade from the previous counters, which can be seen. Whereas, on Next hardware, the counter will tick over every second as expected.
https://github.com/blackcataussie/ZXNextCTC/blob/main/CTCTest.asm