diff --git a/PDP11/pdp11_dmc.c b/PDP11/pdp11_dmc.c index 2f91d6ec..56f6a006 100644 --- a/PDP11/pdp11_dmc.c +++ b/PDP11/pdp11_dmc.c @@ -2309,12 +2309,18 @@ while ((control = controller->control_out)) { controller->control_out = NULL; dmc_setreg(controller, 0, 0, DBG_RGC); if (controller->dev_type == DMR) { - /* Indicates microdiagnostics complete */ - if (((*controller->csrs->sel0 & DMC_SEL0_M_UDIAG) != 0) ^ - (dmc_microdiag[controller->index])) - dmc_setreg(controller, 2, 0x8000, DBG_RGC);/* Microdiagnostics Complete */ - else - dmc_setreg(controller, 2, 0x4000, DBG_RGC); /* Microdiagnostics Inhibited */ + if (dmc_is_attached(controller->unit)) { + /* Indicates microdiagnostics complete */ + if (((*controller->csrs->sel0 & DMC_SEL0_M_UDIAG) != 0) ^ + (dmc_microdiag[controller->index])) + dmc_setreg(controller, 2, 0x8000, DBG_RGC);/* Microdiagnostics Complete */ + else + dmc_setreg(controller, 2, 0x4000, DBG_RGC); /* Microdiagnostics Inhibited */ + } + else { + /* Indicate M8203 (Line Unit) test failed */ + dmc_setreg(controller, 2, 0x0200, DBG_RGC); + } } else { /* preserve contents of BSEL3 if DMC-11 */