1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-04-11 14:37:37 +00:00

Implements set_status as per advice.

This commit is contained in:
Thomas Harte 2021-02-14 21:04:20 -05:00
parent a3e98907ca
commit a791680e6f

@ -109,15 +109,19 @@ uint8_t GLU::get_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) {
registers_[1] = command;
registers_[4] |= uint8_t(MicrocontrollerFlags::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.