mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-24 12:30:17 +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);
|
cycle.set_value16(position);
|
||||||
} break;
|
} 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.
|
// Disk DMA.
|
||||||
case Write(0x020): case Write(0x022): case Write(0x024):
|
case Write(0x020): case Write(0x022): case Write(0x024):
|
||||||
case Write(0x026):
|
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_});
|
LOG("Interrupt request modified by " << PADHEX(4) << cycle.value16() << "; is now " << std::bitset<16>{interrupt_requests_});
|
||||||
break;
|
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.
|
// Bitplanes.
|
||||||
case Write(0x100):
|
case Write(0x100):
|
||||||
case Write(0x102):
|
case Write(0x102):
|
||||||
|
@ -60,6 +60,10 @@ class Chipset {
|
|||||||
|
|
||||||
int x_ = 0, y_ = 0;
|
int x_ = 0, y_ = 0;
|
||||||
int line_length_ = 227;
|
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