Convert Interrupts
This commit is contained in:
parent
e2c8283076
commit
ec09918254
|
@ -17,29 +17,29 @@ namespace JabyEngine {
|
|||
static constexpr auto Controller = Bit(10);
|
||||
static constexpr auto LightPen = Controller;
|
||||
|
||||
__declare_io_type(Status, uint32_t,
|
||||
);
|
||||
__new_declare_io_value(Status, uint32_t) {
|
||||
};
|
||||
|
||||
__declare_io_type(Mask, uint32_t,
|
||||
);
|
||||
__new_declare_io_value(Mask, uint32_t) {
|
||||
};
|
||||
|
||||
__declare_new_io_port(Status, 0x1F801070);
|
||||
__declare_new_io_port(Mask, 0x1F801074);
|
||||
__new_declare_io_port(inline, Status, 0x1F801070);
|
||||
__new_declare_io_port(inline, Mask, 0x1F801074);
|
||||
|
||||
static bool is_irq(Bit irq) {
|
||||
return Status.is_set(irq);
|
||||
return Status.read().is_set2(irq);
|
||||
}
|
||||
|
||||
static void ack_irq(Bit irq) {
|
||||
Status.clear(irq);
|
||||
Status.write(Status.read().clear2(irq));
|
||||
}
|
||||
|
||||
static void disable_irq(Bit irq) {
|
||||
Mask.clear(irq);
|
||||
Mask.write(Mask.read().clear2(irq));
|
||||
}
|
||||
|
||||
static void enable_irq(Bit irq) {
|
||||
Mask.set(irq);
|
||||
Mask.write(Mask.read().set2(irq));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ namespace JabyEngine {
|
|||
|
||||
constexpr T& clear2(Bit bit) {
|
||||
this->raw = bit::clear(this->raw, bit);
|
||||
return *this;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
constexpr bool is_set2(Bit bit) const {
|
||||
|
|
Loading…
Reference in New Issue