Good afternoon, folks. I was wondering if anyone is aware of/possesses a scanned copy (or paper copy ripe for scanning) of the research V4 UNIX Programmer's Manual. I've found a few rendered PDFs from the available manpage sources, but I am looking to do some comparison of original typesetting re: my restorations of various other sets of manpages. I have scans of all the other research versions I believe, just not V4. Thanks in advance!
- Matt G.
Hi,
Has anyone been successful in communicating using cu or some
other method to transfer files between two SIMS running Unix V ?
If so I would appreciate some help.
Thanks,
Ken
--
WWL 📚
Good morning all, just emailing to notify that I'm once again in a position to work on scanning documents and the like, so want to throw out the offer of performing any scanning/archival gratis for materials relevant to TUHS and the broader UNIX picture. Included in this is I'll happily pay the shipping to and fro.
My setup is very simple, consisting of a CanoScan LiDE 100 over USB into my Raspberry Pi running SANE and ImageMagick. The former handles the scans obviously and then the results are reduced by ImageMagick into a PDF, cropping overscan in the process. I tend to favor 300dpi as a compromise between quality and size, as I've found that the archive.org OCR can do a good job with this. That said, if you particularly want a given DPI or scan quality, that is adjustable within the capabilities of the scanner. I'd probably still reduce the size for archive.org but could initially sample at a higher rate and send you the resulting PDFs on a CD-ROM/USB stick. Similarly, if for some reason the material can be scanned but can't be archived anywhere else (legal reasons, etc.) I can provide physical media in the return package, with the understanding that I absolutely would keep this stuff in a time capsule for some later date. If you only want scanning, no archival, sorry, that I'm not willing to do for free.
Anywho, short of anything new coming in, this is what I've got on my current plate:
- UNIX Release 4.0 Text Editing and Phototypesetting Starter Package
- UNIX Release 4.1 3B20 User's Manual
- UNIX Release 5.0 User's Manual BTL Edition
- UNIX System V Support Tools Guide
- UNIX System V Document Processing Guide
- UNIX System V Release 2.0 User's Manual BTL Edition
Of these, the first two are already archived in some fashion, these physical books just haven't been scanned. For the two BTL manuals, these are the extant SysV and SVR2 manuals with extra pages to represent things commonly found on BTL computers of the time (WWB, Basic-16 SGS, site-specific bits to PY, HO, IH, CB, and a few others.) Finally, the other two SysV docs are just successors to the Documents for UNIX papers, slightly reformatted and updated for SysV. Also I eventually want to *ROFF-ize anything that obviously came from typesetter sources, so like I did with the 4.1 manual, some of these may get the *ROFF treatment first, with scanning to occur on a day with nastier weather. All that to say, anything I receive obviously trumps this list in priority. Thanks all!
- Matt G.
Fortran question for Unix System-5 r3.
When executing fortran programs requiring input the screen will
show a blank screen. After entering input anyway the program
completes under Unix System V *r3*.
When the same program is compiled under Unix System V *r1* it
works as expected.
Sounds like on Unix System V *r3* the output buffer is not being flushed.
I tried re-compiling F77. No help.
Fortran code follows:
PROGRAM EASTER
INTEGER YEAR,METCYC,CENTRY,ERROR1,ERROR2,DAY
INTEGER EPACT,LUNA
C A PROGRAM TO CALCULATE THE DATE OF EASTER
PRINT '(A)',' INPUT THE YEAR FOR WHICH EASTER'
PRINT '(A)',' IS TO BE CALCULATED'
PRINT '(A)',' ENTER THE WHOLE YEAR, E.G. 1978 '
READ '(A)',YEAR
C CALCULATING THE YEAR IN THE 19 YEAR METONIC CYCLE-METCYC
METCYC = MOD(YEAR,19)+1
IF(YEAR.LE.1582)THEN
DAY = (5*YEAR)/4
EPACT = MOD(11*METCYC-4,30)+1
ELSE
C CALCULATING THE CENTURY-CENTRY
CENTRY = (YEAR/100)+1
C ACCOUNTING FOR ARITHMETIC INACCURACIES
C IGNORES LEAP YEARS ETC.
ERROR1 = (3*CENTRY/4)-12
ERROR2 = ((8*CENTRY+5)/25)-5
C LOCATING SUNDAY
DAY = (5*YEAR/4)-ERROR1-10
C LOCATING THE EPACT(FULL MOON)
EPACT = MOD(11*METCYC+20+ERROR2-ERROR1,30)
IF(EPACT.LT.0)EPACT=30+EPACT
IF((EPACT.EQ.25.AND.METCYC.GT.11).OR.EPACT.EQ.24)THEN
EPACT=EPACT+1
ENDIF
ENDIF
C FINDING THE FULL MOON
LUNA=44-EPACT
IF(LUNA.LT.21)THEN
LUNA=LUNA+30
ENDIF
C LOCATING EASTER SUNDAY
LUNA=LUNA+7-(MOD(DAY+LUNA,7))
C LOCATING THE CORRECT MONTH
IF(LUNA.GT.31)THEN
LUNA = LUNA - 31
PRINT '(A)',' FOR THE YEAR ',YEAR
PRINT '(A)',' EASTER FALLS ON APRIL ',LUNA
ELSE
PRINT '(A)',' FOR THE YEAR ',YEAR
PRINT '(A)',' EASTER FALLS ON MARCH ',LUNA
ENDIF
END
Any help would be appreciated,
Ken
--
WWL 📚
Matt G. suggested that I join the COFF <COFF(a)tuhs.org> mailing list.
He thought it might be a better site to post my questions
operational and technical ..
Thank,
Ken
--
WWL 📚
--
End of line
JOB TERMINATED
Hi,
Question. Is anyone aware of a problem with F77 on 3B2/400 running
System V.3 ? When trying to validate a simple program it works as
expected on Linux. See below. But, on Unix V.3 it does not. You do
not get the question until AFTER you enter a number.
Linux:
PROGRAM HELLO
INTEGER AGE
PRINT '(A)', 'Hello, world. Enter your age :'
READ '(A)', AGE
PRINT '(A)', 'You entered :'
print '(A)', AGE
STOP
END
ken@ken-Inspiron-5755:~/fortran$ ./a.out
Hello, world. Enter your age :
73
You entered :
73
Now under Unix
$ ./a.out
73
Hello, world. Enter your age :
You entered :
73
Thanks,
Ken
--
WWL 📚
> From: KenUnix
> How can you make "make" using make.mk without make?
You could always try reading make.mk and issuing the appropriate commands
manually. Just a thought.
Noel
I have a question. I am running UNIX System V Release 3.2 AT&T 3B2/400 on a
3B2/400 SIM.
I went to use "make" however it is not there only the source:
bu
defs
doname.c
dosys.c
dyndep.c
files.c
gram.y
main.c
make.mk
misc.c
perror.c
prtmem.c
rules.c
How can you make "make" using make.mk without make?
Any help appreciated,
Ken
--
WWL 📚
Good evening or whichever time of day you find yourself in. I was reading up on Japanese computer history when I got to thinking specifically on where UNIX plays in with it all, which then lead to some further curiosity with non-English UNIX in general.
In the midst of documentation searches/study, I've spotted French and what I believe to be Japanese documentation bearing Bell/AT&T logos. I've also seen a few things pop up in German although they looked to be university resources, not something from the Bell System. In any case, is there any clear historical record on efforts within the USG/USL line, or research for that matter, towards the end of foreign language support or perhaps even single polyglot installations? Would BSD have been more poised for this sort of thing being more widely utilized in the academic scene?
- Matt G.
Hello,
30 years ago today on March 21st, 1993 at around
09:45:37 UTC, NetBSD was born!
I believe this makes NetBSD the oldest,
still-maintained and actively developed, free and open
source descendant of the Berkeley Software
Distribution (BSD), a true genetic Unix (albeit not
small-caps UNIX nor UNIX(tm)).
If you want to see what the source tree looked like
back then:
cvs -d anoncvs@anoncvs.netbsd.org:/cvsroot co -D "1993-03-21 09:45:37 GMT" src
Or browse the tree at that time:
https://www.netbsd.org/~jschauma/src-1993-03-21/
Unlike me, many on this list were around at the time
and place. Would love to hear some origin stories...
-Jan
Just sharing this document list I spotted on an eBay listing as I was perusing things: https://i.ebayimg.com/images/g/HIcAAOSwnoZjoSNA/s-l1600.jpg
The manual in the auction[1] is interesting in that it features the Bell Logo scratched off, presumably as this was sold/shipped right around that magic flip of the switch. I keep seeing variation upon variation of these covers, some 5.0 with the bell, some 5.0 without, some System V with, some System V without. The oddest I've seen recently is actually another active eBay auction[2] as of this typing in which the typical grid-pattern cover is seen but the title is given as "UNIX operating system" rather than just "UNIX system". Anywho, going to describe the document here so the text is in the archive somewhere.
After the above link is a document titled "Section 3 - Available Documentation" with a handwritten note indicating this is a section of DC-001 which is in turn listed as the "3B20S Documentation Catalog".
The contents of the document are (all listed documents are Issue/Version 1):
Table A - 3B20S Processor System Predelivery Documents
3B20S Technical Data Sheets - TDS-01
3B20S Site Preparation Manual - SPM-01
3B20S Documentation Catalog - DC-001
Table B - 3B20S Processor Applications Documents
OAS User's Guide - 302-920
OAS Administrator's Guide - 302-921
OAS Electronic Messaging Reference Card - 302-922
OAS Editor-Formatter Reference Card - 302-923
OAS Document Editing and Formatting Workbook - 302-924
Table C - 3B20S Processor System Basic Documentation
3B20S System Index - 301-901
3B20S System Description - 301-911
UNIX System User's Guide - 301-921
UNIX Operating System Error Message Manual - 301-922
UNIX System User's Manual - 301-925
UNIX System Administrator's Manual - 301-926
UNIX System Administrator's Guide - 301-931
UNIX System Operator's Guide - 301-941
3B20S System Maintenance Guide - 301-951
Looks like there is another page stapled behind that one. I've reached out to the seller to see if they're willing to share the rest info on the pieces of paper.
Looks like the OAS card I happened upon recently has friends, and what I wouldn't give for some of that 3B20 stuff. I think that's going to be one of my next documentation goals, to track down some more 3B20 documents, there seems to actually be a surprising lack of 3B20 documentation that has been scanned.
- Matt G.
[1] - https://www.ebay.com/itm/125672373414?mkcid=16&mkevt=1&mkrid=711-127632-235…
[2] - https://www.ebay.com/itm/385464959716?mkcid=16&mkevt=1&mkrid=711-127632-235…
I have succeeded in building a complete (including the extra apps) working
Vax-780 sim running unix 2.0v2 gdts except
for 2 things.
1) Unable to set up to be able print to the host. The device appears to be
an LP11 but the
Kernel does not have an LP device (c,major,minor) defined. The sim has an
entry for LPT.
2) Any way to network (Ethernet) off the sim to the host? It seems to be
possible the tools
are there, but again is not covered anywhere?
I have gone over all the documents I could find. If someone could point me
to the
appropriate documents that would be great.
Any help would be appreciated,
Ken
--
WWL 📚
After some digging - in the Algol68C compiler we used the names setmp and longjmp for the code
generation routines to implement non local goto. So as you say they were not part of the Algol68
language. Steve
From: Bakul Shah<bakul(a)iitbombay.org>
Subject: [TUHS] Re: GOTO etc
To:srb@acm.org
Perhaps you’re talking about non-local GOTOs in Algol68, where you can jump from a nested procedure to a label in a lexically enclosing procedure. Pascal has this too. C has no nested procedures but its setjmp/longjmp is much more powerful (& dangerous). Though both can be used to the top level of a REPL or to jump to a known place after an error.
> On Mar 12, 2023, at 11:24 AM, Steve<srb(a)unixsh.com> wrote:
>
> Dennis added setjmp() and longjmp() so the shell could handle errors in a reasonable way.
> There are two places where setjmp was used in the original shell (7th edition) code as I recall. Both at the top level
> in main.c.
>
> The idea came from Algol68 but I do not know where it was originally invented. longjmp() was used in the "exitsh"
> function that got called on the exit command, default trap routine and a fault with no trap set.
>
> It was also used when executing a subshell to avoid a fork and exec. In this case the setjmp() was at top level
> in the initial sh setup.
>
> Hope this makes sense. But these were two different uses. One for error recovery and one to reset the execution environment
> back to initial state.
>
> Steve
I must admit I don't see much point in this conversation, even as
humour, since the humour is easily turned mean-spirited or self-
aggrandizing.
What difference does it make if Ken runs MacOS systems or Raspberry
Pis or just spends his time teaching flying instructors? When he
started out in computing, writing your own everything was pretty
much the only way to get things that worked. Now it's a huge amount
of work, because modern storage controllers and network devices and
even CPUs and memory subsystems are so much more complicated, and to
talk to anything else requires supporting complicated network protocols
and interpreting multiple encodings and languages and data formats
and even running stupid little flashy programs. (How much more
complicated is a web browser these days than an entire operating
system used to be? How much simpler could you make it and still
render most of what's on the web these days? And how much work
would all that be, and why bother?)
When I started out in computing, making a computer run reliably and
well still required understanding the hardware and OS software in
some detail, and I found that interesting and pursued that as a
vocation. I spent much of the 1980s doing that for pay, including
six wonderful years in (not-so-wonderful to me) New Jersey working
with smart people like Ken.
Nowadays I get paid for helping to keep a large computing environment
running. The point is not to show off my OS-design chops, but to
make things work for a particular user community that needs particular
things. Things that are far more complicated than I'm up to designing
and writing and supporting, and most of them involving areas of
computing in which I don't have a lot of interest. There are plenty
of problems that interest me in making it all work, and in designing
system setups and writing tools to help us make it all work better.
I don't see this as a step down from bare-metal OS work, much as I
used to enjoy that, and much as I might enjoy it now should I get back
into it (though it's also possible that modern hardware is such an
undisciplined mess that I'd just find it frustrating).
I used to keep hacking on the old New Jersey Unix system as a hobby.
After a while it wasn't interesting enough compared to other things
I could do with my time, but I kept it going for a while because I'd
made some of my home computing infrastructure depend on it. Eventually
I mended that. Maybe I'll get back to it some day, maybe I won't.
I still build my own tools from time to time, both for paid work and
for personal use. Sometimes I do that because I dislike the existing
tools I can find for the same job, sometimes just because it's a chance
to learn more about some network protocol or file format or whatnot.
But it's no more a sign of virtue to roll my own stuff than it is to
insist on using only stuff someone else wrote (or that was supplied
by a particular company or by someone who subscribes to a particular
political philosophy or whatnot). In the end it is, or ought to be,
just about getting the damn job done reasonably well within the
current constraints.
Getting the job done within current constraints was, after all,
pretty much what Unix was originally made for.
Norman Wilson
Toronto ON
Neither proud nor sad no longer to be using a
MicroVAX running 10/e Unix as a home firewall
Marc Donner:
Having taken my daily troll pill, I am forced to ask, where is
'Reply-to-the-right-folks'?
=====
Don't they all use VMS, to own the Eunuchs?
Norman Wilson
Toronto ON
> From: KenUnix
> This is what is in conf.c:
> ...
> Does this help in determining major/minor number for lp?
Do you see a line in 'cdevsw' for the lpt? (I can't see one.)
While we're talking about SysV, maybe it's time to add the VAX version (and
maybe the 3B2 one too) to the Unix Tree at TUHS, to make it easy to look at? I
know there was at one point a good reson to be hesitant aout so doing, but the
VAX version is now obsolete, and it is available through archive.org:
https://archive.org/details/ATTUNIXSystemVRelease4Version2
just not in an easy to peruse form.
Noel
>Date: Wed, 15 Mar 2023 16:56:45 -0700
>From:
>Subject: [TUHS] Re: OSF/1.0 Sources
>To: "Tautological Eunuch Horticultural Scythians" <tuhs(a)tuhs.org
>Message-ID: <b3aa03ba-6c51-4f81-9ff4-21f72a9fe94d(a)app.fastmail.com>
>Content-Type: text/plain;charset=utf-8
>
>On Wed, Mar 15, 2023, at 14:03, Warren Toomey via TUHS wrote:
>> I'm still worried about my legal butt :-(
>
>Speaking of, there’s also the OSF/1.0 source from the same uploader:
> https://archive.org/details/SapphireDensetsu_gmail_OSF1
>--
>~j
Being somewhat of a collector I also have a Osf1-2.0-Src Tar.zip :-)
take care,
uncle rubl
--
The more I learn the better I understand I know nothing.
Thinking a bit more about terminal multiplexing was a major use case for early X, I recalled using Linux virtual consoles in the late 90’s for this purpose.
According to Wikipedia, virtual consoles originated with Xenix and before that with concurrent CP/M.
Perusing the documentation of those on Bitsavers, I can see that virtual consoles have a prominent mention in the manual for concurrent CP/M (1983), but not those of its forerunners MP/M II and MP/M (1979). I cannot find a mention of virtual consoles in Xenix documentation as late as 1988.
No such thing as a virtual (as distinct from pseudo) tty on 16-bit Unix or early 32-bit, as far as I know; one could argue it does not make much sense with physical terminals. Wikipedia says no such thing existed on SunOS either.
I think virtual consoles where present in Linux from a very early point.
So, as far as I can tell virtual consoles were invented for concurrent CP/M around 1983, made their way to Xenix in the late 80’s and became part of Linux in the early 90’s.
Have I missed other prior art?
> From: Bakul Shah
> In hindsight Algol68 may have been the last committee designed language
> that was good.
I do not grant your basic assertion. Hoare had it right: "ALGOL 60 [was] a
language so far ahead of its time that it was not only an improvement on its
predecessors but also on nearly all its successors." That would definitely
include Algol68, which was a classic committee-designed nightmare.
Noel
Dennis added setjmp() and longjmp() so the shell could handle errors in a reasonable way.
There are two places where setjmp was used in the original shell (7th edition) code as I recall.
Both at the top level
in main.c.
The idea came from Algol68 but I do not know where it was originally invented. longjmp() was used
in the "exitsh"
function that got called on the exit command, default trap routine and a fault with no trap set.
It was also used when executing a subshell to avoid a fork and exec. In this case the setjmp() was
at top level
in the initial sh setup.
Hope this makes sense. But these were two different uses. One for error recovery and one to reset
the execution environment
back to initial state.
Steve
> From: Larry McVoy
> If there are no commercial users of that source base, you have a chance
When was the last VAX sold? Maybe the VAX version people would be willing to
let go of.
Noel