HP3000: Bug fix for byte instruction effective addresses calculations with negative indexes.
Update from Dave Bryan
This commit is contained in:
parent
1b6f28a743
commit
b304d7f4a8
1 changed files with 3 additions and 2 deletions
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
CPU HP 3000 Series III Central Processing Unit
|
CPU HP 3000 Series III Central Processing Unit
|
||||||
|
|
||||||
|
11-Mar-16 JDB Fixed byte EA calculations with negative indexes
|
||||||
22-Dec-15 JDB First release version
|
22-Dec-15 JDB First release version
|
||||||
01-Apr-15 JDB First successful run of MPE-V/R through account login
|
01-Apr-15 JDB First successful run of MPE-V/R through account login
|
||||||
11-Dec-12 JDB Created
|
11-Dec-12 JDB Created
|
||||||
|
@ -2457,10 +2458,10 @@ else { /* otherwise the mod
|
||||||
|
|
||||||
if ((CIR & LSDX_MASK) == LDD_X /* if the mode */
|
if ((CIR & LSDX_MASK) == LDD_X /* if the mode */
|
||||||
|| (CIR & LSDX_MASK) == STD_X) /* is double-word indexed */
|
|| (CIR & LSDX_MASK) == STD_X) /* is double-word indexed */
|
||||||
displacement = displacement + X * 2; /* then add the doubled index to the displacement */
|
displacement = displacement + X * 2 & DV_MASK; /* then add the doubled index to the displacement */
|
||||||
|
|
||||||
else if (mode_disp & X_FLAG) /* otherwise if the mode is indexed */
|
else if (mode_disp & X_FLAG) /* otherwise if the mode is indexed */
|
||||||
displacement = displacement + X; /* then add the index to the displacement */
|
displacement = displacement + X & DV_MASK; /* then add the index to the displacement */
|
||||||
|
|
||||||
if (selector == NULL) /* if a word address is requested */
|
if (selector == NULL) /* if a word address is requested */
|
||||||
base = base + displacement; /* then add in the word displacement */
|
base = base + displacement; /* then add in the word displacement */
|
||||||
|
|
Loading…
Add table
Reference in a new issue