From be4a58beb7b64ee8779a804504aed1f6df8a0ec5 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 15 Aug 2019 11:21:19 +0200 Subject: [PATCH] KA10: Make DPY device idle if the Type 340 display is blank. --- PDP10/kx10_dpy.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/PDP10/kx10_dpy.c b/PDP10/kx10_dpy.c index e8b3822..54e2fd6 100644 --- a/PDP10/kx10_dpy.c +++ b/PDP10/kx10_dpy.c @@ -246,6 +246,8 @@ t_stat dpy_devio(uint32 dev, uint64 *data) { dpy_update_status( uptr, ty340_reset(&dpy_dev), 1); sim_debug(DEBUG_CONO, &dpy_dev, "DPY %03o CONO %06o PC=%06o %06o\n", dev, (uint32)*data, PC, uptr->STAT_REG & ~STAT_VALID); + if (!sim_is_active(uptr)) + sim_activate_after(uptr, DPY_CYCLE_US); break; case DATAO: @@ -262,6 +264,8 @@ t_stat dpy_devio(uint32 dev, uint64 *data) { inst = (uint32)RRZ(*data); dpy_update_status(uptr, ty340_instruction(inst), 1); } + if (!sim_is_active(uptr)) + sim_activate_after(uptr, DPY_CYCLE_US); break; case DATAI: @@ -276,7 +280,8 @@ t_stat dpy_devio(uint32 dev, uint64 *data) { /* Timer service - */ t_stat dpy_svc (UNIT *uptr) { - sim_activate_after(uptr, DPY_CYCLE_US); /* requeue! */ + if (!display_is_blank() || uptr->INT_COUNTDOWN > 0) + sim_activate_after(uptr, DPY_CYCLE_US); /* requeue! */ display_age(DPY_CYCLE_US, 0); /* age the display */