mirror of
https://github.com/open-simh/simh.git
synced 2026-01-13 15:27:46 +00:00
PDP11: Fixed bug in CSM (John Dundas)
John Dundas said:
Bob and all,
I ran across what I believe to be a bug in the CSM code:
case 070: /* CSM */
if (CPUT (HAS_CSM) && (MMR3 & MMR3_CSM) || (cm != MD_KER)) {
According to the Architecture Handbook, CSM may be executed only if the MMR3 bit is set AND the mode is not Kernel. Changing the code to:
case 070: /* CSM */
if (CPUT (HAS_CSM) && (MMR3 & MMR3_CSM) && (cm != MD_KER)) {
also has the effect of making the ZKDKB0 diagnostic much happier.
Thanks,
John
--
John A. Dundas III
This commit is contained in:
parent
6339af2dc4
commit
0774109897
@ -25,6 +25,7 @@
|
||||
|
||||
cpu PDP-11 CPU
|
||||
|
||||
05-Dec-13 RMS Fixed bug in CSM (John Dundas)
|
||||
23-Oct-13 RMS Fixed PS behavior on initialization and boot
|
||||
10-Apr-13 RMS MMR1 does not track PC changes (Johnny Billquist)
|
||||
29-Apr-12 RMS Fixed compiler warning (Mark Pizzolato)
|
||||
@ -1297,7 +1298,7 @@ while (reason == 0) {
|
||||
break;
|
||||
|
||||
case 070: /* CSM */
|
||||
if ((CPUT (HAS_CSM) && (MMR3 & MMR3_CSM)) || (cm != MD_KER)) {
|
||||
if (CPUT (HAS_CSM) && (MMR3 & MMR3_CSM) && (cm != MD_KER)) {
|
||||
dst = dstreg? R[dstspec]: ReadW (GeteaW (dstspec));
|
||||
PSW = get_PSW () & ~PSW_CC; /* PSW, cc = 0 */
|
||||
STACKFILE[cm] = SP;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user