Changes

CRTC

1,441 bytes added, 15 November
/* Counter freezes */
On CRTCs 1/2/3/4, R0 accepts all values without causing any problems for counters.
On CRTC 0, setting R0 to 0 or 1 will cause some counters to freeze. The reason for the freezes relates to the logic of how and when the CRTC 0 triggers updates and resets of its various internal counters. Several operations, like the last line check and additional line management activation, depend on HCC reaching certain values. When R0 is 0 or 1, HCC doesn't reach those values, preventing those operations from happening. When R0=0 (1µs frames):* VLC Freeze: Because HCC never reaches 1, the logic that increments VLC is never triggered. VLC freezes at the value it held before R0 was set to 0.* VCC's Last Hiccup: If VLC equals R9 and VCC equals R4 at the exact instant R0 becomes 0, VCC increments once on the very next HCC=0. After this, VCC freezes.* Vertical Adjustment: If both VLC=R9 and VCC=R4 at the instant R0 is set to 0, vertical adjustment is activated. This continues even after R0 changes to > 1. Here, VCC increments only once and then freezes.* Register Update Freeze: Updates to R4, R5, and R9 are ignored while R0=0. However, R8 is still evaluated at each HCC=0. When R0=1 (2µs frames):* VLC Management: VLC increments and R9 updates are considered only once per character line because HCC only reaches 1.* Vertical Adjustment: If VLC=R9 and VCC=R4 are true while HCC is 0 or 1 and R0=1, vertical adjustment starts. It ends when VLC calculated for a new line equals R5.* Register Update: R4, R5, and R9 updates are considered only when HCC=0. R8 is evaluated at each HCC=0.
<br>
8,997
edits