diff --git a/hardware.h b/hardware.h index 0e2c9f3..2455890 100644 --- a/hardware.h +++ b/hardware.h @@ -25,4 +25,10 @@ extern class spiram sram; extern class Memory memory; #endif +#if defined(DEBUGGING) +#define DBG(x) Serial.x +#else +#define DBG(x) +#endif + #endif diff --git a/pia.cpp b/pia.cpp index 53ba09d..d35ea9b 100644 --- a/pia.cpp +++ b/pia.cpp @@ -177,3 +177,17 @@ uint8_t PIA::read_portb() { irq_b1 = irq_b2 = false; return (inb & ~ddrb) | (outb & ddrb); } + +void PIA::write_porta_in_bit(uint8_t mask, bool state) { + if (state) + ina |= mask; + else + ina &= ~mask; +} + +void PIA::write_portb_in_bit(uint8_t mask, bool state) { + if (state) + inb |= mask; + else + inb &= ~mask; +} diff --git a/pia.h b/pia.h index 8104ff1..4b13a0d 100644 --- a/pia.h +++ b/pia.h @@ -23,9 +23,11 @@ public: // device input (external) interface void write_porta_in(uint8_t b) { ina = b; } + void write_porta_in_bit(uint8_t, bool); void write_ca1(bool); void write_ca2(bool); void write_portb_in(uint8_t b) { inb = b; } + void write_portb_in_bit(uint8_t, bool); void write_cb1(bool); void write_cb2(bool);