Difference between revisions of "Talk:TREK7"
(→Comments: Thanks; it's been a while since I read that!) |
(→Comments: Yes, it's there) |
||
Line 41: | Line 41: | ||
:: I retain this persistent impression that I saw it somewhere else - in part because I have this very vague memory that I read it early on, before this would have come out. Eh, not important. | :: I retain this persistent impression that I saw it somewhere else - in part because I have this very vague memory that I read it early on, before this would have come out. Eh, not important. | ||
:: The guy who did the [[TENEX]] port to the KI10 had a very good paper about all that history; I'll have to make sure it's in the EL there. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 13:09, 5 April 2023 (CEST) | :: The guy who did the [[TENEX]] port to the KI10 had a very good paper about all that history; I'll have to make sure it's in the EL there. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 13:09, 5 April 2023 (CEST) | ||
+ | |||
+ | :: Yes, it is. I should probably check to make sure "Life in the fast AC's" is on the [[TOPS-10]] page. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) | ||
I wish someone would counter-check my comments on the TREK7 sources and add (at least some of) the ones still missing. [[User:Vaxorcist|Vaxorcist]] ([[User talk:Vaxorcist|talk]]) 09:20, 26 March 2023 (CEST) | I wish someone would counter-check my comments on the TREK7 sources and add (at least some of) the ones still missing. [[User:Vaxorcist|Vaxorcist]] ([[User talk:Vaxorcist|talk]]) 09:20, 26 March 2023 (CEST) |
Latest revision as of 12:48, 5 April 2023
Divide by zero bug
The article mentions an "obstinate ... 'divide by zero' problem that has been plaguing the code for decades hindering any successful game". Curiousity is piqued - what was the bug, what were the circumstances that provoked it, and what were the results when it was? (I'm assuming a fatal total failure, for the latter?) It sounds like the code most have been subtracting one quantity from another, and using the difference to divide something - without checking to see if the difference was 0? Jnc (talk) 22:06, 25 March 2023 (CET)
That's what happened:
%SYSTEM-F-FLTDIV_F, arithmetic fault, floating divide by zero at PC=0001060C, PS L=03C00024 %TRACE-F-TRACEBACK, symbolic stack dump follows module name routine name line relative PC absolute PC HORTA 21 0000012C 0001060C ATACK 59 00000280 0001A600 FOR$MAIN 321 00000D3D 0001013D
and the FORTRAN line causing it was:
SINA=FLOAT(ITAR-ISTR)/X
As a first step I put in the line:
IF(X.EQ.0)X=0.1
just before the division takes place to stop division by zero, but that was just a stupid workaround and not the real solution.
About a month later I found the causing bug in subroutine ATACK
: IF(MIN.EQ.21)GO TO 106
instead of IF(MIN.EQ.21)GO TO 108
.
I found it by chance and luck - not by systematic approach ...
So a simple misread jump target caused so much trouble.
There is a lot of "spaghetti code" in the TREK7 sources, which makes understanding and debugging an arduous job! Vaxorcist (talk) 09:20, 26 March 2023 (CEST)
Comments
The mention of scarce comments reminded me about a favourite MIT story about an obscure comment - perhaps the only comment in a program! So, instruction (I don't think it was a line number - this predates BASIC) 1827 had the comment "LVB RIP". What? Eventually (this was long before the Internet, too :-) the penny dropped - Ludwig van Beethoven died in 1827! Or maybe it was 'JSB RIP' on instruction 1750 - that actually sounds more likely, now that I think about it - old-time hackers were more fans of Bach than Beethoven! I tried to find this story online, but couldn't. I think I read it in an old copy of the Hacker's Dictionary. Jnc (talk) 22:06, 25 March 2023 (CET)
- A search for "JSB RIP" (augmented with "PDP") turned up two hits. It's from "History of TOPS - Life in the fast AC's": https://www.inwap.com/pdp10/tops-history.txt Larsbrinkhoff (talk) 08:55, 5 April 2023 (CEST)
- Ah, thanks! It's been a while since I read that!
- I retain this persistent impression that I saw it somewhere else - in part because I have this very vague memory that I read it early on, before this would have come out. Eh, not important.
- The guy who did the TENEX port to the KI10 had a very good paper about all that history; I'll have to make sure it's in the EL there. Jnc (talk) 13:09, 5 April 2023 (CEST)
I wish someone would counter-check my comments on the TREK7 sources and add (at least some of) the ones still missing. Vaxorcist (talk) 09:20, 26 March 2023 (CEST)
Compiling on the PDP-10
I have posted some results from trying to compile the files on a PDP-10: https://github.com/larsbrinkhoff/trek7/issues/1 Larsbrinkhoff (talk) 09:01, 5 April 2023 (CEST)