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
> From: Ken Unix
> I have mknod but need the (c,b) major/minor numbers for /dev/lp
It looks like SysV still has conf.c; you're looking for 'cdevsw'.
Noel
> In hindsight Algol68 may have been the last committee designed
> language that was good.
The committee itself fractured over the design. Dissenters who thought
it was far too complex upped stakes and formed WG2.3, which pointedly
concentrated on program design, not language.
Doug
Hi.
I am trying to figure out how to create a device /dev for lp.
I have mknod but need the (c,b) major/minor numbers for /dev/lp
/etc/mknod name c | b major minor
I do have the required software to run lp. I have read through the
docs I have but no luck.
Thanks
Ken
--
WWL 📚
> From: Warner Losh
> In C I use it all the time to do goto err for common error recovery
> because C doesn't have anything better.
That's because C doesn't have 'conditions'. (Apparently, from the following
posts, most people here are unfamiliar with them. Too bad, they are a great
idea. OK summary here:
http://gunkies.org/wiki/Condition_handler
for those who are unfamiliar with the idea.)
I was at one point writing a compiler using a recursive descent parser, and
decided the code would be a lot simpler/cleaner if I had them. (If, for
example, one discovers discovers an un-expected 'end of file', there can be
an extremely large number of procedure invocations in between where that is
discovered, and where it is desirable to handle it. So every possible
intervening procedure would have to have an 'unexpected EOF' return value,
one would have to write code in every possible intervening procedure to
_handle_ an 'unexpected EOF' return value, etc.)'
(Yes, I could have used setjmp/longjmp; those are effectively a limited
version of condition handlers.)
Since C has a stack, it was relatively easy to implement, without any compiler
support: on() became a macro for 'if _on("condition_name")'; _on() was a
partially-assembler procedure which i) stacked the handler (I forget where I
put it; I may have created a special 'condition stack', to avoid too many
changes to the main C stack), and ii) patched the calling procedure's return
point to jump to some code that unstacked the handler, and iii) returned
'false'. If the condition occurred, a return from _on() was simulated,
returning 'true', etc.
So the code had things like:
on ("unexpected EOF") {
code to deal with it
}
With no compiler support, it added a tiny bit of overhead
(stacking/unstacking conditions), but not too bad.
John Wroclawski and someone implemented a very similar thing
entirely in C; IIRC it was built on top of setjmp/longjmp. I don't
recall how it dealt with un-stacking handlers on exit (which mine
did silently).
Noel
I wonder if Pink Floyd's Summer68 maybe refers to this.
Other than that i am addicted and could not live without it.
The other (terrible) song is from 1984 (east southern US).
--steffen
|
|Der Kragenbaer, The moon bear,
|der holt sich munter he cheerfully and one by one
|einen nach dem anderen runter wa.ks himself off
|(By Robert Gernhardt)
Starting this in TUHS due to UNIX relevance, but with the heavy disclaimer this should quickly diverge to COFF if it drifts into foreign waters.
I've gotten to reading about 5ESS lately, and it seems there are many in use still today. I found myself wondering what the evolution has looked like as far as computing hardware and operating systems involved. DMERT ran on the 3B-20D supporting the 5ESS systems in the early 80s, at the same time that UNIX 4.x was making rounds on the 3B-20S.
A 5ESS manual from 2001[1] mentions UNIX RTR (Real-Time Reliable) of the DMERT lineage. Wikipedia[2] suggests 5ESS is still very much in use and mentions more modern systems like VCDX; its "Sun Microsystems SPARC workstation runs the UNIX-based Solaris (operating system) that executes a 3B20/21D processor MERT OS emulation system." This sounds like the Lucent 3B20 emulator.
Is there still a line of UNIX RTR/DMERT being maintained to this day? Or are users left with other avenues to keep their hardware updated if necessary?
[1] - https://documentation.nokia.com/cgi-bin/dbaccessfilename.cgi/235600510_V1_5…
[2] - https://en.wikipedia.org/wiki/5ESS_Switching_System
- Matt G.