mirror of
https://github.com/simh/simh.git
synced 2026-01-11 23:52:58 +00:00
PDP11: Changes for Terak 8510/a simulator:
Accept devices mapped at IOPAGEBASE -- text buffer/character generator memory on video board starts at 160000. Clear invalid PSW bits in trap handler -- system acceptance test writes PSW 113705 to vector 34 (TRAP instruction).
This commit is contained in:
parent
dd31ce6e75
commit
45fe20a34b
@ -929,6 +929,7 @@ while (reason == 0) {
|
||||
}
|
||||
src = ReadCW (trapea | calc_ds (MD_KER)); /* new PC */
|
||||
src2 = ReadCW ((trapea + 2) | calc_ds (MD_KER));/* new PSW */
|
||||
src2 = src2 & cpu_tab[cpu_model].psw; /* mask off invalid bits */
|
||||
t = (src2 >> PSW_V_CM) & 03; /* new cm */
|
||||
trapea = ~t; /* flag pushes */
|
||||
WriteCW (PSW, ((STACKFILE[t] - 2) & 0177777) | calc_ds (t));
|
||||
|
||||
@ -121,7 +121,7 @@ if (dibp == NULL)
|
||||
newba = (uint32) get_uint (cptr, DEV_RDX, IOPAGEBASE+IOPAGEMASK, &r); /* get new */
|
||||
if (r != SCPE_OK)
|
||||
return r;
|
||||
if ((newba <= IOPAGEBASE) || /* > IO page base? */
|
||||
if ((newba < IOPAGEBASE) || /* > IO page base? */
|
||||
(newba % ((uint32) val))) /* check modulus */
|
||||
return sim_messagef (SCPE_ARG, "Invalid bus address value: %s\n", cptr);
|
||||
if (dibp->ba != newba) { /* changed? */
|
||||
@ -145,7 +145,7 @@ dptr = find_dev_from_unit (uptr);
|
||||
if (dptr == NULL)
|
||||
return SCPE_IERR;
|
||||
dibp = (DIB *) dptr->ctxt;
|
||||
if ((dibp == NULL) || (dibp->ba <= IOPAGEBASE))
|
||||
if ((dibp == NULL) || (dibp->ba < IOPAGEBASE))
|
||||
return SCPE_IERR;
|
||||
if ((sim_switches & SWMASK('H')) || (sim_switch_number == 16))
|
||||
radix = 16;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user