From sauer at technologists.com  Tue Mar 11 07:45:28 2025
From: sauer at technologists.com (Charles H Sauer (he/him))
Date: Mon, 10 Mar 2025 16:45:28 -0500
Subject: [COFF] Make your own virtual punchcard
Message-ID: <c4e8192a-c374-4919-a0e1-7a543c3700d9@technologists.com>

https://boingboing.net/2025/03/10/make-your-own-virtual-punchcard.html

[50 years ago today I started working at IBM Yorktown. My boxes of 
punchcards from graduate work at UT-Austin were enroute with the movers 
from Austin, to be fed into VM-370 after they arrived. I wish I had kept 
those boxes as souvenirs.]

Charlie
-- 
voice: +1.512.784.7526       e-mail: sauer at technologists.com
fax: +1.512.346.5240         Web: https://technologists.com/sauer/
Facebook/Google/LinkedIn/mas.to: CharlesHSauer


From whm at msweng.com  Tue Mar 11 08:11:01 2025
From: whm at msweng.com (William H. Mitchell)
Date: Mon, 10 Mar 2025 15:11:01 -0700
Subject: [COFF] Make your own virtual punchcard
In-Reply-To: <c4e8192a-c374-4919-a0e1-7a543c3700d9@technologists.com>
References: <c4e8192a-c374-4919-a0e1-7a543c3700d9@technologists.com>
Message-ID: <A9C13AFC-C597-4451-8A6F-AE54EA19F90C@msweng.com>

One of my first feelings of starting to master things, back at NC State in 1976, was when I learned how to add and delete characters from a punch card.

William Mitchell
Mitchell Software Engineering
Occasional Adjunct Instructor at U of AZ CS
Discord: whm#5716, Twitter: @x77686d, Skype: x77686d
linkedin.com/in/x77686d

> On Mar 10, 2025, at 2:45 PM, Charles H Sauer (he/him) <sauer at technologists.com> wrote:
> 
> https://boingboing.net/2025/03/10/make-your-own-virtual-punchcard.html
> 
> [50 years ago today I started working at IBM Yorktown. My boxes of punchcards from graduate work at UT-Austin were enroute with the movers from Austin, to be fed into VM-370 after they arrived. I wish I had kept those boxes as souvenirs.]



From classiccmp at earthlink.net  Tue Mar 11 10:37:10 2025
From: classiccmp at earthlink.net (David C. Jenner)
Date: Mon, 10 Mar 2025 17:37:10 -0700
Subject: [COFF] Make your own virtual punchcard
In-Reply-To: <c4e8192a-c374-4919-a0e1-7a543c3700d9@technologists.com>
References: <c4e8192a-c374-4919-a0e1-7a543c3700d9@technologists.com>
Message-ID: <9f41afdd-fdc1-4cb4-a75e-8e3b19271814@earthlink.net>

My first punch cards were in 1962, a first program for an IBM 709 
Assembly Language class.  We used 026 card punches.

I wanted to emphasize a line in the comments region with an exclamation 
mark.  Not finding one on the 026, I did what we were taught in typing 
class--type period, backspace, type apostrophe.

My first program was, of course, rejected by the card reader.

I think my box of program punch cards from many years of computing is 
somewhere in storage in my garage.  As well as a box of unused, original 
cards from computing centers all over the country.^H'

Dave

On 3/10/25 2:45 PM, Charles H Sauer (he/him) wrote:
> https://boingboing.net/2025/03/10/make-your-own-virtual-punchcard.html
> 
> [50 years ago today I started working at IBM Yorktown. My boxes of 
> punchcards from graduate work at UT-Austin were enroute with the movers 
> from Austin, to be fed into VM-370 after they arrived. I wish I had kept 
> those boxes as souvenirs.]
> 
> Charlie


From crypto at glassblower.info  Tue Mar 11 12:07:32 2025
From: crypto at glassblower.info (Tony Patti)
Date: Mon, 10 Mar 2025 22:07:32 -0400
Subject: [COFF] Make your own virtual punchcard
In-Reply-To: <9f41afdd-fdc1-4cb4-a75e-8e3b19271814@earthlink.net>
References: <c4e8192a-c374-4919-a0e1-7a543c3700d9@technologists.com>
 <9f41afdd-fdc1-4cb4-a75e-8e3b19271814@earthlink.net>
Message-ID: <180401db922a$59b4e270$0d1ea750$@glassblower.info>

idk, when I type "TONY" into 
https://boingboing.net/2025/03/10/make-your-own-virtual-punchcard.html
it does not match the output which I have at
https://www.glassblower.info/crypto/tony-punch-card.jpg

But maybe that's because, to find this punch card in my basement, in the 7th box which I looked in tonight,
that box was in the bottom of a locked filing cabinet, stuck in a disused lavatory, 
with a sign on the door saying "Beware of the Leopard" :)

My punch card is from Wharton's awesome KL-10 DECsystem-10, circa 1980, contemporaneous photos here:
https://glassblower.info/Wharton-DECsystem-10/Wharton-DECsystem-10.html

Tony Patti
(ARPAnet NIC IDENT "TP4")
crypto at glassblower.info


-----Original Message-----
From: David C. Jenner <classiccmp at earthlink.net> 
Sent: Monday, March 10, 2025 8:37 PM
To: Charles H Sauer (he/him) <sauer at technologists.com>; COFF <coff at tuhs.org>
Subject: [COFF] Re: Make your own virtual punchcard

My first punch cards were in 1962, a first program for an IBM 709 Assembly Language class.  We used 026 card punches.

I wanted to emphasize a line in the comments region with an exclamation mark.  Not finding one on the 026, I did what we were taught in typing class--type period, backspace, type apostrophe.

My first program was, of course, rejected by the card reader.

I think my box of program punch cards from many years of computing is somewhere in storage in my garage.  As well as a box of unused, original cards from computing centers all over the country.^H'

Dave

On 3/10/25 2:45 PM, Charles H Sauer (he/him) wrote:
> https://boingboing.net/2025/03/10/make-your-own-virtual-punchcard.html
> 
> [50 years ago today I started working at IBM Yorktown. My boxes of 
> punchcards from graduate work at UT-Austin were enroute with the 
> movers from Austin, to be fed into VM-370 after they arrived. I wish I 
> had kept those boxes as souvenirs.]
> 
> Charlie


From paul.winalski at gmail.com  Wed Mar 12 02:41:03 2025
From: paul.winalski at gmail.com (Paul Winalski)
Date: Tue, 11 Mar 2025 12:41:03 -0400
Subject: [COFF] Make your own virtual punchcard
In-Reply-To: <180401db922a$59b4e270$0d1ea750$@glassblower.info>
References: <c4e8192a-c374-4919-a0e1-7a543c3700d9@technologists.com>
 <9f41afdd-fdc1-4cb4-a75e-8e3b19271814@earthlink.net>
 <180401db922a$59b4e270$0d1ea750$@glassblower.info>
Message-ID: <CABH=_VRFWadWdczFBuXSpa_6SVWapB9BmAsd6OdDOZDT4-ZonA@mail.gmail.com>

I had several boxes of punch cards from the early- to mid-70s, but I threw
them out circa 1990 because the printed text at the top had faded away.  I
regret that now.  I have only one punch card left, made at the Computer
History Museum in 1986, back when it was still in Boston.

Back in the day, AT&T and other companies sent a punch card along with
their bills.  You were supposed to mail the card back with your payment.
My dad started receiving credit card bills for $0.00.  He tried several
times to get this fixed, to no avail.  I was an undergrad at the time.  I
told him to send me the punch card that came with the bill.  I would alter
it and send it back to him.  He was then to write an explanation of the
billing problem on the back of the card and then mail it to the credit card
company.  My alteration was to make an invalid overpunch so that the card
could not be read.  The $0.00 bills stopped coming.

I later found out the cause of the $0.00 problem.  It comes from use in a
COBOL program of a statement such as:

IF BALANCE IS NEGATIVE THEN <print bill>

Commercial financial information is commonly stored using scaled packed
decimal numbers.  Packed decimal has a separate sign so there are two zero
values--zero with positive sign and zero with negative sign.  In this case,
somehow the account balance was recorded as negative zero, and that tests
TRUE for IS NEGATIVE.  The proper way to code this is:

IF BALANCE IS LESS THAN ZERO THEN <print bill>

-Paul W.

On Mon, Mar 10, 2025 at 10:17 PM Tony Patti <crypto at glassblower.info> wrote:

> idk, when I type "TONY" into
> https://boingboing.net/2025/03/10/make-your-own-virtual-punchcard.html
> it does not match the output which I have at
> https://www.glassblower.info/crypto/tony-punch-card.jpg
>
> But maybe that's because, to find this punch card in my basement, in the
> 7th box which I looked in tonight,
> that box was in the bottom of a locked filing cabinet, stuck in a disused
> lavatory,
> with a sign on the door saying "Beware of the Leopard" :)
>
> My punch card is from Wharton's awesome KL-10 DECsystem-10, circa 1980,
> contemporaneous photos here:
> https://glassblower.info/Wharton-DECsystem-10/Wharton-DECsystem-10.html
>
> Tony Patti
> (ARPAnet NIC IDENT "TP4")
> crypto at glassblower.info
>
>
> -----Original Message-----
> From: David C. Jenner <classiccmp at earthlink.net>
> Sent: Monday, March 10, 2025 8:37 PM
> To: Charles H Sauer (he/him) <sauer at technologists.com>; COFF <
> coff at tuhs.org>
> Subject: [COFF] Re: Make your own virtual punchcard
>
> My first punch cards were in 1962, a first program for an IBM 709 Assembly
> Language class.  We used 026 card punches.
>
> I wanted to emphasize a line in the comments region with an exclamation
> mark.  Not finding one on the 026, I did what we were taught in typing
> class--type period, backspace, type apostrophe.
>
> My first program was, of course, rejected by the card reader.
>
> I think my box of program punch cards from many years of computing is
> somewhere in storage in my garage.  As well as a box of unused, original
> cards from computing centers all over the country.^H'
>
> Dave
>
> On 3/10/25 2:45 PM, Charles H Sauer (he/him) wrote:
> > https://boingboing.net/2025/03/10/make-your-own-virtual-punchcard.html
> >
> > [50 years ago today I started working at IBM Yorktown. My boxes of
> > punchcards from graduate work at UT-Austin were enroute with the
> > movers from Austin, to be fed into VM-370 after they arrived. I wish I
> > had kept those boxes as souvenirs.]
> >
> > Charlie
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.tuhs.org/pipermail/coff/attachments/20250311/63df7180/attachment.htm>

From douglas.mcilroy at dartmouth.edu  Wed Mar 12 09:07:50 2025
From: douglas.mcilroy at dartmouth.edu (Douglas McIlroy)
Date: Tue, 11 Mar 2025 19:07:50 -0400
Subject: [COFF] Make your own virtual punchcard
Message-ID: <CAKH6PiVO9=4GveQufZPBqqG44-uEVQY67jGsXgfOPkv0W2K7ow@mail.gmail.com>

Mention of punched cards reminded me of some 1960s trivia.

There were two formats for binary code on punched cards for IBM 700-series
machines. In "row binary" two 36-bit words filled each of the 12 rows from
bottom to top. In "column binary" successive thirds of a word ran downward
in each of 3 successive columns. Bob Morris wondered what is the order of
the permutation performed in row-to-column conversion.

The order of the row-to-column permutation turns out to be 172. There are
five cycles of that length plus an oddball  of length 4. My souvenir card
shows the oddball.

If you convert a cycle from row binary to column binary, the output is the
same as the input.* Each cycle is also invariant under 180-degree
rotation.The 4-cycle is a simple parallelogram. One of the 5-cycles lines
up in periodic diagonals. The other cycles show no easily described
structure.

The images of the two described cycles should be viewed in a fixed-width
font. The punches in the 4-cycle are numbered in cyclic order.

I keep a few souvenir punched cards. One bears that 4-cycle.

* Well, almost the same. The first word on the card contains control
information whose layout differs in the two formats.

Doug

........................................................................
........................................................................
...........................................3............................
........................................................................
..............2.........................................................
........................................................................
........................................................................
.........................................................4..............
........................................................................
............................1...........................................
........................................................................
........................................................................

..X....X....X....X....X....X....X....X....X....X....X....X....X....X....
....X....X....X....X....X....X....X....X....X....X....X....X....X....X..
.X....X....X....X....X....X....X....X....X....X....X....X....X....X....X
...X....X....X....X....X....X....X....X....X....X....X....X....X....X...
X....X....X....X....X....X....X....X....X....X....X....X....X....X....X.
..X....X....X....X....X....X....X....X....X....X....X....X....X....X....
....X....X....X....X....X....X....X....X....X....X....X....X....X....X..
.X....X....X....X....X....X....X....X....X....X....X....X....X....X....X
...X....X....X....X....X....X....X....X....X....X....X....X....X....X...
X....X....X....X....X....X....X....X....X....X....X....X....X....X....X.
..X....X....X....X....X....X....X....X....X....X....X....X....X....X....
....X....X....X....X....X....X....X....X....X....X....X....X....X....X..
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.tuhs.org/pipermail/coff/attachments/20250311/b2a4d121/attachment-0001.htm>

From douglas.mcilroy at dartmouth.edu  Wed Mar 12 12:22:36 2025
From: douglas.mcilroy at dartmouth.edu (Douglas McIlroy)
Date: Tue, 11 Mar 2025 22:22:36 -0400
Subject: [COFF] [TUHS] What would early alternatives to C have been?
Message-ID: <CAKH6PiVOUXk5-F901T8JUkM3nu60KCG+nrCZb8xqwtGiXLjd_A@mail.gmail.com>

Beating a nearly dead horse, I'm shipping this to COFF instead of TUHS
to which it responds.

>  I find
>
>       if (a == b && c == d)
>
> perfectly reasonable, but
>
>       if ((a == b) && (c == d))
>
> to be just silly.

Amusing. IT's odd that no one has mentioned the use of spaces for
grouping.  When the operands of == are simple, I prefer to vary the
spacingy spacing. It's less intrusive than extra parentheses and just
as clear.

        if(a==b && c==d) or
        if( a==b && c==d )

K&R usually flank every infix operator with spaces, unlike classical
mathematical usage, where spacing reflects operator precedence. I
usually write a*b + c*d, not a * b + c * d, which wantonly flattens
the parse tree. Here's an example from K&R, where uniform spacing
hampers intelligibility.

        for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i)
                n = 10 * n + (s[i] - '0');

The "extra" parens in the second line admirably show the intent of the
subtraction. Other groupings are not so well indicated. I would write
it like this:

        for(i=0; s[i]>='0' && s[i]<='9'; ++i)
                 n = 10*n + (s[i]-'0');

(I'll admit that the juxtaposition ]>= is less than perspicuous.)

Long identifiers constitute a level of grouping that takes precedence
even over multiplication. So I may flank long identifiers with spaces.
I suppose then + in a sum of  products might deserve double spaces.
That's probably a bridge too far, but double spaces after the
semicolons in the "for" statement above seem justifiable

K&R aren't absolutely rigid about spacing. In the following oddly
mixed specimen, the first of three operands in a conjunction is spaced
tightly, but the third is not; I guess they feel about != the way I do
about long identifiers.

        i<lim-1 && (c = getchar()) != '\n' && c != EOF

The middle conjunct is a challenge. I'd probably squeeze out the
spaces. But I might instead try to hold it together with outer parens.

Doug