Changes
CRTC
,/* CRTC Differences */
=== HSC (C3l) overflow ===
During an HSYNC, if HSYNC Width (R3l) is changed with a value less than the current HSC, then HSC overflows and will continue to count up to its maximum value (15) before loopingback.
The only exception is for CRTC 1 with a value of 0, which cancels the current HSYNC.
If Number of Scan Lines (R9) is updated with a value less than the current VLC, then:
* on CRTCs 0/1/2, VLC overflows and will count up to its maximum value (31) before loopingback
* on CRTCs 3/4, the current line is considered the last one of this CRTC character and VLC changes to 0 on the next line
During vertical adjustment mode, if Vertical Total Adjust (R5) is changed with a value less than the current VTAC, then:
* on CRTCs 0/1/2, VTAC overflows and will continue to count up to its maximum value (31) before loopingback
* on CRTCs 3/4, the current line is considered the last one of the current frame and vertical adjustment ends
On all CRTCs, during the vertical display period (ie. when VCC <= R4), if Vertical Total (R4) is updated with a value less than VCC:
* if this update was done when VCC < R4, then VCC overflows and will continue to count up to its maximum value (127) before loopingback
* if this update was done when VCC = R4, the decision has already been made to switch to vertical retrace period (non-display) and no update to R4 will make the CRTC change its mind for the current frame