From 4c44975e98d851c2d0ded26813e0da16b9d0054e Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sun, 7 Nov 2021 10:06:40 -0800 Subject: [PATCH] SCSI, VAX & PDP11: Force Read Only attach for CDROM devices As reported in #1094 --- PDP11/pdp11_rq.c | 2 ++ sim_scsi.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/PDP11/pdp11_rq.c b/PDP11/pdp11_rq.c index 4a4f7b71..6842bde2 100644 --- a/PDP11/pdp11_rq.c +++ b/PDP11/pdp11_rq.c @@ -2960,6 +2960,8 @@ t_stat rq_attach (UNIT *uptr, CONST char *cptr) MSC *cp = rq_ctxmap[uptr->cnum]; t_stat r; +if (drv_tab[GET_DTYPE (uptr->flags)].flgs & RQDF_RO) + sim_switches |= SWMASK ('R'); r = sim_disk_attach_ex (uptr, cptr, RQ_NUMBY, sizeof (uint16), (uptr->flags & UNIT_NOAUTO), DBG_DSK, drv_tab[GET_DTYPE (uptr->flags)].name, 0, 0, (uptr->flags & UNIT_NOAUTO) ? NULL : drv_types); if (r != SCPE_OK) diff --git a/sim_scsi.c b/sim_scsi.c index b670d654..e2388a01 100644 --- a/sim_scsi.c +++ b/sim_scsi.c @@ -1706,7 +1706,9 @@ if (dev == NULL) switch (dev->devtype) { case SCSI_DISK: case SCSI_WORM: + return sim_disk_attach_ex (uptr, cptr, dev->block_size, sizeof (uint16), (uptr->flags & SCSI_NOAUTO), SCSI_DBG_DSK, dev->name, 0, 0, drivetypes); case SCSI_CDROM: + sim_switches |= SWMASK ('R'); /* Force Read Only Attach for CDROM */ return sim_disk_attach_ex (uptr, cptr, dev->block_size, sizeof (uint16), (uptr->flags & SCSI_NOAUTO), SCSI_DBG_DSK, dev->name, 0, 0, drivetypes); case SCSI_TAPE: return sim_tape_attach_ex (uptr, cptr, SCSI_DBG_TAP, 0);