[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