[Simh] TOPS-10: Nested indirect address limit exceeded

Cory Smelosky b4 at gewt.net
Wed May 13 20:45:15 EDT 2015


On Wed, 13 May 2015, Timothe Litt wrote:

> The hardware has no such limit; it's a SimH artifact.  The hardware
> would loop (taking interrupts).  A user mode bug can stop the simulation
> - which is a SimH bug that I suppose I should fix someday.  It's not a 1
> line fix.
>

Ahhh.

> .r ddt
> 1/ movei 0, at 1
> 1 $g
> should not stop timesharing!
>

Yeah, definitely not!

> The simh pc history buffer should trace how we get there.  Some examines
> should tell us whether it's in fact in user mode.
>

I discovered the issue disappears when mic isn't being started twice. 
(Unsure why it was there twice? I recall a stock SYSJOB.INI)

> My guess is that this case a bug in MIC.  It would be easier to fix when
> the CPU does the right thing, which is to more or less match the hardware.
>

Yeah.

> SimH internals make it hard to exactly do that, but here's an approach
> that should work without too much disruption.  We keep a limit -
> anything over a few dozen is unlikely in real life; a few thousand
> should be safe.  But we should treat the condition more like a page fail
> than a simulator STOP condition: it can longjmp back (as currently), but
> instead of stopping the simulation, do this:
>     a) check for user mode.  If user mode, check for interrupts & the
> timer queue & restart (the infinite looping) instruction.  That will
> burn CPU, but then it can be found and debugged under the OS.  From
> SimH's point of view, it's just an internally handled pagefail.
>

That makes sense, user-mode loops shouldn't generally stop "hardware" 
execution. ;)

>    b) If in exec mode, treat it as a hardware error - say a PF code 36,
> hard memory error.  That would cause a trap to the monitor, and with
> EDDT (or a dump when EDDT isn't loaded) it's trivial to figure out who's
> doing a bad thing.  This would actually be easier to deal with than the
> real hardware.  Doesn't change the SImH structure, but reports the error
> in a way that will get logged and can be debugged.
>

Alternatively, do what I think KLH10 does and make it a toggle. Trap to 
monitor/stop simulation toggle.

> I can push this onto my queue, unless Bob (who created this "feature")
> gets there first :-)
>

Alright.

> Meantime, it seems to hurt if you run MIC.  So for now, don't.
>

Now I have an issue where my monitor + mic no longer crashes, but not all 
GALAXY jobs start up - that should be a simple fix.

>
>

-- 
Cory Smelosky
http://gewt.net Personal stuff
http://gimme-sympathy.org Projects


More information about the Simh mailing list