jnc at mercury.lcs.mit.edu
Sun Nov 16 22:14:00 CST 2014
> 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
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.
More information about the cctalk