> (I have yet to check and see if the KY11-LB
asserts SACK if the CPU
> halts on its own accord - probably 'yes', but that's a project for
tomorrow.)
Yes, it does. I toggled in the following program:
5000
5200
776
0
(what, you all can't program a PDP-11 in octal? :-) and hit 'start' and the
SACK light on the UA11 flashed out and came back on when the machine finally
halted.
So then I looked at CPU tech manual for the KD11-E, and the HALT instruction
seems to act exactly like the console has requested a processor halt; it just
sets the HLT RQST signal (see Section 4.5.5 "Operate Instructions").
So, either (console halt, or a HALT instruction) will cause the identical
response in the processor; see Section 4.10.3 "Halt Grant Requests": the CPU
sends HLT GRANT to the console, which returns SACK. As long as SACK is
asserted, the processor waits with its clock inhibited:
"The user can maintain the processor in this inactive state (Halted)
indefinitely. When the HALT switch is released, the user's console releases
BUS SACK L, and the processor continues operation"
This text is obviously for the KY11-LA; the KY11-LB will operate identically:
when the console releases SACK, the processor resumes operation.
From: Fritz Mueller
> when I powered the machine on, it turned out that
something was
> asserting SACK when the machine was halted
That is quite interesting, and not what I would have
expected!
Yes, I was quite surprised; I didn't expect that either. Now that I know that
the KY11-LB uses it to talk to the KD11, I can work around it, though.
I'll have to write all this up to warn others about it.
> The thing that's puzzling me is that the M8264
seems to exactly
> replicate the functionality of the M9302, with an 'unused' bus grant
> being turned into a SACK. So I don't understand the point of the M8264.
I think the only difference would be that since the
M8264 is timer
based, it doesn't need the intact end-to-end path required for
turnaround. So your bus won't lock even if you have a broken grant
chain or a poorly behaved or hung device eating grants.
You are right about it being timer-based, but I'm not sure the conclusion
follows, at least exactly as stated.
If there's a broken grant chain, then as you originally pointed out, the M9302
will jam SACK on. The M8264 could not even be there, and nothing would be any
different. Same thing if the CPU asserts a grant in response to a now-removed
interrupt request: the M9302 will jam SACK on, etc, etc.
I'm racking my brain to think up _any_ circumstance in which the M8264 will
assert SACK. in which the M9302 wouldn't. Thinking it through, there has to
be a grant, but it can't get to the M9302 (because otherwise it would do its
thing), but that failure to get there can't be simply a broken grant chain
(ditto). So some device has to be malfunctioning: not passing a grant along,
but eating it. So either a hard-failed component in the grant-passing
circuit, or some design flaw. (It can't be a glitch; it has to be a permanent
thing which prevents passing the grant.)
I suppose that's possible, but I can't see any othey way.
Noel