Last december Matt brought up xmodem and recently I needed it for an almost identical use case. Studied it a bit and in the context of Unix, it is an interesting piece of software history.
Although xmodem originated on CP/M in 1977, it seems to have arrived on Unix soon thereafter. The first Unix implementation seems to have gone by the name of “rbsb” and must have originated when V7 was prevalent: it uses alarm() to simulate non-blocking I/O. Over the course of the 80’s ymodem and zmodem were added and the package became lrzsz; the source continued to have a very V7-ish feel to it at least to the early 90’s. In the mid-90’s it was converted to ansi-C and had some other modernization, but it looks like it would still have run on SysIII (apart from the ansi).The last update to the upstream source package appears to be from 1998, i.e. 25 years ago.
It is still packaged today for FreeBSD and major Linux distros. On Unix it must be one the oldest code bases still in regular use, with the 1980 source still recognizable in its current incarnation. Any other contenders come to mind?
I had always associated x/y/zmodem with CP/M and MSDOS, not so much with Unix. Last December Clem already pointed out that it was popular for file exchange in the Unix scene as well, along with several other similar tools. Also, the ymodem approach to file metadata is very unix oriented, suggesting it originated on Unix or at least that Unix users were an important user demographic. Yet, I could find little trace of x/y/zmodem in the TUHS Unix Tree. The search tool finds it in 2.11BSD, in Minix 1.5 and 2.0 and in V10. Kermit is in those as well, and in 4.3BSD and 4.4BSD on top.
Maybe these programs were commonly pulled from a bulletin board and hence not on distribution media. Not sure how that would be bootstrapped, although the 2.11BSD files for x/y/zmodem include “minirb.c”, a 175 line implementation to receive files using the ymodem protocol. It is possible that this was transferred as plain text as a first step, or even retyped.
Any recollections?
Joe Ossanna worked diligently to see that WECo's ASCII teletype really
would come to market and would meet the needs of Unix. He famously
estimated that Bell Labs alone was a sizable market: 777 machines. He
also leaned on WECo to make the return key issue a single newline. And
he specified what non-ascii characters would fill out the 128
positions on the Bell Labs type boxes. This requires encoding 7-bit
ASCII in 8 bits. I don't know whether WECo had been planning to do so
anyway.
Doug
Good morning folks, something I've been pondering on this morning is the potential close connection between UNIX development and Teletype interfacing designs as the 70s and 80s marched on. Seeing as Teletype was a part of the Bell System (albeit a little less obviously in marketing than it's kin), was there any sort of official rapport between folks working on UNIX and those designing subsequent Teletypes, Dataspeed terminals, etc?
For instance, would there have been any influence an up-and-coming Teletype design would've had on developments in the UNIX tty drivers, or would particulars of UNIX tty drivers "rub off" on specifics of terminals being developed? Or were those units so distant from one another that there would've been little cross-talk between teams? Granted, an argument could be made for specifically avoiding any significant knowledge of internals, that way UNIX tty driver folks don't potentially paint into a Teletype corner and vice versa. Still, with the tightly integrated nature of Bell System R&D, manufacturing, supply, etc. it would be very "Bell System" for there to be some sort of interplay between Teletype and UNIX.
Anyone got the scoop on whether Teletype hardware enjoyed a special place in UNIX tty-interfacing considerations or vice versa, or if they were just two relatively insular developments from one another in the same general field from the same big umbrella organization?
- Matt G.
All,
My apologies to you for sending a note to the entire list that was meant
to be sent only to Warren. I definitely had not intended to send it to
the entire list (reply list... ugh.). If I were to get a mulligan, I
would make it clear that I do not take issue with anyone's signature,
including Mary Ann's. Signatures, in my view, are a matter of free
speech. I would simply state my preference that we keep the discussion
to a more technical level and consider moving cultural topics to another
list altogether.
Thanks,
Will
Hello All.
For whoever's interested, the csv code has been merged into the master
branch of the Git repo. Have fun!
Arnold
> From: arnold at skeeve.com (arnold at skeeve.com)
> Date: Sun, 10 Sep 2023 13:41:34 -0600
> Subject: [TUHS] The AWK Programming Language, 2nd Ed.: What's new?
>
> Hi.
>
> markus schnalke <meillo at marmaro.de> wrote:
>
> > Hoi,
> >
> > I just discovered that one of my favorite computer books about my
> > best liked programming language (besides C) releases in a second
> > edition. Does anyone know what the differences of 1st and 2nd
> > edition are?
> >
> > As the original book is almost perfect, the only rework and
> > extension direction I can think of is towards different
> > implementations like gawk, mawk, portability and such things.
> >
> > Does anyone know more about it? Maybe some inside information? ;-)
> >
> > meillo
>
> Inside information? As it happens, yes, I do have some. :-)
> (I was a reviewer.)
>
> [In the below, "awk" means Brian Kernighan's awk.]
>
> In the 36 (!) years since the first edition was published, awk
> has undergone, shall we say, a large number of small changes. These
> are listed in the FIXES file currently in the master branch of
> https://github.com/onetrueawk/awk.
>
> In addition, Brian Kernighan decided to add support for UTF-8 input,
> which is what awk now expects, and support for CSV input files when
> invoked with the --csv option. Furthermore, there is a new \u escape
> sequence which must be followed by 1-8 hexadecimal digits for specifying
> Unicode code points.
>
> The book itself has been carefully revised. The large second chapter
> which was a reference to the full language was moved to an appendix.
> Many of the example programs from the first edition were retained
> and updated, but there is also quite of lot of pleasing new material.
>
> There is mention of, and occasional comparison with, gawk, mawk and
> Ben Hoyt's GoAwk, but by and large the focus is on the authors' version.
>
> The new code is currently in the "csv" branch of the above Github
> repo. The maintainer is in the process of tidying up the repo (dealing
> with issues and pull requests) and will merge the csv branch into
> master sometime in the very near future.
>
> I'm told that the printed books with get to the publisher's warehouse
> towards the end of September. The book is available now on O'Reilly's
> Safari learning site (safari.oreilly.com) for anyone who has a
> subscription.
>
> Matching code (--csv and \u) are in gawk's master branch now. I will
> make a release this fall, after the new code has moved into master
> in BWK's awk.
>
> I heartily recommend the book; it is totally up to Brian Kernighan's
> usual very high standard.
>
> Enjoy,
>
> Arnold
>
To the Attention of Warren Toomey (and all who stay in his
hotel):
I don't care enough to weigh in on any issues that don't
interest me, but I am the most important person in the
world, and whatever I say goes, so you better listen or
you'll be sorry.
It is my very important opinion that only things I want
to hear about should be discussed on this mailing list.
I want to hear about Unix and awk, but not about perl.
No one must talk about any shell except Ken's original.
The sun scares me, forcing me to hack all night and sleep
all day (never mind the malicious stories that I press
wild flowers); therefore there must never be any mention
of Sun Microsystems or Solaris. I am also worried that
a comet will fall on my house and damage my Twinkie
stockpile, so no discussion of the VAX-11/750 is allowed,
nor of work done by the Bell Labs Computing Science
Research Center during the 1980s when much of their
work was done on systems of that model, which were even
named (ewwwww!!!) after comets.
Any mention of non-nerd-approved(TM) subjects is also
forbidden, including Agricola, ferrets, mimes (which are
even scarier than comets!), Lions (and Tigers and Bears),
lurgi, csv files, and gannets (they wet their nests).
Not to mention Bazonka.
I hereby direct the moderators of this list, who must
obey my every command, to terminate with extreme prejudice
anyone who dares even to think of violating these rules.
Viva la revolution!
Yeliz Gardinovich Bimmler (Mrs)
Port Morton, Alabama, CUS
Hi Warren,
I don't care to weigh in on the transgender flag issue, but I also don't
want to hear about it. Please remove me from the list. All due respect
to you and Mary Ann. Monica Helms is not a Unix hero.
Thanks,
Will
Hello, today I've received a 3B/1A "Attached Processor Interface" or "API" (as I will refer to it in this email, note API will not mean Application Programming Interface in my contributions to this discussion) pamphlet, published by WECo in November 1981, concerning installation and maintenance of the API. From the introductory page:
> This lesson is a self-paced package that can be administered individually or in a classroom environment. There is a helpful glossary in the back of this booklet that you may use while going through the material.
>
> At the conclusion of this lesson, the installer will be able to:
>
> - State the purpose of the API as it applies to the 3B Processor.
>
> - Identify the different types of circuit packs used in the API.
>
> - List the number of API diagnostic phases.
>
> - Name the API circuit pack that interfaces the Dual Serial Channel in the 3B Processor.
Among the many pages (which I'll be doing a formal scan on in the future) are some references to BSPs and schematic drawings relevant to this information, I wanted to get that information out in the email archive now so the bibliographic references are preserved somewhere:
3B Processor:
254-001-031 - Test Equipment List
254-301-000 - System Documentation
254-301-005 - General Description
254-301-115 - TTY System
254-301-010 - Central Control
254-301-020 - Power Systems
254-301-100 - Input Output Interfaces
254-301-105 - Input Output Processor
254-301-110 - Input Output Processor Peripheral Controller
254-301-200 - Main Store
254-301-210 - Moving Head Disk Drive
254-301-215 - Disk File Controller
254-301-220 - Magnetic Tape System
254-301-800 - Emergency Action Procedures
254-301-809 - Acceptance Test Plan
254-301-811 - Task Oriented Practice-Routine
254-301-812 - Task Oriented Practice-Trouble Clearing
254-341-000 - DMERT
254-341-220 - MTCE Management and Diagnostics
API:
234-100-020 - APS Description and Theory
254-201-003 - API Frame Theory
254-280-114 - APS Software Description
254-281-030 - API Growth
Misc:
234-153-055 - File Store Relocation
3B Schematics:
SD-4C050-01 - 3B Control Frame, DMA Unit, CC Unit, MASM 0, MASM 1, Power Unit, Cooling Unit, Filter Unit
SD-4C059-02 - 3B Peripheral Control Frame
SD-4C052-01 - IOP Basic
SD-4C049-01 - IOP Growth
SD-4C051-01 - DFC Unit
SD-4C056-01 - Disk Inverter Frame
SD-4C058-01 - Tape Transport Frame
SD-4C057-01 - Inverter Unit
SD-4C070-02 - Inverter Control Unit
SD-4C054-01 - Duct & Cabling
SD-4C053-01 - Power Distributing, AC Requirements
SD-4C069-01 - Micro Level Test Set
SD-4C065-01 - Port Switch
API Schematics:
SD-5A056-01 - API Frame
SD-5A055-01 - API Unit
There are then references to a few "Handbooks":
HB 309 - 3B Proc
HB 263(A) - API ITS (Mainly mentions tests and diagnostic stuff)
HB 264(A) - API Generic (Not sure what ITS and Generic distinguish here)
Finally, a bit of fun. Towards the back of the pamphlet is a small crossword puzzle concerning the API: https://i.imgur.com/0pLcK9p.jpg
Answers to come when I do a scan of this. If anyone has any particular information they want me to try and find in it sooner rather than later just let me know, it's 88 pages but small form.
- Matt G.
I don't remember any special many-programs-in-one binary
like busybox in any Unix from the days when Unix was simple
enough for me to understand. That covers the entire lifetime
of the Research systems, but also System V and the BSDs and
their sundry offspring up into at least the 1990s.
I'm pretty sure OpenBSD at least still has nothing like
busybox. The nearest thing was to make sure certain programs
were linked statically (or existed in alternate statically-
linked versions) so they would work before shared libraries
were available. (It seems to be common wisdom that `sbin'
means `system bin' these days, but I remember once, long ago,
being told it stood for `static bin'.)
Perhaps the question to ask is why such a magic program is
needed at all. Is it just because programs like the shell
have become so large and unwieldy that they won't fit in
a small environment suitable for loading into an initramfs?
Older UNIXes, even on the VAX, didn't use an initramfs.
the boot code had just enough understanding of devices and
file systems to load the kernel and to point it at the
real root file system. The VAX hardware designers had
a clever scheme on many (but, strangely, not all) VAX
variants by which the hardware had several little boot
ROMs, each containing a bare-bones read-only device
driver for a particular device along with a few
instructions to read the first sector into memory
and start it, with pointers to the boot-rom driver
and device ID in specified registers. That was enough
to support a device-independent Unix boot block that
could read unix (or another file name typed on the
console) from the root of the file system at the start
of the disk. I know it was because I wrote such a
boot block, though I don't know whether anyone else
did. (Other systems, I think, just used it to load
/boot, a larger and more-capable program.)
Maybe it was just that the boot environment was simpler
in older systems, without the need to load kernel modules
or support multiple locations and means of access for
the root?
Norman Wilson
Toronto ON
> i’m having trouble identifying “Agricola”.
See WIkipedia on "De re metallica", or for the real thing
https://www.gutenberg.org/files/38015/38015-h/38015-h.htm
On Mon, Sep 11, 2023 at 4:29 PM Mark Seiden <mis(a)seiden.com> wrote:
>
> i’m so happy you replied.
>
> have you considered a memoir?
>
> your writing is very vivid (and literate).
>
> but i’m having trouble identifying “Agricola”.
>
> the strategy board game? the roman emperor? the farm to table restaurant in princeton?
>
>
>
>
>
>
> > On Sep 11, 2023, at 3:58 PM, Douglas McIlroy <douglas.mcilroy(a)dartmouth.edu> wrote:
> >
> > Way off topic, but too nostalgic to pass up. I was involved in
> > after-hours training courses and persuaded Bob Morris to organize the
> > first one ever to be held off campus, "Bell System with field trips".
> > The highlight of the series was Nassau Smelting and Refining. They
> > proudly told us about their new environmental consciousness: aqua
> > regia (used to reclaim gold) was now being adjusted to pH 7 before
> > being dumped into the Kill van Kull, and stack emissions of lead had
> > been reduced from hundreds of pounds per year to eight.
> >
> > The scene was almost straight out of Agricola. An enormous steel
> > jousting pole mounted on a backhoe was used to shove scrap copper and
> > live-cut tree trunks into a ferocious green-flaming furnace. Men in
> > moon suits and respirators puddled slag floating on open vats of
> > molten lead. A Dickensian crone snipped gold tips off the old relays
> > cradled in her lap. Clothes, including shoes, exchanged at the door of
> > the gloomy gold room, were collected periodically and thrown into the
> > aqua regia pots to extract every last milligram.
> >
> > The only process that really deviated from Agricola was pyrolysis, for
> > reclaiming modern cable cladding. But he surely would have been
> > impressed by the mechanism for casting continuous copper bar and
> > collecting it on a giant spool. They delighted in telling about the
> > time the spool stopped turning while the copper feed continued,
> > filling the hall with an enormous tangle of 1" copper stock.
> >
> > Doug
> >
> >
> > On Mon, Sep 11, 2023 at 1:47 PM Mark Seiden <mis(a)seiden.com> wrote:
> >>
> >> hi, old friends (and i mean that both figuratively and literally)
> >>
> >> the recent/continuing brouhaha involving lead sheathed cables made me wonder about
> >> nassau smelting and refining in staten island (a sub of WEco which ended up with Lucent)
> >> (and apparently another location at W. 29th st which was a superfund site for a while.)
> >>
> >> wonderful chaplainesque photo:
> >>
> >> https://www.facebook.com/classicstatenisland/photos/a.286586221935407/51668…
> >>
> >> also regarding the Staten Island location, quoting from
> >>
> >> https://www.silive.com/news/2020/02/former-nassau-smelting-site-sells-for-3…
> >>
> >> "The cleanup was to entail covering 450,000 cubic yards of contaminated soil with a thick, unbreakable plastic liner, as well as layers of clean soil.”
> >>
> >> (hah, what could go wrong with that?)
> >>
> >> On Sep 11, 2023, at 11:34 AM, Paul Winalski <paul.winalski(a)gmail.com> wrote:
> >>
> >> Regarding the possible Western Electric -> Lucent -> Nokia IP path,
> >> has anyone tried contacting Nokia's legal department and asking
> >> whether they think they own the rights to the 3B/WECo computer IP, and
> >> if not, do they know who does (or might) own it?
> >>
> >> -Paul W.
> >>
> >>
>