Okay, it's a P1 reference. VA is 7FFFF200 to 7FFFF3FF, a perfectly legitimate P1 top-of-stack reference. ptidx + d_p1br yields (1)007FFFE4, which is NOT a system virtual address, so the abort triggers. The question is why d_p1br is wrong.

After the simulator stops, please print out the value of these memory management registers:

>ex P0BR, P1BR, SBR

The transform between dynamic (d_) values and public values is done in this routine:

extern void set_map_reg (void)
{
d_p0br = P0BR & ~03;
d_p1br = (P1BR - 0x800000) & ~03; /* VA<30> >> 7 */
d_sbr = (SBR - 0x1000000) & ~03; /* VA<31> >> 7 */
d_p0lr = (P0LR << 2);
d_p1lr = (P1LR << 2) + 0x800000;                        /* VA<30> >> 7 */
d_slr = (SLR << 2) + 0x1000000;                         /* VA<31> >> 7 */
return;
}

Reversing the transform yields P1BR = 0, which is wrong, wrong, wrong. It indicates that P1BR still has its initial value and has never been loaded.

Normally, I'd debug this myself, but I don't have a Mac.

/Bob Supnik


On 2/18/2016 7:57 AM, [email protected] wrote:
Message: 6
Date: Thu, 18 Feb 2016 07:57:13 -0500
From: Henry Bent<[email protected]>
Cc:"[email protected]"  <[email protected]>
Subject: Re: [Simh] Recent build crashes on OSX
Message-ID:
        <CAEdTPBePzT5-5wWoCxSZD+32ipH_yYDj6ZpBxDViK=kmkm4...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

I'll admit that this is a little over my head, but the code was easy enough
to add:

PTE not SYS abort, ptead = 7fffe4, ptidx = FFFFE4, d_p0br = 8034DC00,
d_p1br = FF800000

-Henry


_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh

Reply via email to