From mboxrd@z Thu Jan 1 00:00:00 1970 From: jnc@mercury.lcs.mit.edu (Noel Chiappa) Date: Mon, 20 Nov 2017 18:08:06 -0500 (EST) Subject: [TUHS] Some resources for V6/PDP/SIMH newbs like me Message-ID: <20171120230806.985CA18C0A1@mercury.lcs.mit.edu> > From: Will Senn > (e) UNIX assembler uses the characters $ and "*" where the DEC > assemblers use "#" and "@" respectively. Amusing: the "UNIX Assembler Reference Manual" says: The syntax of the address forms is identical to that in DEC assemblers, except that "*" has been substituted for "@" and "$" for "#"; the UNIX typing conventions make "@" and "#" rather inconvenient. What's amusing is that in almost 40 years, it had never dawned on me that _that_ was why they'd made the @->*, etc change! "Duhhhh" indeed! Interesting side note: the UNIX erase/kill characters are described as being the same as Multics', but since Bell pulled out of the Multics project fairly early, I wonder if they'd used it long enough to get '@' and '#' hardwired into their fingers. So I recently has the thought 'Multics was a follow-on to CTSS, maybe CTSS used the same characters, and that's how they got burned in'. So I looked in the "CTSS Programmer's Guide" (2nd edition), and no, according to it (pg. AC.2.02), the erase and kill characters on CTSS were '"' and '?'. So, so much for that theory! > (l) The names "_edata" and "_end" are loader pseudo variables which > define the size of the data segment, and the data segment plus the bss > segment respectively. That one threw me, too, when I first started looking at the kernel! I don't recall if I found documentation about it, or just worked it out: it is in the UPM, although not in ld(1) like one might expect (at least, not in the V6 UPM; although in V7: http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/man/man1/ld.1 it is there), but in end(3): http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/man/man3/end.3 Noel