aboutsummaryrefslogtreecommitdiff
path: root/hw/misc/mos6522.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/misc/mos6522.c')
-rw-r--r--hw/misc/mos6522.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/misc/mos6522.c b/hw/misc/mos6522.c
index 44eb306..14cff26 100644
--- a/hw/misc/mos6522.c
+++ b/hw/misc/mos6522.c
@@ -40,7 +40,7 @@ static void mos6522_timer_update(MOS6522State *s, MOS6522Timer *ti,
static void mos6522_update_irq(MOS6522State *s)
{
- if (s->ifr & s->ier & (SR_INT | T1_INT | T2_INT)) {
+ if (s->ifr & s->ier) {
qemu_irq_raise(s->irq);
} else {
qemu_irq_lower(s->irq);
@@ -241,7 +241,7 @@ uint64_t mos6522_read(void *opaque, hwaddr addr, unsigned size)
break;
case VIA_REG_SR:
val = s->sr;
- s->ifr &= ~(SR_INT | CB1_INT | CB2_INT);
+ s->ifr &= ~SR_INT;
mos6522_update_irq(s);
break;
case VIA_REG_ACR:
@@ -463,6 +463,7 @@ static void mos6522_class_init(ObjectClass *oc, void *data)
mdc->set_sr_int = mos6522_set_sr_int;
mdc->portB_write = mos6522_portB_write;
mdc->portA_write = mos6522_portA_write;
+ mdc->update_irq = mos6522_update_irq;
mdc->get_timer1_counter_value = mos6522_get_counter_value;
mdc->get_timer2_counter_value = mos6522_get_counter_value;
mdc->get_timer1_load_time = mos6522_get_load_time;