[Simh] error in h316 of simh version 3.8-1 ?
theo engel
theo.engel at hetnet.nl
Fri Jan 8 17:19:42 EST 2010
When making a program for the h318 I think there is an error in version 3.8-1
which was not there in previous versions . The LDX/STX instructions provide
the problem in 3.8-1; not in 3.7-0 which I used until now. Checking the
difference between the cpu modules of both versions I found the following:
3.8-1 lines 616 -- 624:
case 015: case 055: /* STX */
if (reason = Ea (MB, &Y)) /* eff addr */
break;
Write (Y, XR); /* store XR */
break;
case 035: case 075: /* LDX */
if (reason = Ea (MB, &Y)) /* eff addr */
break;
while this code in 3.7-0 is:
case 015: case 055: /* STX */
if (reason = Ea (MB & ~IDX, &Y)) break; /* eff addr */
Write (Y, XR); /* store XR */
break;
case 035: case 075: /* LDX */
if (reason = Ea (MB & ~IDX, &Y)) break; /* eff addr */
Changing the code of 3.8-1 into the code of 3.7-0 looks to be the solution.
Bit 15 of the instruction must not be included in the effective address
calculation for LDX/STX.
Please check, and with kind regards,
Theo Engel
More information about the Simh
mailing list