On Sat, 6 Apr 2013 19:14:28 -0700 (PDT),
dkal...@gmail.com wrote:
>On Thursday, April 4, 2013 8:49:09 AM UTC-6, David Schroth wrote:
>> On Sat, 30 Mar 2013 21:25:32 -0700 (PDT), Kurt Duncan
>>
>> >How many people are actively working on Exec these days? Just you
>> >now? :-)
>>
>> More than just me, although most of the bodies are in I/O (rather than
>> MSM or PCN).
>>
>
>How's the weather in Roseville? (assuming, of course, you are based there)
>
The weather in Minnesota in April is pretty much like the weather is
in April in Minnesota any year - if you don't like the current
weather, wait 30 minutes, and see if the next batch is more to your
liking.
>
>> I took a look at the code. It turns out that the contents of B2 are
>> undefined on entry, because the ONVERSION3E folk didn't bother to
>> update the header documentation. As best I can tell, ICLP is based on
>> B2 for ONVERSION3E machines. It's not clear why this is the case.
>
>I wondered why EXEC BDI's started so high (0157, IIRC). Turns out, some 64 or so, are reserved for banks which are/might be created by the SCF/ICLP/whatever, to pass to the OS. UPDBDT* is, of course, fixing up these BD's in what becomes the L0 BDT. ICLP tells BOOT1 how many of these have actual data, and UPDBTD* fixes those, and voids-out the rest.
>
The Exec's BDT starts at 0160, and it starts that high because I
defined it to start that high.
There is a good reason for why I defined it to start at 0160, but I no
longer remember what it is.
>Some of those lower BDT's are adjusted to describe subsets of BOOT1 for stacks, data, etc. But at least one of them (000056) points to something (presumably *not* in B2's bank) which provides data to BOOT*.
>
That's almost certainly the Partition Data Bank, which can be a large
bank (but has never been one in my experience).
>-----------------
>
>I noticed something odd around BOOT1 $(0)+022... We grab some info into EA1 (from B2's bank, of course), which seems to be the number of real banks from ICLP/whatever in H1, and something else in H2. We OR that into EA2 with the following strangeness:
> $(0)+00024 | OR EA1,X0 . 400020000000
>Given that H2 of EA2 eventually becomes an upper limit for BD's, why would an OR of *anything* be appropriate, and why does the OR'd value come from X0?
>Anyway... that's not the point. Keep in mind that EA2:H1 still has number of live banks. Now go look in the loop where BD's are updated... EA2 gets SSL'd by 6, to store the 64-word resolution upper limit into the successive BD's (and LSSL'd back again). BUT... unrelated number of banks in H1 comes along for the ride. It probably doesn't hurt anything, but it doesn't seem right. And, yeah, unsupported, so mox nix, but if the code is still in *supported* versions, it might need a look-over.
>
I suspect the code in question was stolen from somewhere else, and
it's almost certainly good. And I've given up working on the
ONVERSION3E machines, so it's unlikely I'll take a look at the code.
>---------------
>
>All of that begs the question, what *else* besides Partition Databank is being handed to the OS when it boots up? I had thought that B2 had the partition databank, since so much stuff is pulled from it (e.g., H1 of 0241 indicates whether we boot from tape or... something else).
>
Well, everything needed to access the stuff needed by bootstrap is
described in ICLP fixed addresses. I can figure out why ICLP ends up
based on B2 - it's an artifact of the ONVERSION3E architecture.
>*BUT* CHKPDB* argues otherwise - assuming it checks the partition databank for validity, then PDB is based on B8, and comes from bank 000056 (the 1st bank dealt with by UPDBDT*). So, B2->ICLP's bank (as you said) which has lots of boot info which we need, and B8->000056, which is the partition databank.
>
>Ongoing...
>
>OH, and I have a new guess WRT IPC sf=025 and 030. But I'm reserving my guess until I look at the code more closely. It does appear that they need the real address of some command packet in EA1/EA2...
There is no such thing as a real address on that (ONVERSION3E)
architecture. It might be better if there were, but that's a
different discussion.
Regards,
David W. Schroth