From bc49f6b78ac8fc51be5268c3340c076b572e3c68 Mon Sep 17 00:00:00 2001
From: Mark Pizzolato <mark@infocomm.com>
Date: Fri, 31 May 2013 04:16:42 -0700
Subject: [PATCH] Fix for Unibus word DMA from Rob Jarratt

---
 PDP10/pdp10_ksio.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/PDP10/pdp10_ksio.c b/PDP10/pdp10_ksio.c
index c8d14de4..4d7478ec 100644
--- a/PDP10/pdp10_ksio.c
+++ b/PDP10/pdp10_ksio.c
@@ -512,7 +512,7 @@ d10 val;
 
 ba = ba & ~01;                                          /* align start */
 lim = ba + (bc & ~01);
-for ( ; ba < lim; ba++) {                               /* by bytes */
+for ( ; ba < lim; ba += 2) {                            /* by bytes */
     pa10 = Map_Addr10 (ba, 1);                          /* map addr */
     if ((pa10 < 0) || MEM_ADDR_NXM (pa10)) {            /* inv map or NXM? */
         ubcs[1] = ubcs[1] | UBCS_TMO;                   /* UBA times out */
@@ -520,8 +520,8 @@ for ( ; ba < lim; ba++) {                               /* by bytes */
         }
     val = *buf++;                                       /* get data */
     if (ba & 2)
-        M[pa10] = (M[pa10] & INT64_C(0777777600000)) | val;
-    else M[pa10] = (M[pa10] & INT64_C(0600000777777)) | (val << 18);
+        M[pa10] = (M[pa10] & INT64_C(0777777000000)) | val;
+    else M[pa10] = (M[pa10] & INT64_C(0000000777777)) | (val << 18);
     }
 return 0;
 }
@@ -961,8 +961,6 @@ AUTO_CON auto_tab[] = {/*c  #v  am vm  fxa   fxv */
         {0017550}, {0070} },                             /* PC11 reader - fx CSR, fx VEC */
     { { "PTP" },         1,  1,  0, 0, 
         {0017554}, {0074} },                             /* PC11 punch - fx CSR, fx VEC */
-    { { "DUP" },         1,  2,  0, 0, 
-        {0000100}, {0300} },                             /* DUP11 sync lines - fx CSR, fx VEC */
 #else
     { { "QBA" },         1,  0,  0, 0, 
         {017500} },                                     /* doorbell - fx CSR, no VEC */