1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-03-11 04:42:20 +00:00

Avoid circular state dependency.

This commit is contained in:
Thomas Harte
2025-09-24 14:30:37 -04:00
parent ca6359a597
commit a7cceb5fa9

View File

@@ -184,6 +184,7 @@ public:
bus_state_.refresh == layout_.cursor_address;
bus_state_.display_enable = character_is_visible_ && row_is_visible_;
bus_handler_.perform_bus_cycle(bus_state_);
// TODO: exposed line address should be a function of interlaced video flag, as latched.
//
// Shared, stateless signals.
@@ -205,23 +206,21 @@ public:
// Addressing.
//
const auto initial_line_address = line_address_;
if(new_frame) {
line_address_ = layout_.start_address;
} else if(character_counter_ == layout_.horizontal.displayed && line_end_hit) {
line_address_ = bus_state_.refresh;
// TODO: does this create a conflict with line_address_ heading in the other direction below?
}
if(new_frame) {
bus_state_.refresh = layout_.start_address;
} else if(character_total_hit) {
bus_state_.refresh = line_address_;
bus_state_.refresh = initial_line_address;
} else {
++bus_state_.refresh;
}
// TODO: exposed line address should be a function of interlaced video flag, as latched.
//
// Sync.
//