On Thu, 2026-06-18 at 12:12 -0700, Fred Cisin via cctalk wrote:
> The IBM
1401 COBOL compiler wrote assembler (Autocoder) on a tape. Then
> you had to mount the Autocoder assembler tape and assemble it. And it
> included the input COBOL code as Autocoder comments.
On Thu, 18 Jun 2026, Bill Gunshannon via cctalk wrote:
Interesting. I did Autocoder but never thought
of it as assembler.
Programming the 1401 in assembler was when you took the output from
an Autocder deck and hand optimized it to a single card. :-)
Hand otimizing was more likely machine language programming rather than
"programming in assembler".
Sixty years ago, I took a course in 1401 machine language.
The 1401 was inconvenient to access regularly, but there was a [homemade?]
"compatability"? "conversion" program to be able to run small 1401
machine
language programs on the 1620.
I had just had a few years of FORTRAN programming, and a course using 1620
PDQ FORTRAN, but 1401 machine language changed my view of programming.
Most fun that I EVER had in a programming class.
The SimH i1401 simulator appears to be correct. I run a lot of code on
it, including the FORTRAN II compiler and the code it generates. The
author (Bob Supnik) repaired the last bug I found, having to do with
moving word marks around during a divide instruction, several years
ago. I haven't found another one.
https://simh.trailing-edge.com/
I was going to then be taking a course in SPS
("Symbolic Programming
system"?)(a low level assembler) the next semester, but I got hired away
for a gig that got out of hand, almost into a career, and it was decade(s)
before I got back.
The 1401 was long gone :-(
SPS is a fixed-format "language" and the assembler didn't include a
macro processor. It ran entirely from cards, so even shops that didn't
have tape drives could write programs. You loaded the first pass with
your code behind it. It punched some stuff that you put behind the
second pass. The second pass punched an object deck. The intermediate
deck wasn't useful.
I never experienced Autocoder; I understand that it is
a much more
"advanced" assembler.
Autocoder has a good macro system. I wrote a cross-assembler that
includes the same macro system, so it can assemble dusty decks. All my
1401 stuff is at
https://vandyke.mynetgear.com/1401/ My Autocoder is
in
https://vandyke.mynetgear.com/1401/progs/autocoder/. [1] "Real"
autocider is there too; I transcribed it from the CE manual, assembled
it with my assembler, then assembled it using itself, and it works. My
assembler produces a slightly different object deck because I invented
a slightly different strategy to set the word marks in a DA structure
(because I didn't yet have the CE manual to understand how Real
Autocoder did it), but the core load is the same. The Autocoder
specifications and operating procedures are
at
https://vandyke.mynetgear.com/1401/docs/C24-3319-0_1401_tapeAutocod.pdf
, which I got from bitsavers.
— Van
[1]
https://vandyke.mynetgear.com/1401/progs/autocoder/.
https://vandyke.mynetgear.com/1401/progs/autocoder/