Basic-16......augh I feel like I actually saw a Basic-16 eval board of some kind pop up in
auctions in my documentation search the past few years. I thought about bidding but I
didn't, could've had some cool hardware to reply back with pictures of. Lesson
learned, if something catches my attention enough I should probably research it more
closely.
Thanks for the article link, that pretty much captures the sort of "origin
story" I was seeking out on both the tools and format. I now realize I could've
known this already but didn't read far enough in the '84 Bell journal, I've
got copies of that and the '78 one, I forget how many juicy details are in there that
didn't make it into manuals and technical reports. All the more reason to go back
through and take some notes...
- Matt G.
------- Original Message -------
On Thursday, February 23rd, 2023 at 1:37 PM, Paul Ruizendaal <pnr(a)planet.nl> wrote:
Date: Thu, 23
Feb 2023 18:38:25 +0000
Subject: [TUHS] Re: Origins of the SGS (System Generation Software)
and COFF (Common Object File Format)
For the sake of timelines:
June 1980 - Publication date on the front page of the 3.0 manual in which the utilities
are still very much research for PDP-11 and 32V-ish for VAX where distinctions matter.
June 1981 - Publication date on the front page of the 4.1 manual in which the man-pages
very much refer to all of this as the "3B-20 object format"
June 1982 - Publication date on the front page of the 5.0 manual by which point these
same pages had been edited and extended to describe the "common object file
format"
Additions at the 1981 release include dump(1), list(1), and the ld-prefixed library
routines for managing these object files. These likewise persist in 5.0, SysV, and beyond
as COFF-related tools.
So this puts the backstop of what would become COFF at at least '81.
- Matt G.
The surviving source code for SysV R2 supports this timeline:
- The header files (start from
https://github.com/ryanwoodsmall/oldsysv/blob/master/sysvr2-vax/src/head/a.…) have
dates of late ’82, early ’83.
- The source for exec() has a comment that refers to the 4xx magic formats as “pre 5.0
stuff”.
- The COFF format headers are #ifdef’ed for the 3B series.
Interestingly, the lowest magic numbers in the 5xx series are not for the 3B, but for the
“Basic-16” and for the “x86”. That led me to this paper:
https://www.bell-labs.com/usr/dmr/www/otherports/newp.pdf
It seems that the roots of COFF go back to the initial portability effort for V7 and in
particular the 8086 port (which was done in 1978 according to the paper).