mirror of
https://github.com/open-simh/simh.git
synced 2026-04-28 12:57:40 +00:00
Mask adapter channel from buffer address for QBus accesses
This commit is contained in:
@@ -619,7 +619,7 @@ int32 Map_ReadB (uint32 ba, int32 bc, uint8 *buf)
|
|||||||
int32 i;
|
int32 i;
|
||||||
uint32 ma, dat;
|
uint32 ma, dat;
|
||||||
|
|
||||||
ba &= 0x003FFFFF;
|
ba = ba & 0x00FFFFFF;
|
||||||
if ((ba | bc) & 03) { /* check alignment */
|
if ((ba | bc) & 03) { /* check alignment */
|
||||||
for (i = ma = 0; i < bc; i++, buf++) { /* by bytes */
|
for (i = ma = 0; i < bc; i++, buf++) { /* by bytes */
|
||||||
if ((ma & VA_M_OFF) == 0) { /* need map? */
|
if ((ma & VA_M_OFF) == 0) { /* need map? */
|
||||||
@@ -652,8 +652,7 @@ int32 Map_ReadW (uint32 ba, int32 bc, uint16 *buf)
|
|||||||
int32 i;
|
int32 i;
|
||||||
uint32 ma,dat;
|
uint32 ma,dat;
|
||||||
|
|
||||||
ba &= 0x003FFFFF;
|
ba = ba & 0x00FFFFFE;
|
||||||
ba = ba & ~01;
|
|
||||||
bc = bc & ~01;
|
bc = bc & ~01;
|
||||||
if ((ba | bc) & 03) { /* check alignment */
|
if ((ba | bc) & 03) { /* check alignment */
|
||||||
for (i = ma = 0; i < bc; i = i + 2, buf++) { /* by words */
|
for (i = ma = 0; i < bc; i = i + 2, buf++) { /* by words */
|
||||||
@@ -685,7 +684,7 @@ int32 Map_WriteB (uint32 ba, int32 bc, const uint8 *buf)
|
|||||||
int32 i;
|
int32 i;
|
||||||
uint32 ma, dat;
|
uint32 ma, dat;
|
||||||
|
|
||||||
ba &= 0x003FFFFF;
|
ba = ba & 0x00FFFFFF;
|
||||||
if ((ba | bc) & 03) { /* check alignment */
|
if ((ba | bc) & 03) { /* check alignment */
|
||||||
for (i = ma = 0; i < bc; i++, buf++) { /* by bytes */
|
for (i = ma = 0; i < bc; i++, buf++) { /* by bytes */
|
||||||
if ((ma & VA_M_OFF) == 0) { /* need map? */
|
if ((ma & VA_M_OFF) == 0) { /* need map? */
|
||||||
@@ -718,8 +717,7 @@ int32 Map_WriteW (uint32 ba, int32 bc, const uint16 *buf)
|
|||||||
int32 i;
|
int32 i;
|
||||||
uint32 ma, dat;
|
uint32 ma, dat;
|
||||||
|
|
||||||
ba &= 0x003FFFFF;
|
ba = ba & 0x00FFFFFE;
|
||||||
ba = ba & ~01;
|
|
||||||
bc = bc & ~01;
|
bc = bc & ~01;
|
||||||
if ((ba | bc) & 03) { /* check alignment */
|
if ((ba | bc) & 03) { /* check alignment */
|
||||||
for (i = ma = 0; i < bc; i = i + 2, buf++) { /* by words */
|
for (i = ma = 0; i < bc; i = i + 2, buf++) { /* by words */
|
||||||
|
|||||||
Reference in New Issue
Block a user