From: Ben Sinclair
It halts back to ODT at 00104
Depending on how the vectors are set up, that could be an unhandled clock
interrupt. Common practise is to set the vectors at X to point to X-2, and
put a HALT instruction in X+2. 0100 is the line clock interrupt vector.
there is a strange modification... On my original
M8186, there is a
capacitor on the left, after the first row of chips, when looking at it
from the tab side.
You mean the component side?
The "new" one has that capacitor replaced
with a piece of perfboard
with two smaller capacitors, and a two pin connector. I have no idea
what that might be
Maybe the electrolytic failed, and the person couldn't find the right size
replacement, so used two smaller ones in parallel?
When I run the program, it halts at 000014.
That means it trapped through location 010 (illegal instruction); the vector
there points to location 012; it executed the HALT instruction at 012, and
stopped with the PC containing 014 (the location of the next instruction -
see the description of the HALT instruction in most versions of the PDP-11
processor manual).
To find out the location of the illegal instruction, you need to look on the
stack: R6 (the SP) will point to to top of the stack, and the PC and PS at
the time the illegal instruction were seen will be the top two things on the
stack. (I forget whether they are in (SP) and (SP+2), or (SP+2) and (SP+4).
And I forget whether the saved PC is the address of the bad instruction, or
if the PC has already been incremented to point at the next instruction.)
But I'm not sure that's really going to tell you much. If it's a hardware
flaky, the fault may be happening on a perfectly good instuction.
the error address should be in R1, which reads as
004330. I did try and
write to that location, and it reads back fine.
But if you trapped through 10, that's not caused by that memory location
being a problem.
I'm confused though, because it halts at 000014,
but that program
doesn't have an instruction at 000014. .. I would have thought it would
halt on some location that actually had an instruction.
After a HALT instruction, the PC points to the _next_ instruction after
the HALT. So the HALT was at 012.
What exactly does the aux switch on the front panel
control? I assumed
it was power to the AC plug on the back of the machine, but it must do
something else.
Well, it depends on what model of box you have, and how it's configured, but
on standard DEC LSI11 boxes (the ones with three switches; Restart, Run/Halt,
and Aux), the Aux can be configured (and normally is) to turn the Line
Clock off and on; the Aux power thing is an optional behaviour.
That would definitely fit the symptoms and behaviour you describe.
From the documentation, I don't see that it does
anything other than
control that AC plug.
There's documentation somewhere (don't recall off the top of my head - it
won't be in the processor card stuff, it will be in the box documentation)
about how to configure the Aux switch. Basically there are some jumpers
on the PCB in the front panel.
Noel