I have a 38E that fails the self-test (i.e., gives an Error 9 when you hit STO - ENTER). From what I can tell the only problem is with the delta-DAYS calculation, it gives ridiculously large numbers. So I assume that the ROM is wacked out in the area of that routine.

What's interesting about this is that when you get the Error 9 and then clear it by hitting the CLX button, you can then investigate what's in the registers. The diagnostic routine leaves several strange looking codes in there. Here are the values:

(mem) P -99 r - 7 (all of program memory is filled with GOTO 00, the default)

X - 1

Y - 0

Z - 0

T - 0

LAST X - 0

n - 1

i - 10

pv - 100

pmt - 1,000

fv - 10,000

R0 - 1,000,000,000

Now for the interesting stuff:

R1 - 1.000000 0r (that's right "r")

R2 - 1.000000 0F

R3 - 1.000000 0o

R4 - 1.000000 0P

R5 - 1.000000 0E

R6 - 1.000000 0(blank)

All of these values can mathematically manipulated to get equally strange results.

I assume that what's going on here is that normally illegal BCD values are being used in by the diagnostic routines and just left around in the registers. Does anyone know how the diagnostic routines in the 30 series work? If they don't bomb with an Error 9, memory is preserved so they're not normally doing destructive memory writes. Do these register codes indicate what exactly the problem is that caused the Error 9?