On Wed, 2025-01-15 at 00:32 +0000, Chuck Guzis via cctalk wrote:
One defining characteristic of post-1980 languages was
the assumption
of
a binary radix, as opposed to systems like the 1401 or 7070, which
were
decimal and lacked bitwise boolean operations.
I have the 1401 FORTRAN-II compiler. I reverse engineered it from
operational tapes, then the author (Gary Mokotoff) sent me a scan of
his listings, that he thought he lost when he retired. My reverse-
engineered code has far more comments. It works in an interesting way:
It reads the source code into core, then reads 64 more phases, average
about 300 instructions each, until it has object code in core. It has
an option to punch an object deck, or just compile-and-go. I recently
modified it so they could run it at the Computer History Museum in
Mountain View, CA. They have a Tape Adapter Unit (TAU) emulator
connected to a PC. It can pretend to be a TAU that they can use to
diagnose tape drives, or it can pretend to be a tape drive so they can
read and write "tapes" in the PC. But it has a 2,400 character buffer,
and some of the blocks were 3,500 characters. It works in SimH i1401,
but I don't know whether they've tried on their real 1401s.
Its (necessarily decimal) floating point arithmetic was quite good --
up to 20 digits, with two guard digits. The only defect by modern
standards was that it didn't do symmetric rounding. The intrinsic
function library was small, but also quite good — trig functions,
exponential, logarithm, square root.
Jay Jaeger has built a 1410 using FPGA, including 1401 compatibility. I
haven't kept up with the status so I don't know whether everything
works yet.
1401 (and 1410 and 7010) had a "branch if bit equal" instruction and
column-binary card reading and punching (both optional on 1401), but
nothing more for boolean operations.