diff --git a/CDC1700/cdc1700_cd.c b/CDC1700/cdc1700_cd.c
index d82ce6d6..c30ae960 100644
--- a/CDC1700/cdc1700_cd.c
+++ b/CDC1700/cdc1700_cd.c
@@ -1078,7 +1078,6 @@ t_stat cd_reset(DEVICE *dptr)
 t_stat cd_attach(UNIT *uptr, CONST char *cptr)
 {
   struct cdio_unit *iou = (struct cdio_unit *)uptr->up7;
-  const char *drivetype = ((uptr->flags & UNIT_856_4) != 0) ? "856-4" : "856-2";
   t_addr capac = ((uptr->flags & UNIT_856_4) != 0) ? CD856_4_SIZE : CD856_2_SIZE;
   t_stat r;
 
@@ -1115,7 +1114,7 @@ t_stat cd_detach(UNIT *uptr)
 {
   struct cdio_unit *iou = (struct cdio_unit *)uptr->up7;
   t_stat stat;
-
+  
   sim_cancel(uptr);
   stat = detach_unit(uptr);
 
@@ -1124,15 +1123,13 @@ t_stat cd_detach(UNIT *uptr)
     if (iou->ondrive[iou->disk] == uptr)
       iou->disk = CD_NONE;
 
-  return SCPE_OK;
+  return stat;
 }
 
 /* Check if I/O should be rejected */
 
 t_bool CDreject(IO_DEVICE *iod, t_bool output, uint8 reg)
 {
-  struct cdio_unit *iou = (struct cdio_unit *)iod->iod_drive;
-
   if (output) {
     switch (reg) {
       /*
diff --git a/CDC1700/cdc1700_cpu.c b/CDC1700/cdc1700_cpu.c
index bcb6e91c..3767bde5 100644
--- a/CDC1700/cdc1700_cpu.c
+++ b/CDC1700/cdc1700_cpu.c
@@ -1608,6 +1608,9 @@ t_stat executeAnInstruction(void)
             case MOD_O_M | MOD_O_Q:
               operand2 = Qreg | Mreg;
               break;
+
+            default:
+              ASSURE(0);
           }
 
           switch (instr & (MOD_LP | MOD_XR)) {
diff --git a/CDC1700/cdc1700_dp.c b/CDC1700/cdc1700_dp.c
index 371c2f74..1e0aa491 100644
--- a/CDC1700/cdc1700_dp.c
+++ b/CDC1700/cdc1700_dp.c
@@ -837,7 +837,6 @@ t_stat dp_reset(DEVICE *dptr)
 t_stat dp_attach(UNIT *uptr, CONST char *cptr)
 {
   struct dpio_unit *iou = (struct dpio_unit *)uptr->up7;
-  const char *drivetype = ((uptr->flags & UNIT_854) != 0) ? "854" : "853";
   t_addr capac = ((uptr->flags & UNIT_854) != 0) ? DP854_SIZE : DP853_SIZE;
   t_stat r;
 
diff --git a/CDC1700/cdc1700_msos5.c b/CDC1700/cdc1700_msos5.c
index f441c75a..c9008353 100644
--- a/CDC1700/cdc1700_msos5.c
+++ b/CDC1700/cdc1700_msos5.c
@@ -225,7 +225,6 @@ static uint16 luabs(uint16 param, uint16 lu, uint16 a)
 static uint16 spabs(uint16 param)
 {
   uint16 sa = M[param + 5];
-  uint16 sl = param + 5;
 
   /*
    * If the D bit is set, the starting address must be absolute.
diff --git a/CDC1700/cdc1700_mt.c b/CDC1700/cdc1700_mt.c
index 20a9b3b3..8ec72c04 100644
--- a/CDC1700/cdc1700_mt.c
+++ b/CDC1700/cdc1700_mt.c
@@ -168,6 +168,7 @@ static uint16 mtbootstrap9[] = {
 };
 #define MTBOOTLEN9      (sizeof(mtbootstrap9) / sizeof(uint16))
 
+#if 0
 /*
  * Seven-track magnetic tape bootstrap
  */
@@ -213,6 +214,7 @@ static uint16 mtbootstrap7[] = {
   0x0000                        /* 26:              */
 };
 #define MTBOOTLEN7      (sizeof(mtbootstrap7) / sizeof(uint16))
+#endif
 
 /*
  * SMM17 bootstraps
@@ -239,6 +241,7 @@ static uint16 smm17boot9[] = {
 };
 #define SMM17BOOTLEN9   (sizeof(smm17boot9) / sizeof(uint16))
 
+#if 0
 static uint16 smm17boot7[] = {
   0x68FE,                       /* xFE0: MTBOOT STA*    *-1             */
   0xE000,                       /* xFE1:        LDQ     =N$WESD         */
@@ -271,6 +274,7 @@ static uint16 smm17boot7[] = {
   0x1007                        /* xFFC:        JMP-    QL ENTRY        */
 };
 #define SMM17BOOTLEN7   (sizeof(smm17boot7) / sizeof(uint16))
+#endif
 
 /*
  * Shared I/O buffer. Note that this is larger than the max possible memory
@@ -1321,6 +1325,7 @@ t_stat mt_svc(UNIT *uptr)
       break;
 
     case IO_1732_SFWD:
+      status = MTSE_OK;
       while (!sim_tape_eot(uptr)) {
         status = sim_tape_sprecf(uptr, &temp);
         
@@ -1342,6 +1347,7 @@ t_stat mt_svc(UNIT *uptr)
       break;
 
      case IO_1732_SBACK:
+       status = MTSE_OK;
        while (!sim_tape_bot(uptr)) {
          status = sim_tape_sprecr(uptr, &temp);
 
@@ -1720,7 +1726,6 @@ enum IOstatus doMTFunction(DEVICE *dev)
 {
   UNIT *uptr;
   t_stat st;
-  t_mtrlnt count = 1;
 
   /*
    * Handle commands in the following order:
@@ -1882,6 +1887,12 @@ enum IOstatus MTout(IO_DEVICE *iod, uint8 reg)
       return doMTFunction(MTdev.iod_outdev);
 
     case 0x02:
+      /*
+       * Get the unit number for select
+       */
+      unit = MTdev.iod_type == DEVTYPE_1732_3 ? IO_1732_UNIT : IO_1732A_UNIT;
+      unit = (unit & Areg) >> 7;
+
       /*
        * Check for invalid bit combinations.
        */
@@ -1896,9 +1907,6 @@ enum IOstatus MTout(IO_DEVICE *iod, uint8 reg)
         /*
          * Check for illegal unit select.
          */
-        unit = MTdev.iod_type == DEVTYPE_1732_3 ? IO_1732_UNIT : IO_1732A_UNIT;
-        unit = (unit & Areg) >> 7;
-
         if (unit >= mt_dev.numunits)
           return IO_REJECT;
       }
diff --git a/CDC1700/cdc1700_sym.c b/CDC1700/cdc1700_sym.c
index 6f41f2ab..27bba9c3 100644
--- a/CDC1700/cdc1700_sym.c
+++ b/CDC1700/cdc1700_sym.c
@@ -132,14 +132,13 @@ static uint16 instInter[] = {
 
 t_stat parse_sym(CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32 sw)
 {
-  int32 cflag, i, j, l, rdx;
-  t_bool neg, cons;
+  int32 i, j, l, rdx;
+  t_bool neg;
   t_value temp;
-  t_stat r, sta = SCPE_OK;
+  t_stat r;
   char gbuf[CBUFSIZE], mode;
   const char *cptr2;
 
-  cflag = (uptr == NULL) || (uptr == &cpu_unit);
   while (isspace(*cptr))
     cptr++;
 
@@ -174,7 +173,7 @@ t_stat parse_sym(CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32
   while (isspace(*cptr))
     cptr++;
 
-  cons = neg = FALSE;
+  neg = FALSE;
   rdx = 10;
 
   switch (opc_val[i] & I_MASK) {
@@ -182,7 +181,6 @@ t_stat parse_sym(CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val, int32
     case I_ARITH:
     case I_LOG:
       if (*cptr == '=') {
-        cons = TRUE;
         cptr++;
 
         if (*cptr == '-') {