Fix for Unibus word DMA from Rob Jarratt
This commit is contained in:
parent
1c7bf98610
commit
bc49f6b78a
1 changed files with 3 additions and 5 deletions
|
@ -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 */
|
||||
|
|
Loading…
Add table
Reference in a new issue