Page 1 of 4

oldie but goody

Posted: Tue Nov 05, 2019 4:59 am
by bob
I don't know if I have ever released this, but I was looking through old files and ran across a REALLY old version of my chess program. WAY before it had the "Cray" in its name. This is version 6.9, dated 1977, which sounds right. Right after the WCCC that year, I decided to get rid of the highly selective predecessor version and do something similar to Slate/Atkin to see what the exhaustive search noise was all about.

I don't think this will compile (it is old FORTRAN) because it was apparently OCR'ed from a listing. I have already seen some issues (OCR back in the 80's was highly inaccurate. But it does represent a predecessor of Cray Blitz, which preceded crafty... So if nothing else, it is "interesting". I do remember scanning it in via OCR and quickly decided it was not worth the headache...

If you have an interest, let me know and I can send a zip file.

Re: oldie but goody

Posted: Tue Nov 05, 2019 5:31 pm
by abulmo2
Yes, please publish it.
It would be interesting from an historical point of view.

Re: oldie but goody

Posted: Tue Nov 05, 2019 5:44 pm
by mhull
bob wrote: Tue Nov 05, 2019 4:59 am I don't know if I have ever released this, but I was looking through old files and ran across a REALLY old version of my chess program. WAY before it had the "Cray" in its name. This is version 6.9, dated 1977, which sounds right. Right after the WCCC that year, I decided to get rid of the highly selective predecessor version and do something similar to Slate/Atkin to see what the exhaustive search noise was all about.

I don't think this will compile (it is old FORTRAN) because it was apparently OCR'ed from a listing. I have already seen some issues (OCR back in the 80's was highly inaccurate. But it does represent a predecessor of Cray Blitz, which preceded crafty... So if nothing else, it is "interesting". I do remember scanning it in via OCR and quickly decided it was not worth the headache...

If you have an interest, let me know and I can send a zip file.
What platform was it running on in 1977?

For the tournament, a Xerox Sigma 9. It also ran on others. IBM. Amdahl. Univac. Nothing really architecture dependent back then. No parallel search for a few more months and access to a univac 1100 system with 2 processors.

Re: oldie but goody

Posted: Tue Nov 05, 2019 6:20 pm
by sarona
I would be interested, too, Dr. Hyatt.

I have one of Jim Ablett's Cray Blitz Windows compiles (running from the command prompt) from 2008. The included source was also written in Fortran. I assume this is your code as well.

Re: oldie but goody

Posted: Wed Nov 06, 2019 6:42 am
by bob
sarona wrote: Tue Nov 05, 2019 6:20 pm I would be interested, too, Dr. Hyatt.

I have one of Jim Ablett's Cray Blitz Windows compiles (running from the command prompt) from 2008. The included source was also written in Fortran. I assume this is your code as well.
Yes it was. But for the CB source it was NOT scanned in via OCR. I actually had that older version on a tape I found. It was not anywhere near the last (1994) version, but at least it was a working Fortran version that would compile and run.

Did you send me a message with your email? Matt Hull and one other did and I have sent copies to both. If you did not, drop me a message here and I'll be happy to send it to you. Here is something I am sending with all copies that go out:
bob wrote: I am attaching the source. It is REALLY problematic, in that lots of “1” (one) were changed to “l”. There were others, such as O (oh) vs 0 (zero). And others as well. the problem is FORTRAN is an old language that was weakly typed. So most of those errors will NOT show up with a compiler. Even with one that does a dependency graph at compile time to detect undefined variables. IE tempL = xx, temp1 = tempL +10, then use tempL (I capitalized the L to highlight it is different from the “1”. This kind of crap REALLY makes this hard to fix. About all I could do (I probably fixed a little bit of it before I gave up) is to actually read the code to figure out what it was trying to do, and looking for variables that end in an l (el) or a 1 (one) and fix them one at a time. Code is big enough to make this a huge pita…

Boy is this code old, dating back to 1977. In the middle of 1977 somewhere we had the second WCCC, right after that I started to work on this version. This was an early version of the exhaustive search program that replaced the previous 100,000 lines of crazily complex selective search.

Have fun. Or not. :)
So this is not a project that will be easy.

Back then, OCR sucked. Still has lots of issues even today.. The font used makes all the difference. Back then the font was anti-OCR to the extreme...

Re: oldie but goody

Posted: Wed Nov 06, 2019 8:02 am
by Deberger
It could be interesting to compare this with Sargon, 1978

I don't think Kathe/Dan were doing full-width back then. They were running on an 8-bit microprocessor (6502 I think). At some point they published a copy of Sargon in something like Byte Magazine. Do not remember when or what version however. I doubt it was their real version since they were actively selling the thing.

Re: oldie but goody

Posted: Wed Nov 06, 2019 8:48 pm
by mhull
bob wrote: Wed Nov 06, 2019 6:42 am
mhull wrote: Tue Nov 05, 2019 5:44 pm
bob wrote: Tue Nov 05, 2019 4:59 am I don't know if I have ever released this, but I was looking through old files and ran across a REALLY old version of my chess program. WAY before it had the "Cray" in its name. This is version 6.9, dated 1977, which sounds right. Right after the WCCC that year, I decided to get rid of the highly selective predecessor version and do something similar to Slate/Atkin to see what the exhaustive search noise was all about.

I don't think this will compile (it is old FORTRAN) because it was apparently OCR'ed from a listing. I have already seen some issues (OCR back in the 80's was highly inaccurate. But it does represent a predecessor of Cray Blitz, which preceded crafty... So if nothing else, it is "interesting". I do remember scanning it in via OCR and quickly decided it was not worth the headache...

If you have an interest, let me know and I can send a zip file.
What platform was it running on in 1977?

For the tournament, a Xerox Sigma 9. It also ran on others. IBM. Amdahl. Univac. Nothing really architecture dependent back then. No parallel search for a few more months and access to a univac 1100 system with 2 processors.
There is a Sigma 9 at the Living Computer Museum. The plaque gives an indication of computing power at ~600 KIPS (0.6 MIPS) which compares with an IBM 370 Model 158 circa 1972 (640 KIPS).

Re: oldie but goody

Posted: Wed Nov 06, 2019 8:51 pm
by bob
I think that number is wrong. Sounds more like a sigma 6/7. IIRC, the sigma 9 had a .73 microsecond clock, which would translate to about 1.3MIPS. If every instruction referenced memory it could not run that fast, but it was pretty fast for the day. Today my Apple watch has more computing power. :)

Re: oldie but goody

Posted: Wed Nov 06, 2019 10:19 pm
by mhull
bob wrote: Wed Nov 06, 2019 8:51 pm I think that number is wrong. Sounds more like a sigma 6/7. IIRC, the sigma 9 had a .73 microsecond clock, which would translate to about 1.3MIPS. If every instruction referenced memory it could not run that fast, but it was pretty fast for the day. Today my Apple watch has more computing power. :)
The computer museum plaque says that their Sigma 9 clock runs at 900 nanoseconds (.9 microseconds). One supposes also that the instructions per second were highly workload dependent.

Re: oldie but goody

Posted: Wed Nov 06, 2019 11:40 pm
by bob
They have the number wrong. I have a couple of boxes of junk I kept (for unknown reasons). I actually have the sigma 9 reference manual. On page 167 it says that the "add immediate" instruction (add the 17 bit address field directly to the indicated register destination (R0 - R15). I did not really remember, but there were 3 versions of this machine. The sigma-9, sigma-9 model 2 and sigma-9 model 3. The sigma-9 and sigma-9 model 3 have a clock cycle time of .73 microseconds. The Model 2 has a cycle time of 1.1 microseconds. Don't know a thing about that middle one. There are a bunch of .73 microsecond instructions, and some that are much slower. IE floating multiply could hit 10uSec if (again) memory serves me correctly. This was OBVIOUSLY a long time ago. :) by 81 or so the CS department had acquired our on VAX 11/780. BTW I think the Wiki is wrong there. The VAX 11/780 used the power-hungry heat-producing ECL design (Emitter Coupled Logic). That "minicomputer" was 4 cabinets wide and 6' high. Did have a nice feature that allowed user micro-programming. I quickly added a couple of chess-specific instructions to really speed up move generation and make/unmake. Not sure what else.

I just did a quick search and actually found the sigma-9 hardware reference manual online at bitsavers.org. Was not a bad machine in its day. When we bought the thing, IBM competed bid-wise offering a /360 model 155. It was both a little slower AND about 3x the price. For I/O the IBM was MUCH slower.

The wiki references a 7202 RAD (rapid access device, or head-per-track disc.) It was actually a 7212 as we had one. We originally bought the 7232 which was significantly cheaper (and slower). As load increased we went to the 7212.

For a history lesson. :)