fridtjof.ma...@gmail.com schrieb am Montag, 6. September 2021 um 00:21:15 UTC+2:
> Sargon was the original program released in 1978, Sargon 2 was an improvement, released in 1979.
> Sargon 2 is much stronger. But, hey, I was coding for Microchess (TRS-80 and PET displays) back then,
Cool, I had Microchess 2.0 for the PET and Apple, loved to play against these due to lack
of human opponents.
> so I *am* biased. My comment was about CHESS.FOR, which Sargon would east for breakfast
> (I just played a game or two with CHESS.FOR).
Playing against CHESS.FOR is not a challenge, but the source is interesting.
> As a PS for Udo: how about "ASSIGN 1 TO I", then later "GOTO I" in Microsoft F80. Nicely generates
> "LHLD I, PCHL"! That is rather sweet. Since I does not have to be declared "label associated" as there
> is no way to do that in FORTRAN IV anyway, this allow us to implement jump vectors and threaded
> code directly! Maybe I'll play with it a bit -- but, consider. A RETURN is just that: RET. No stack parameters
> are used. Which means that pushing some INTEGER labels into COMMON then F80 gains some "hyper"
> flow control. Amuses me... Didn't use this "back in the day" -- we kind of frowned on assigned goto.
Computed GO TO's, don't know why they frowned on it, properly used it allows to write very fast dispatcher
code, like for example I did in the Tektronix gsx80 driver:
C
C DISPATCH ON OPCODE
C
GOTO(1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,
1 2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,
2 3100,3200,3300,3400,3500,3600,3700,3800,3900,4000,
3 4100,4200,4300),OPCODE
RETURN
This is not different from a case in C and the compiler generates very efficient code. Can be
abused of course for really hard to understand spaghetti code jumping forth and back all over
the place.