|
Post by oziphantom on Aug 20, 2019 7:51:47 GMT
Is it possible to "blank the screen" and hence keep the VDC in permanent VBlank conditions. So basically you can read write as much as you want without needing to check for the ready flag.. well make sure you are past a "DRAM refresh cycle" then you are good to go for a bit..
|
|
|
Post by nikoniko on Sept 8, 2019 15:41:42 GMT
Have never tried this, but you could probably set both horizontal displayed and vertical displayed to 0, and compensate accordingly with tweaks to horizontal/vertical total and the sync widths to get a screen that is all or nearly all vblank. You'd just have to be careful to get all your numbers right to keep the monitor happily in sync. Combine that with setting DRAM Refresh to the minimum and turning off attributes as well, and you'll likely have best-case scenario for max number of cycles to play with between refreshes.
I'd be curious to know what the theoretical vs practical maximum number of bytes read/written would be. Years ago I wrote a naive routine that would set DRAM Refresh to the minimum, zero out a range of VDC RAM, then wait for vblank and write a bunch of non-zero bytes without checking the ready bit. Then it'd read them back, properly respecting the ready state, and if the number of non-zero bytes didn't match how many were written, it'd start over, zero out the RAM again, and write one fewer non-zero byte next time. It'd keep decrementing until it found a number of bytes that could reliably be written 10 frames in a row without checking the status. I can't remember the exact number I came up with for my VDC, but it was not a pleasingly large one.
|
|