Changes

Jump to: navigation, search

CRTC

1,301 bytes removed, 18:50, 15 November 2024
/* 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 numerous issues that stem from 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 vertical adjustment activation, depend on HCC reaching certain values. When R0 fact that VLC is 0 or 1, HCC doesn't reach those values, preventing those operations from happeningfrozenWhen R0=0:* VLC Freeze: Because As 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 starts. 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:* VLC Management: VLC increments and R9 updates are considered once per line (when HCC=0).* Vertical Adjustment: If both VLC=R9 and VCC=R4 are true when evaluated during the first 3 cycles of the line, vertical adjustment starts. It ends when VLC, calculated for the next line, equals R5.* Register Update: R4, R5, and R9 updates are considered only when HCC=0. R8 is evaluated at each HCC=0.
<br>
13,173
edits