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/
