From cb659d6c836949c62c9cf189ed1a9564d7552494 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sat, 8 Dec 2012 14:30:00 -0800 Subject: [PATCH] Fix to properly report device attention when a manual detach operation is performed (from Bob Supnik) --- PDP10/pdp10_rp.c | 4 +++- PDP11/pdp11_rp.c | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/PDP10/pdp10_rp.c b/PDP10/pdp10_rp.c index a5997728..f7bae99f 100644 --- a/PDP10/pdp10_rp.c +++ b/PDP10/pdp10_rp.c @@ -1155,6 +1155,7 @@ return SCPE_OK; t_stat rp_detach (UNIT *uptr) { int32 drv; +extern int32 sim_is_running; if (!(uptr->flags & UNIT_ATT)) /* attached? */ return SCPE_OK; @@ -1167,7 +1168,8 @@ if (sim_is_active (uptr)) { /* unit active? */ if (uptr->FUNC >= FNC_WCHK) /* data transfer? */ rpcs1 = rpcs1 | CS1_DONE | CS1_TRE; /* set done, err */ } -update_rpcs (CS1_SC, drv); /* request intr */ +if (!sim_is_running) /* from console? */ + update_rpcs (CS1_SC, drv); /* request intr */ return detach_unit (uptr); } diff --git a/PDP11/pdp11_rp.c b/PDP11/pdp11_rp.c index a98463ff..d3fe3d8d 100644 --- a/PDP11/pdp11_rp.c +++ b/PDP11/pdp11_rp.c @@ -1390,11 +1390,14 @@ t_stat rp_detach (UNIT *uptr) { int32 drv; DEVICE *dptr = find_dev_from_unit (uptr); +extern int32 sim_is_running; if (!(uptr->flags & UNIT_ATT)) /* attached? */ return SCPE_OK; drv = (int32) (uptr - dptr->units); /* get drv number */ rpds[drv] = rpds[drv] & ~(DS_MOL | DS_RDY | DS_WRL | DS_VV | DS_OFM); +if (!sim_is_running) /* from console? */ + rp_update_ds (DS_ATA, drv); /* request intr */ return sim_disk_detach (uptr); }