mirror of
https://github.com/TomHarte/CLK.git
synced 2025-08-07 23:25:00 +00:00
Implements set_status as per advice.
This commit is contained in:
@@ -109,15 +109,19 @@ uint8_t GLU::get_status() {
|
|||||||
return status_;
|
return status_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GLU::set_status(uint8_t status) {
|
||||||
|
// This permits only the interrupt flags to be set.
|
||||||
|
constexpr uint8_t interrupt_flags =
|
||||||
|
uint8_t(CPUFlags::MouseInterruptEnabled) |
|
||||||
|
uint8_t(CPUFlags::CommandDataInterruptEnabled) |
|
||||||
|
uint8_t(CPUFlags::KeyboardDataInterruptEnabled);
|
||||||
|
status_ = (status_ & ~interrupt_flags) | (status & interrupt_flags);
|
||||||
|
}
|
||||||
|
|
||||||
void GLU::set_command(uint8_t command) {
|
void GLU::set_command(uint8_t command) {
|
||||||
registers_[1] = command;
|
registers_[1] = command;
|
||||||
registers_[4] |= uint8_t(MicrocontrollerFlags::CommandRegisterFull);
|
registers_[4] |= uint8_t(MicrocontrollerFlags::CommandRegisterFull);
|
||||||
status_ |= uint8_t(CPUFlags::CommandRegisterFull);
|
status_ |= uint8_t(CPUFlags::CommandRegisterFull);
|
||||||
// printf("!!!%02x!!!\n", command);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLU::set_status(uint8_t status) {
|
|
||||||
printf("TODO: set ADB status %02x\n", status);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Setup and run.
|
// MARK: - Setup and run.
|
||||||
|
Reference in New Issue
Block a user