Skip to content
Sections
Personal tools
You are here: Home » Projects » cyhist » Cyhist 1997 » Cyhist April 1997 » Cyhist Apr 16 1997 G

Cyhist Apr 16 1997 G

Document Actions
Date: Wed, 16 Apr 1997 10:38:18 -0500
Reply-To: "CYHIST Community Memory: Discussion list on the History of
Cyberspace" <CYHIST@MAELSTROM.STJOHNS.EDU> Sender: "CYHIST Community Memory: Discussion list on the History of
Cyberspace" <CYHIST@MAELSTROM.STJOHNS.EDU> From: Peter da Silva <peter@BAILEYNM.COM>
Subject: Re: CM> sixth edition unix + PDP-11
X-To: ljk@cs.mu.oz.au
In-Reply-To: <199704161504.KAA17390@web.nmti.com> from "ljk@CS.MU.OZ.AU" at
Apr 16, 97 06:54:54 pm
Content-Type: text

______________________________________________________________________
Community Memory: Discussion List on the History of Cyberspace ______________________________________________________________________


>So it wasn't *really* early in Unix days, but fairly early. I can't clearly remember "sixth edition" Unix, but I distinctly remember running version 6 C, because I later had to convert a lot of programs to version 7 C. (Change all those =+ to +=.) This is all based on recollections, so will have a quite a few holes in it:

That was definitely 6th edition.

The shell was simpler. It handled command files by redirecting stdin to the file, so things like "if" and "goto" were handled by separate programs that seeked around on stdin looking for the label. Labels were indicated by a do- nothing command called ":".

: loop
...
goto loop

So people used ":" as a comment character. When csh came along, it used # for the comment character. So if the script started with "#" csh ran it itself, otherwise it called the version 6 shell for execution. Later on, it was extended to look at the first comment line and see if there was a command on it to run the script... and that's where the "#!" mechanism came from.

Since scripts ran from stdin, you couldn't pipe to a command if it was a script. That was annoying.

I was using an 11/70 with 2M of RAM (the hardware could support 4M, but the kernel had signed arithmetic (unsigned integers not having been invented in "C" until the Version 7 compiler) so it screwed up if pages were over 32767.

The workaround users used to get unsigned arithmetic was to declare variables as pointers. "char *" worked exactly like "unsigned int".

I remember printf. To do "sprintf" you opened a pipe to yourself and did a printf into the pipe and read it from the other and. I never used scanf. It was so much less versatile than parsing yourself, and as you said it was a pig.

>And just to contribute to another thread: We had the game adventure running, but only the binary, not the source. In fact, the binary was for the DEC operating system (was that RSX-11?), but Unix could run these too, as well as its own a.out binaries. I did manage to get carried away by the elves at last.

RSTS.

To get that working they took advantage of the fact that RSTS system calls used the IOT instruction, and UNIX system calls used the TRAP instruction. So you set up an IOT handler in the stack area of the RSTS program, because the program didn't use all that much stack, that interpreted some of the RSTS calls into UNIX calls so you could run RSTS programs.

Eventually at Berkeley they had the business school's computer converted from RSTS to UNIX, with RSTS Basic+ as the shell for all the business school accounts.

______________________________________________________________________
Created by sbaldwin
Contributors :
Last modified 2005-09-06 06:55 AM
 

Powered by Plone

This site conforms to the following standards: