Subject: Re: Some Success with s1-bits archive

From: [email-masked]
Date: Thu, 6 Jan 2000 15:03:34 -0500

> Thanks for that. I'm still trying to think why the s2-bits archive has
 > both 0405- and 0407-magic a.out files. From your comments, it looks
 > unlikely that a significant number of files from two epochs could be
 > in a filesystem at the same time. Alternatively, perhaps the kernel
 > supported both types of a.out files. Can you remember if the kernel
 > ever had simultaneous support for both (some sort of transition period)?

Now that I'm at work and have looked at the manuals, I think
I've solved many of the questions.

1st edition a.out magic was 405; 2nd (Nov 1971) was 407.  This was
in preparation for first the KS11 memory management and then
the 11/45.  The two objects files were compatible; the difference
was the  bigger header with more space (for bss size and entry
point).

In the 3rd edition (March 1972) the 11/45 or at least the
KS-11was standard but the
a.out header was still 407.   Stack started at 57000; the
I/O page had to be mapped in to get the EAE device.
 I would suspect that programs were still loaded at virtual 40000.

In the 4th edition (Nov 1973) the C system had been
installed and the two possible a.out headers were
407 and 410.  The 410 header indicated a write-protected
text segment that could be shared. (Later, 411 would be
separate I and D).  Stack started at 177776.

 > I don't suppose you recorded the handwritten labels from the original
 > DECtapes? I always try to copy them over as well; they can help where
 > the tape contents are uncertain.

I believe they just said S1 and S2 (no dates).

 > Ken's modified C compiler (as noted in his Turing award speech) came up
 > on the mailing list yesterday. I'm sure I remember reading that he actually
 > did release this in the labs. Do you know of any on-line references?

I've mentioned it in netnews.  It was in a sense released, but
"implanted" is a better word.  It was not on a distribution.
Ken sent it to the Raritan River PWB group, saying "here
is a new compiler.  I think you have to install the binaries;
your current compiler might not handle compiling the source."
They ran it for a few months; at some point I think they
looked at the symbol table for some reason and saw
some things they didn't understand so they recompiled
it, using an old compiler.  Or conceivably they ran
cpp on the compiler.  and looked at the output (it was actually
cpp that was bugged).  However, I don't think they ever worked out
what had happened exactly and the cpp output would
have been pretty clear, though not the magic involved.

One thing I've always wondered about was whether
they ever redistributed it.  Mashey doubts this,
but isn't absolutely positive.  Certainly it didn't
spread far.  It is a fragile virus.

	Dennis

---

From: Warren Toomey <wkt>
Date: Fri, 7 Jan 2000 09:56:05 +1100 (EST)

In article by [email-masked]:
> Now that I'm at work and have looked at the manuals, I think I've
> solved many of the questions.
> 
> in preparation for first the KS11 memory management and then the
> 11/45.  The two objects files were compatible; the difference was
> the  bigger header with more space (for bss size and entry point).
> 
> In the 3rd edition (March 1972) the 11/45 or at least the KS-11 was
> standard but the a.out header was still 407.   Stack started at
> 57000; the I/O page had to be mapped in to get the EAE device.
> In the 4th edition (Nov 1973) the C system had been installed and
> the two possible a.out headers were 407 and 410.  The 410 header
> indicated a write-protected text segment that could be shared.
> (Later, 411 would be separate I and D).  Stack started at 177776.

I don't want to appear facetious, but according to Peter Salus' book
``A Quarter Century of UNIX'', the dates were:

1st Edition     November 3, 1971        [QCU]   QCU= A Quarter Century of UNIX
2nd Edition     June 12, 1972           [QCU]        Peter Salus
3rd Edition     February, 1973          [QCU]        Addison-Wesley
4th Edition     November, 1973          [QCU]        ISBN 0-201-54777-5

Assume 1972 was the epoch for the s2-bits tape, and that the correct
timestamps for the files range from Jan 1, 1972 to Feb 6, 1973. This
puts some files after the release of 1st Edition, some leading up to
and after 2nd Edition [KS11 and prep for 11/45 as noted above]. The
C compiler binaries have dates in June, 1972, which seems consistent
with the notion that Ken tried to rewrite the kernel in summer '72 but
gave up, and that a working C kernel (aka `nsys') was in existence
in late Jan, 1973. 3rd Edition came out in Feb, 1973, still as an assembly
kernel, with the migration to a C kernel done by 4th Edition in Nov, 1973.

That's my gut feeling as to why I think 1972 was the epoch for s2-bits.
1971 is too early: there wasn't a C compiler in June 1971. 1973 would be
too late: you wouldn't have that many 0405-magic a.outs lying around.

However, what you've told me above about the a.out environment for 2nd
and 3rd Editions will be invaluable when I come to emulating them :-)

>  > DECtapes?

Damn. Oh well.

> spread far.  It is a fragile virus.

Many thanks for that! May I pass it on to the list?

Sometimes I wonder what you think of my interest in these old systems.
I'm sure you have enough work to do with present system to worry about
the code you guys wrote nearly 30 years ago.

Thanks again!

	Warren