[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

TOPS-10 bug fixed.



Jonl,
I finally dug in and found the "write into read-only memory" bug that
we have been bitching about lately.  The problem is with an instruction
at MEMERR+5 in the TOPS-10 version.  The line is

SA% 10$ SOS IPSPC(F)	;Make the PC point to the offending instruction.

The assumption here is that after a protection violation interrupt on
TOPS-10 the stored PC points to the instruction after the one that lost,
and therefore needs to be set back by one.  But in fact, the stored PC
points to the losing instruction itself.  I have made MEMERR+5 a NOOP
with DDT, and it fixes the (SETQ T NIL) and (SETQ NIL T) cases, at least.
It also makes it possible for a MACHINE-ERROR interrupt handler to catch
any case which slips through the other tests, instead of letting such
problems punt back to the system.  (Without the fix, the losing PC value
caused a flameout somewhere in $IWAIT.)

I would appreciate it if you could look over this fix and if it looks OK to
you to add it to the master source.  I'm still too new at this to start
installing fixes without a second opinion.

We still have problems with DELETEF and RENAMEF, but maybe I can locate these
too.

Cheers,
Scott