Eventually we figured out that the lines that weren't working were just over 80 characters long and the ones that were working were under 80 characters long. The compiler we were using was adhering to the Fortran-77 spec of a maximum of 80 characters per line (because that's what would fit on a punch-card), but it was just ripping those lines out and ignoring them without raising any kind of warning. If a line of code was over 80 characters long, it was just silently ignored. All we had to do was split the lines over 80 characters up and that particular bug was squished.
In my humble opinion, if a language can trip you up because of how many characters fit on a punch-card, it qualifies as "old school".
EDIT- Terrifying:
251 GOTO (21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37) I-20
switch (I-20) {
case 21:
case 22:
...
}
but you have to imagine "21" as the string identifier, not the integer value. `I-20` is indexing the list of labels in the GOTO statement.The earlier column beginning with
GOTO (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) I
is easier to read switch (I) {
case 1:
...
case 2:
...
}
because the integer value of I, the string labels, and their index in the list are all the same.I've never written Fortran. I did learn to program using TI-85 BASIC, though, and am well versed in C. The GOTO in the Fortran code is possibly the easiest part for me to understand.
the convention I used was taught was always 4 digits always increasing going down the pages.
7000 and 8000 range where for input and output FORMAT statements, 6000 was used to label code 6999 was always the exit
<hangs head in shame>
https://github.com/DigitalMars/Empire-for-PDP-10
Fortran-77 is for young whippersnappers.