[Simh] Recent build crashes on OSX

Bob Supnik bob at supnik.org
Thu Feb 18 10:20:51 EST 2016


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, simh-request at trailing-edge.com wrote:
> Message: 6
> Date: Thu, 18 Feb 2016 07:57:13 -0500
> From: Henry Bent<henry.r.bent at gmail.com>
> Cc:"simh at trailing-edge.com"  <simh at trailing-edge.com>
> Subject: Re: [Simh] Recent build crashes on OSX
> Message-ID:
> 	<CAEdTPBePzT5-5wWoCxSZD+32ipH_yYDj6ZpBxDViK=KMKM4pWQ at 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
>



More information about the Simh mailing list