A short history of POPEYE
by Thomas Brand
To describe the history of POPEYE we have to go back for more than 25 years, back to the year 1986. At that time I was section editor at Die Schwalbe for selfmate and helpmate, and so I was interested in computer supported testing of original problems sent for publication.
At that time there were only two ways to test help- and selfmates and some types of problems with fairy conditions or pieces: This was the commercial program ‘Alibadix’ by Ilka Blom, running on small computers like Commodore and ‘Ollie’ by Thomas Kühn, based on dedicated hardware (!) with hexadecimal keyboard and a funny thermo paper printing device for user interface to enter problems and display solution and cooks.
Since I had a ‘modern’ IBM XT compatible computer at home (6 MHz Intel 8086 processor, 20 MB hard disk, green 25×80 character monitor, assembles by myself), I had no chance to use Alibadix, and Ollie support was not as simple as it sounds today: Solving time for complex H#2 was up to one hour, testing H#3 was virtually impossible. And since Ollie was unique I had to share computing time (and Thomas’ support) with other people. So I tested original problems for Die Schwalbe by myself and only sent the best ones I was not able to cook to Thomas and his iron friend.
So I was very happy when I heard about POPEYE, a program written by Phillipe Schoebelen of France for IBM PCs: Maybe that was the long awaited support for Die Schwalbe, for me?
I contacted Phillipe (by standard letter, of course, that was the time before email!), and very quickly, about one week later, I received a big envelope from France containing not only a kind answer, but also a floppy disk (5.25 inch for up to 360 kilobyte – that was the standard at that time) containing the POPEYE program file and a short french manual. And it worked!!
After a while of using and testing I had some ideas on improving the program, and I got a very surprising answer from Phillipe: He told me that he had stopped POPEYE development, and he sent the source file and allowed using it as public domain software.
This resulted in two immediate actions: I wrote a short article about POPEYE in Die Schwalbe 104 (April 1987, pp.215-216 “Popeye, eine eierlegende Wollmilchsau?” [“Popeye, a Swiss Army knife?”]) with the offer to distibute the program to interested problemists, if they sent a formatted floppy disk to me (Remember: that was a time before private email, private internet access!), and some 30 people all over the world asked for POPEYE.
The second action was still more important: At Andernach meeting 1987, if I remember correctly, I talked to Elmar Bartel and Norbert Geissler about POPEYE, since I had no compiler for translating POPEYE to a new executable program after some bug fixes I had done: POPEYE had been written in a Pascal dialect called ‘COMAL’. They took the source file and with computer support they translated it to ‘C’ programming language.
After a lot of manual fine tuning of the POPEYE source they succeded in having again a running program: maintainable, quite well-documented and faster than the original COMAL implementation. This was the start for the ongoing enhancements of POPEYE.
This went (and still goes!) to different directions:
- Bug fixing, of course.
- Enhancement by adding further conditions, pieces, and stipulatons.
- Porting to different platforms and operating systems: There were ports to OS/2, to VAX VMS, IBM MVS, SIEMENS BS2000 hosts; today officially Windows, MacOS and Linux/Unix are supported.
- Enhancing solving speed by different kinds of optimization: implemention of hashing and “intelligent mode” for longer problems.
I had just mentioned Phillipe, Elmar and Norbert as the most important early POPEYE developers; also Torsten Linß contributed a lot. We should not forget support by Stefan Hoening, Stefan Brunzen, Harald Denker and Thomas Bark, while today (i.e. since July 2007) the POPEYE project is lead by Thomas Maeder with major support by Stephen Emmerson.
When might you expect a new POPEYE version? Best chance is from mid of May to
beginning of June – at Andernach fairy chess meeting time! Quite comparable with the time 25 years ago – with one difference: Now POPEYE is not distributed via disk exchange but by downloading it from the internet.
Popeye is indeed a remarkable example of open source and collaborated software development. I can still remember testing my madrasi #4 of the 4th WCCT on it, sometime in 1989! It didn’t support variations for #4 in that version. It only gave the key! I then fed in the separate positions for each variation to check for possible duals.
Thank you Popeye Team ! Fairy chess composers owe a lot to you all.
I like Popeye so much!
I written a graphical interface for popeye (Scacchi Painter 2) but i have some question:
Is it possible to transform Popeye from a console program to an API dll? (like popeye.so under linux or popeye.dll under windows) i don’t know C language as well as C# then i am not able to make a c library for it.
If this is possible i can produce a Mobile app for popeye to work in Android tablets and phones (like mine HTC One X)!
Thanks a lot!
I’ve wanted to obtain the Original Source code for Popeye in Pascal ( Comal). Stephen Emmerson tried to contact Phillipe Schnobelen .. without success. Can anyone out there help ?
I have “Version du 25 Jul 84”. Thomas Maeder may have an entire history of the program.
By the way, there was one more chess program capable of solving selfmates and helpmates (up to 7 moves) in the mid-1980s: Colossus Chess. It was developed by Martin Bryant and was published starting 1983 for a large number of home computer platforms (8-bit and later 16-bit micros) – I used in on a Sinclair ZX Spectrum. Colossus Chess 4 (from 1986) can still be downloaded from World of Spectrum (as either TZX and TAP tape images) and used via emulators! 🙂
Interesting! I was fiddling with a ZX Spectrum clone for a few years. Later maintained the nostalgia with emulators on the PC and now on my Android phone. If this program can run on an Android based emulator, it could be perhaps the only problem solving app on the Android platform! Will try it out.
Sorry this is 4 years late, Adrian ! Is “Version du 25 Jul 84” something you could E-Mail to me ?
Sure, write me at a d r i a n s t o r i AT g m a i l DOT c o m.
I see some French characters are screwed up in the .PAS source (comments, message strings), but the code itself should be OK. By the way, this version doesn’t (yet) support castlings, nor e.p. captures! 🙂
(Did you try to contact Thomas Maeder? I got this version from him at the time. He might have kept older ones too.)
Correction: I got the .exe from Thomas (I can’t run it on any computer right now), the source code (which may not be in sync with this .exe) from Philippe at one time or another…
Another correction: those characters do show OK if you e.g., type the source in an MS-DOS prompt window:
C:\old-popeye> type popeye.pas | more
They just show badly in my editor (it’s a matter of incompatible code pages).
There was also a solving program in the early 80th of the last century, written by Norman Macleod in Assembler for his Sinclair QL home computer, later translated by him to “C”.
Later on he developed a program to “compose” direct moremovers with 3 or 4 men, there exists a feenschach article by Norman on this program, but I don’t remember the correct source.
For more details see John Rice’s book “The Chessboard Adventures of Norman Macleod”
Who will write a brief history of problem chess programs?
I also recall a 1980s solving program by Ofer Comay, which allowed one to define new pieces by combining the movements of other pieces.
I wrote my own program in the late 1970s (in assembler for Data General’s Nova minicomputer), then rewrote it in early 1980s in Intel’s PL/M + 8086 assembler sections optimized for speed , then rewrote it again in C in the 1990s (for orphans, after discussions with DLBrown), and finally rewrote it in Java in the 2000s. It kept me busy now and then…
yet another little note to chessproblem programs –>
still one more note :
already ar the end of the seventieth
I used the program “Challenger 10” for
solving some simple orthodox 2-movers,
but, sorry, I don’t who the author of this
program wa and when he did it.
Chess Challenger: https://chessprogramming.wikispaces.com/Chess+Challenger
Fidelity Chess Challenger 10 (1978): http://www.schach-computer.info/wiki/index.php/Fidelity_Chess_Challenger_10
Impressive (beyond the price), is that the whole RAM is 512 bytes, and the program fits comfortably inside 4KB of ROM. (Not sure it’s possible nowadays to display “Hello, world!” with such hardware…)
…und jetzt noch zwei Literaturhinweise:
Verzeichnis aller Hilfsmattaufgaben mit dem Material König und Springer gegen König und Springer:
feenschach Sonderdruck März 1975
PS:D.Relp =Pseudonym des Dr.Helmut Mertes
Ergebnisse einer vollständigen Analyse von Schachendspielen König und Turm gegen König-König und Turm gegen König und Läufer:
Institut für Mathematik und Informatik Technische Universität München, 1978