On Jan 14, 2025, at 10:48 PM, Chuck Guzis via cctalk
<cctalk(a)classiccmp.org> wrote:
On 1/14/25 16:50, Van Snyder via cctalk wrote:
On Wed, 2025-01-15 at 00:32 +0000, Chuck Guzis
via cctalk wrote:
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:..
I remember running 1620 card FORTRAN. It sounds much like the 1401
version (no surprise). You first read in the compiler, then the source
program; an intermediate deck is punched. The second pass of the
compiler is then read in, followed by the intermediate deck punched in
pass 1, then any subroutine decks.
My recollection is that the precision could be specified by the user;
integers could be up to 10 digits and floating mantissas could be up to
28 digits in length. An interesting feature was that subroutines were
not required to have the same precision as the main program.
Yes, it certainly had that feature. I'm not sure about the limits, I thought the
integer limit was 99 digits. The reason for these options is that it's directly
supported by the hardware, which has arbitrary length integers and (up to a limit I
forgot) floating point mantissas. Given the encoding in the hardware, it makes sense that
you could mix and match; the hardware would accept operands of whatever size you pick, in
whatever combination you like. So, for example, adding a 3 digit integer to a 300 digit
integer would work just fine.
paul