Changes

CRTC

630 bytes removed, 6 July
/* Internal Counters */
No matter its type, the CRTC never buffers any of its counters, except for the video pointer MA. A buffer MA' is needed because MA has to be reloaded at each raster line start.
 
R12/R13 is loaded only once per frame, in MA and MA', at the first raster line start of the frame. The counter MA is then reloaded with the value of MA' at each raster line start. And at each new character line start, MA' captures the current value of MA.
 
The exception is the CRTC 1 for which MA is reloaded at each raster line start with R12/R13 instead of MA' as long as VCC=0.
 
This is a major source of incompatibility if the programmer does not take care of this discrepancy. In demos and games, to make a display compatible with all CRTCs, program R12/R13 when VCC!=0. This will then take effect at the next frame start.
<br>
6,129
edits