mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-23 20:29:42 +00:00
Stubs in enough to get back into a persistent loop.
This commit is contained in:
parent
69d62560b4
commit
de208ead4e
@ -63,6 +63,13 @@ void Chipset::perform(const CPU::MC68000::Microcycle &cycle) {
|
||||
cycle.set_value16(position);
|
||||
} break;
|
||||
|
||||
case Write(0x02a):
|
||||
LOG("TODO: write vertical position high " << PADHEX(4) << cycle.value16());
|
||||
break;
|
||||
case Write(0x02c):
|
||||
LOG("TODO: write vertical position low " << PADHEX(4) << cycle.value16());
|
||||
break;
|
||||
|
||||
// Disk DMA.
|
||||
case Write(0x020): case Write(0x022): case Write(0x024):
|
||||
case Write(0x026):
|
||||
@ -104,6 +111,29 @@ void Chipset::perform(const CPU::MC68000::Microcycle &cycle) {
|
||||
LOG("Interrupt request modified by " << PADHEX(4) << cycle.value16() << "; is now " << std::bitset<16>{interrupt_requests_});
|
||||
break;
|
||||
|
||||
// Display management.
|
||||
case Write(0x08e): {
|
||||
const uint16_t value = cycle.value16();
|
||||
display_window_start_[0] = value & 0xff;
|
||||
display_window_start_[1] = value >> 8;
|
||||
LOG("Display window start set to " << std::dec << display_window_start_[0] << ", " << display_window_start_[1]);
|
||||
} break;
|
||||
case Write(0x090): {
|
||||
const uint16_t value = cycle.value16();
|
||||
display_window_stop_[0] = 0x100 | (value & 0xff);
|
||||
display_window_stop_[1] = value >> 8;
|
||||
display_window_stop_[1] |= ((value >> 7) & 0x100) ^ 0x100;
|
||||
LOG("Display window stop set to " << std::dec << display_window_stop_[0] << ", " << display_window_stop_[1]);
|
||||
} break;
|
||||
case Write(0x092):
|
||||
fetch_window_[0] = uint16_t((cycle.value16() & 0xfc) << 1);
|
||||
LOG("Fetch window start set to " << std::dec << fetch_window_[0]);
|
||||
break;
|
||||
case Write(0x094):
|
||||
fetch_window_[1] = uint16_t((cycle.value16() & 0xfc) << 1);
|
||||
LOG("Fetch window stop set to " << std::dec << fetch_window_[1]);
|
||||
break;
|
||||
|
||||
// Bitplanes.
|
||||
case Write(0x100):
|
||||
case Write(0x102):
|
||||
|
@ -60,6 +60,10 @@ class Chipset {
|
||||
|
||||
int x_ = 0, y_ = 0;
|
||||
int line_length_ = 227;
|
||||
|
||||
uint16_t display_window_start_[2] = {0, 0};
|
||||
uint16_t display_window_stop_[2] = {0, 0};
|
||||
uint16_t fetch_window_[2] = {0, 0};
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user