Welcome  To  StrateGems - The  Official  Publication  Of  The  Good  Companions !

WinChloe
Alybadix
Popeye

Chess Problem Terms
Two Movers
Three Movers
Helpmates
Proof Games
Series-Movers & Stalemates
Swapping Kings
Problem Solving Software

Home
GC Fonts
Subscription Info
Beginner's Corner
Book Sales
Contact Us
Editors & Staff
Awards Status
SG Informal Tourneys
Errata
Chess Problem Links
About Our Website
SiteMap
Welcome

Popeye
 
bullet Popeye Home Page
bullet Popeye Help Page
bullet Popeye Help Page from PCCC
bullet Popeye Discussion Board on the Chess Problem Discussion Board
 
FEN: Forsythe - Edwards Notation

Popeye for Dummies by Dan Meinking

The following instructions will walk you the steps necessary to install and run Popeye. As of this writing, the latest Popeye version is 3.77. Our notes here will assume that, though you should check to see if a more current version is available when using these instructions.

Installing Popeye:

1. Create a folder c:\popeye.
2. Go to the Popeye home page (see above link).
3. Download one of the zipped files (*.zip or *.tar.gz).
4. Extract the zipped file to c:\popeye. You may require
WinZip to extract.

NOTE: When you extract (for example) Popeye version 3.77, a sub-folder \py-3.77 will be created. Thus, the full pathname will now be c:\popeye\py-3.77. Remember this!

5. Go to the Popeye home page again.
6. Click on the "binary" link.
7. Select the folder for the latest Popeye version.
8. Download an executable (pywin32.exe, pywin98.exe, or pydos32.exe) to the Popeye folder. Make sure you specify the full pathname as described above.
9. Click My Computer, navigate to your Popeye folder, and rename the executable to py.exe.

You now have everything needed to run the latest Popeye!

Running Popeye from Windows: [pywin32.exe or pywin98.exe required]

1. Click My Computer and navigate to the Popeye folder.
2. Double-click to executable file. A DOS-like window will open.
3. Enter the command "
beginproblem" (or just "begi").
4. Enter other commands and parameters according to the documentation below.
5. Strongly recommended: specify "
opti movenum maxsol 99 beep 3" for any type of problem.
6. Strongly recommended: specify "
opti movenum maxsol 99 beep 3 intel" for any h#n, h=n, ser-h#n or ser-h=n problem.
7. Be sure to specify a "
protocol" (or "prot") command to capture Popeye's output.
8. When finished, enter "
endproblem" (or just "endp"); Popeye will begin solving.

Running Popeye from DOS (or Command Prompt):

1. Create an empty text file:
a. Enter "
begi" on the first line.
b. Enter other commands and parameters according to the documentation below.
c. Strongly recommended: specify "
opti movenum maxsol 99 beep 3" for any type of problem.
d. Strongly recommended: specify "
opti movenum maxsol 99 beep 3 intel" for any h#n, h=n, ser-h#n or ser-h=n problem.
e. Specify a "
prot" command if you want Popeye's output to go to a different file. Otherwise, output will go to the input file.
f. Enter the "
endp" command at the end.

2. Save your file in your Popeye folder (eg. c:\popeye\py-3.77). Let's call the file infile (no file extension) for this test.
3. Exit to DOS (eg. click Start, Programs, Accessories, Command Prompt).
4. Type: cd\
5. Type: cd popeye\py-3.77
6. To run Popeye with default RAM settings (2Mb), type: py infile
7. Let's say you want Popeye to use 100Mb of RAM; type: py -maxmem 100M infile
8. After Popeye runs, check the file you specified in the "
prot" for test results.

Type edit <filename> on the DOS (or Command) Prompt to view your output file, or navigate to that file via Windows (My Computer, etc.). If you need to re-test, type "edit infile" at the DOS (or Command) Prompt; edit the file as needed; click File, Save; then File, Exit. Now run Popeye per step 6 or 7 above. Check the output again. Repeat the above steps as necessary.

If you need any further help installing or running Popeye, please contact Dan Meinking. If you have questions about Popeye's documentation below, please contact the programmers as specified at the bottom.

The documentation below is taken (nearly) verbatim from the py-engl.doc file which accompanied Popeye version 3.77. Only minor changes were made to the original text.

Description of Popeye 3.77

Some remarks on the distribution of Popeye:

Popeye is free software. It means that everybody may get the source of Popeye. We believe that this software should be public und constitutes not our own personal property - even we have invested a lot of work. This work cannot be waged by money, and also we devote our time to Popeye not to earn money. Therefore we distribute Popeye for refunding our costs of material and shipping. It means, if someone gets a floppy from us, he should return a floppy. It's also possible to send us stamped return envelope with a floppy, we return the floppy with Popeye on it. We do not mind if someone redistributes Popeye. The only thing we want to obeye is, that he distributes it as he gets it - meaning all the files listed below.

py-engl.txt: The file you are reading now
py-deut.txt: German version of this file
py-fran.txt: French version of this file
license.txt: Popeye License.
history.txt: The developpers describe here which bugs have been fixed and what's new in Popeye.
readme.txt: Short hints for those, who want to recompile Popeye
pydos32.exe: Executable file for MS-DOS (32 Bit, 80386)
pywin32.exe: Executable file for MS-Windows-NT/-2000/-XP
pywin98.exe: Executable file for MS-Windows-95/-98/-ME
py-*.str: These files contain the language dependant text for Popeye. They must reside in the same directory as the executable.

List of source files:

makefile.unx: Makefile for UNIX-systems and friends
py.h: Header-file for all C-files.
pydata.h: All global data are define here.
pydata.c: For the generation of pydata.o.
py1.c, py2.c, py3.c py4.c (+py4.h) py5.c py6.c:

C-Source of Popeye.

pyhash.c: dynamic hashing functions.
dht: package supporting "dynamic hashing".
pyint.c: Procedures for intelligent mode calculation.
pyio.c: Everything concerning I/O is coded here.
pymsg.c: All procedures for output of messages.
pylang.c Language dependent procedures.
pyproof.c: Procedures for shortest proofgame calculation.
pysignal.c: All procedures for UNIX signal handling.
pytime.c: All procedures for measuring time.
pymac.h: Segment specification of Macintosh's MPW
pymsg.h: Defines for the messages of Popeye.
pyproc.h: Definitions of the procedures.
todef.awk: awk-script to convert enumerations in py.h to defines.
toenum.awk: awk-script to convert defines in py.h to enumerations.
py-*.msg: The language dependent files for Popeye-messages.
pie*.dat: The files for LaTeX output of the pieces which Popeye knows.
genpystr.c: Source of the program which generates the py-*.str from py-*.msg.

BEISPIEL: Directory which contains example-files in German language and their results.
DHT: Directory containing C-files for the dynamic hashing package.
LATEX: Directory containing LaTeX files.

Starting Popeye:

Change the name of your preferred executable to py.exe.

To operate it from the terminal: py
To solve problems recorded in file XX: py XX or py < XX

Commandl ine parameters:

-maxmem: You can provide for Popeye for example 4096 kilobyte (or 4 megabye) of memory with py -maxmem 4096 XX or py -maxmem 4M XX to make calculation of problems faster.

Stopping Popeye: press CTRL + C key combination

Note: For the Popeye 'batch' commands below, parameters are in blue type and keywords are in bold red type.

Description of the input language of Popeye:

The input to Popeye is not case sensitive. Every input to Popeye starts with the reserved word `Begin Problem'. After entering this command to Popeye, following commands may be used:

remark, author, origin, title, protocol, condition, option, stipulation, Forsythe, pieces, twin

The order of these commands is free, and can also occur more times. The last of the commands in the second line is relevant. All of these commands expect further parameters. Lets start with the simpler commands:

- remark: this keyword introduces a comment. Everything up to the end of the line will be ignored and has no further effects.
-
author: The parameter to this command is the author of the problem. All Text up to end of line will be put above the diagram in the output. This input is completely optional and has no effect to the other capabilities of the program. All the input of multiple author commands will be placed on the output.
-
origin: All the same as the author command.
-
title: All the same as the author command.
-
protocol: The parameter to his command is interpreted as filename, and all further output of Popeye on the screen is also placed in the given file. If the file exists already, the output of Popeye is appended to the file. The file will not be deleted.
-
condition: All the conditions necessary for the problem, separated by blanks or new line, should be given to this command. Through combination of single conditions you can get other already existing conditions; for example: Circe and Immunchess results in StrictCirce

The following conditions are implemented:

RexInclusiv
Circe
MirrorCirce
Madrasi
Volage
Hypervolage
BichromChess
MonochromChess
GridChess
KoeKo
BlackEdgemover
WhiteEdgemover
Leofamily
ChineseChess
Patrouille
PWC
NoCapture
ImmunChess
MirrorImmunChess
ContactGridChess
Imitator
CavalierMajeur
HaanerChess
CouscousCirce
ChameleonCirce
EquipollentsCirce
FileCirce
Sentinelles
BlackMaximummer
WhiteMaximummer
BlackMinimummer
WhiteMinimummer
MagicSquares
DiagramCirce
Tibet
DoubleTibet
Hole (= a field where you cannot move to)
BlackMustCapture
WhiteMustCapture
TransmutedKings
BlackFollowMyLeader
WhiteFollowMyLeader
DuellistChess
ParrainCirce
SymmetryCirce
NoIProm (No Promotion to Imitator allowed)
VogtlaenderChess
EinsteinChess
Bicolores
NewKoeko
CirceClone
AntiCirce
MirrorFileCirce
AntipodenCirce
MirrorCirceClone
MirrorAntiCirce
DiagramAntiCirce
FileAntiCirce
SymmetryAntiCirce
MirrorAntiCirce
AntipodenAntiCirce
EquipollentsAntiCirce
FileImmunChess
DiagramImmunChess
MirrorFileImmunChess
SymmetryImmunChess
AntipodenImmunChess
EquipollentsImmunChess
ReversalEinsteinChess
SuperCirce
RelegationChess
NorskSjakk
TraitorChess
AndernachChess
BlackForcedSquare
WhiteForcedSquare
BlackConsequentForcedSquare
WhiteConsequentForcedSquare
ReflectiveKings
ChameleonChess
FunctionaryChess
GlasgowChess
AntiAndernachChess
FrischaufCirce
VerticalMirrorCirce
Isardam
ChecklessChess
DiametralCirce
PromOnly
ExclusiveChess
Marscirce
MarsMirrorCirce
PhantomChess
WhiteTransmutedKing
BlackTransmutedKing
WhiteReflectiveKing
BlackReflectiveKing
AntiEinsteinChess
MirrorCouscousCirce
BlackRoyalSquare
WhiteRoyalSquare
CirceAssassin
PlusChess
BrunnerChess
CentralChess
ExtinctionChess
RepublicanChess
ActuatedRevolvingBoard
MessignyChess
Woozles
BiWoozles
Heffalumps
BiHeffalumps
WhitePromSquares
BlackPromSquares
NoWhitePromotion
NoBlackPromotion
EiffelChess
ActuatedRevolvingCentre
Maximummer
UltraSchachZwang
WhiteUltraSchachZwang
BlackUltraSchachZwang
ShieldedKings
StingChess
NoWhiteCapture
NoBlackCapture
AprilChess
AlphabeticChess
LineChameleonChess
CirceTurncoats
CirceDoubleAgents
AMU
SingleBox

After the conditions Imitator, MagicField, Hole, FrischaufCirce, WhitePromSquares, BlackPromSquares or one of the ForcedSquares, list the fields on which the imitators are to be placed, where the special fields are located, where Promoted pieces (FrischaufCirce) are located, or where the white or black promotion squares are located.

The condition PromOnly must be followed by a list of pieces, separated through blanks. Promotion is only allowed for those pieces. The list should be given in the same way as with the command pieces.

The condition ChameleonCirce can be followed by a list of pieces, separated by blanks. The list determines how the pieces change before rebirth. (Examples: "ChameleonCirce S B R Q S" is ordinary Chameleon-Circe and equivalent to "ChameleonCirce","ChameleonCirce S Q R B S" gives reverse ChameleonCirce.)

After some of the Circe, Immun, Madrasi or Phantomchess conditions you can enter RexInclusive. After all Anticirce conditions "Cheylan" or "Calvet" can be entered - according to the type desired.

After the Isardam condition "TypeB" can be entered.
After the SingleBox condition "Type1", "Type2" or "Type3" can be entered.
After the Sentinelles condition "PionAdvers", "PionNeutre", "ParaSentinelles", or Berolina can be entered, and also WhiteMaximum, BlackMaximum or TotalMaximum followed by a number.

After MessignyChess, (Bi)Woozles and (Bi)Heffalumps you can enter RexExclusive.

- option: Everything which should be in effect should be given here as blank seperated list. The following is recognized:

Try calculate if a move is a try.
Defence this option is followed by a number indicating the number of defences which should be taken into consideration. For instance Defence 1 all real tries are calculated.
SetPlay calculate setplay.
Threat for moremovers: This option must be followed by an integer. The opposit party has defended when there is no threat in less or equal this number of moves.
WhiteToPlay white starts moving in helpplay.
Variation show threats and variations.
MoveNumbers Movenumber, already calculated move and cumulated
solving time on output.
StartMoveNumber This option is followed by the Movenumber Popeye was interrupted at.
NoWk without white king
NoBk without black king
Duplex calculate stipulation for both sides
NoThreat calculate variations without calculating threats
MaxSolutions This option must be followed by an integer. Popeye stops calculating if this number of solutions are reached.
MaxFlightsquares for moremovers: This option must be followed by an integer. The opposite party has defended when the number of flightsquares for it's king are more or equal this number.
EnPassant Must be followed by at most two fields. A possible enpassant-key to this field(s) is calculated.
NoBoard The chessboard is not printed to screen or into file.
NoShortVariations Short variations are suppressed on output.
HalfDuplex calculate stipulation only for the opponent side.
PostKeyPlay The position entered is considered to be the position after the key. Just the solution play is analysed.
NonTrivial m n A special option to solve/cook/test long self and (semi)reflex problems. The second argument n determines which black moves are considered to be trivial - a move that can be met by a s#n (or r=n resp.). In long problems (more than n moves) black has at every stage at least one nontrivial move. ie. a move that does not lead to a s#n. The first argument m determines how many additional nontrivial moves can be granted to black by white during the whole solving procedure. Example: nontr 0 1. This is the most restrictive option. White forced to play moves that leave black with only one move not met by a s#1.
Intelligent intelligent (quick) solving of helpmate-moremovers. After the intelligent option, the maximum number of solutions per mating position can be given. MaxTime This option must be followed by an integer. Popeye stops calculating if this number of seconds solving time are reached.
NoCastling This option must be followed by the fields of those pieces, that cannot castle anymore in the diagram position.
Quodlibet In s# or r# also direct mates are a solution.
StopOnShortSolutions Calculation is terminated after detecting of short solutions.
Beep This option can be followed by an integer. Each time Popeye has found a solution it beeps a number of times.

- stipulation: Popeye knows the following stipulations:

any useful combination of

{ #= }
{ != }
{ 00 }
{ % }
{ ~ }
{ ep }
{ # }
{ SER- } { H } { = }
{ m-> } + { EXACT-} + { SEMI- } + { S } + { == } + n
{ RECI- } { R } { + }
{ Zxy }
{ x }
{ ## }
{ ##! }
{ ct }
{ <> }
{ ctr }
{ <>r }
{ dia } + n{.5}
{ SER- } + { dia } + n
{ SER-} + { a=>b } + n (m, n are the number of moves)

for example:

#3 mate in three moves
HZg74 help-targetfield-g7 in 4 moves
S+2 self-check in 2 moves
R==3 reflex-doublestalemate in 3 moves
HS#3 helpselfmate in 3 moves (= help forced selfmate)
SER-+7 series-check in 7 movesn
SEMI-R+4 semi-reflex-check in 4 moves
x3 Capture in 3 moves
RECI-H#2 reciprocal helpmate in 2 (= Grazer helpmate)
SER-%4 series-Win_a_Piece in 4 moves
H##!4 help-"gegenmatt" in 4 moves
SER-H##3 series-help-"beidmatt" in 3 moves
2->ser-h#4 white makes 2 moves, then ser-h#4
h003 help-castling in 3 moves
dia6.5 Shortest Proofgame in 13 halfmoves (after the seventh move of white)
ser-dia9 Series-Proofgame in 9 moves
reci-h(=)#4 helpalternative(stale)mate in 4 moves
ser-!=7 Series-AutoStalemate in 7 moves
ser-ct10
Series-direct circuit (switchback) in 10 moves (of W piece)
h<>3 help exchange place in 3 moves (Bl helps W swap 2 pieces from diagram)
ser-sctr2 series self circuit by rebirth in 2 moves (W forces Bl to complete switchback of a W piece)
ser-h<>r5 series help exchange place by rebirth in 5 moves (Bl helps W complete by rebirth the exchange of two Bl pieces)
#=2 mate or stalemate in 2 moves
h~1 any helpmove

SEMI is valid only in combination with direct reflex-play. All these stipulations must be followed by a number giving the count of moves.

- forsyth: With this command you can enter the position in forsyth notation.

All these commands up to now are very easy to use. A little bit more elaborate is the command:

- pieces: This command specifies all the pieces belonging to the problem. After this keyword, the color of the following pieces must be given:

This is one of:
White
Black
Neutral

After the color specification:
Chameleon
Jigger
Kamikaze
Paralysing
Royal
Volage
Functionary
HalfNeutral
HurdleColourChanging
(only for hoppers !)

may be given. All the pieces given after this will have these attributes. After this specification follows the list of pieces: First the name of the piece followed by the list of fields the piece should be placed on. By giving a new color specifiation pieces of another color may be entered without repeating the pieces command. Popeye knows the following pieces:

15 1,5-leaper
16
1,6-leaper
24
2,4-leaper
25
2,5-leaper
35
3,5-leaper
36
3,6-leaper
37
3,7-leaper
ag
Andernach grasshopper
al
alfil
am
amazon
an
antelope
ao
maorider
ar
archbishop
b
bishop
be
bishop eagle
bh
bishop hopper
bi
bison 1,3+2,3 leaper
bk
bouncy knight
bl
bishop-lion
bm
bishop moose
bo
bob
bp
berolina pawn
br
bishop/rook hunter
bs
berolina superpawn
bt
boyscout
bu
root-25-leaper (bucephale)
bw
bishop sparrow
c
cardinal
ca
camel
cg
contra grashopper
ch
camelrider hopper
cr
camelrider
ct
CAT (cavalier trojan)
cy
charybdis
da
dabbabba
dg
doublegrashopper
do
dolphin grashopper + kangaroo
dr
dragon
ds
("Diagonalspiralspringer")
du
dummy
ea
eagle
eh
edgehog
ek
erlking
em
empress
eq
equihopper
et
elephant 0,1+1,1+1,2 rider
f
friend
fe
fers
fr
fersrider like bishop, but different rebirthsquare
g
grashopper
g2
grashopper-2
g3
grashopper-3
gh
gnurider hopper
gi
giraffe
gl
gral alfil + rookhopper
gn
gnu
gr
gnurider
gt
girlscout
ha
hamster
k
king
ka
kangaroo
kh
kinghopper
l
locust
lb
bishop locust
le
leo
li
lion
ln
nightrider locust
lr
rook locust
m
moose
ma
mao
mg
marguerite g+sw+ea+m+ha
ml
maorider lion
mm
moarider lion
mo
moa
n
nightrider
na
nao chinese nightrider
nd
nereide
ne
nonstop equihopper
nh
nightrider hopper
nl
nightrider lion
o
orphan
oa
moarider
ok
okapi knight + zebra
or
Orix English equihopper on queen lines
p
pawn
pa
pao
pr
princess
q
queen
r
rook
ra
rao chinese rose
rb
reflecting bishop
re
rook eagle
rf
root-50-leaper
rh
rook hopper
rl
rook-lion
rm
rook moose
rn
rose-lion
rp
rose-hopper
ro
rose
rr
rook/bishop hunter
rt
rabbit
rw
rook sparrow
s
knight
si
sirene
sk
skylla
so
scorpion
sp
superpawn
sq
squirrel
ss
("Spiralspringer")
sw
sparrow
tr
triton
uu
ubiubi
va
vao
wa
waran
we
wazir
wr
wazirrider like rook, but different rebirthsquare
z
zebra
zh
zebrarider hopper
zr
zebrarider

- twin: Solving/testing of positions obtained by small changes of the initial position. The following specifications are supported:

Stipulation ...: The stipulation is changed. See the repective basic command.
Condition ...: Change of fairy conditions. The old conditions are subsituted by those put in.
Move <square1> <square2>: Move the piece from square1 to square2. A piece accidentally standing on square2 will be removed. Example: twin move a3 b4.
Exchange <square1> <square2>: The pieces on <square1> and <square2> exchange places. Example: twin exchange a3 b4.
Remove <square>: The piece located on the square specified is removed. Example: twin remove e5.
Substitute <piece1> <piece2>: All pieces of type 1 are replaced by pieces of type 2. Colour and further piece specification (like paralysing etc.) are not effected. Example: twin substitute R B. All rooks are replaced by bishops.
Add <colour> <piecespecs> <type><fieldlist>: Adding pieces. Example: twin add black para NHa6 - a black paralysing NightriderHopper is added on a6. See the basic command "pieces".
Rotate n: Turns the board by n degrees to the left (n=90, 180, 270). Example: twin rotate 180. Mirror a1<-->h1: Mirrors the position on the vertical middle line.
Mirror a1<-->a8: Mirrors the position on the horizontal middle line.
Mirror a1<-->h8: Mirrors the position on the diagonal a8-h1.
Mirror h1<-->a8: Mirrors the position on the diagonal a1-h8. So, not the mirror line is given, but square into which a1 (or h1) is turned into.
Shift <square1> <square2>: Shift the whole position into the direction determined by the two squares entered. Example: twin shift a1 a2 - all pieces are moved one square up.
PolishType: All pieces change colour.

More than one change may be specified, for example twin rem e7 add white qe8. As you can see the twinning commands can abreviated. By default the changes refer to the position initially set. Alternatively the changes can be applied to the position solved most recently. Just enter "continued" (or "cont") immediately after "twin". Example twin cont rem a1.

ZeroPosition: This command can be used alternatively to the command "twin". It indicates that the initial position is not for solving. The command must be followed by the changes for the first position to be solved. Example: zero move b4 d5 twin move c5 b5.

When all data have been entered to describe completely the problem, the solving may be started by giving the keyword `endproblem' to Popeye. Immediately after reading this, provided no input errors were discovered, Popeye starts to solve the problem. Here comes a sample:

BeginProblem
Author
Unknown
Origin
Also Unknown
Stipulation
#2
Pieces
White Ka3 Ra8
Black Kb1

Option
MoveNumbers Try Set Variation
EndProblem

This input seems long and cumbersome. But Popeye recognizes the keywords as long as the shortage is unique. The above input may also be written like this:

Begi
Auth
Unknown
Orig
Also Unkown
Stip
#2
Piec
Whit Ka3 Ra8
Blac Kb1

Opti
Move Try Set Vari
Endp


In the future the minimum length of unique shortages changes, when Popeye's capabilities are increased. But we try to keep all keywords uniq within the first four characters. If they are now uniq with less than four, its not guaranteed for the future.

If there are more problems to be solved in one run, you can replace the `EndProblem' directive with `NextProblem'. After this, Popeye expects an new problem specification, after he has solved the previous one. The last problem specification should be finished with `EndProblem'.

Special things depending on your operating system:

UNIX, SINIX, XENIX, ULTRIX, MUNIX, SUNOS, SOLARIS, AIX, HPUX, IRIX, LINUX:
1) Maximum depth of calculation: 999 half-moves.
2) Solving can be interrupted anytime with the CTRL-C key.

Windows-95/-98/-ME:
1) Maximum depth of calculation: 699 half-moves.
2) Solving can be interrupted anytime with the CTRL-C key.
3) Maximum amount of usable memory: 768 MB

Windows-NT/-2000/-XP: MS-DOS (32 Bit), DR-DOS (32 Bit):
1) Maximum depth of calculation: 699 half-moves.
2) Solving can be interrupted anytime with the CTRL-C key.

MVS, ATARI, macintosh: will EVENTUALLY be supported by:

MVS: Harald Denker
ATARI: Harald Denker
macintosh: Stefan Brunzen

MS-DOS (16 Bit), DR-DOS (16 Bit):

BS2000:
OS/2:
VMS:

Not supported any more ...

Elmar Bartel, Norbert Geissler, Torsten Linss, Stephen Emmerson -- May 2003

If you have any suggestions, any errors you know of, etc., you are welcome to contact us. You will find our address in the files history.txt or readme.txt.

 

 

Copyright ©  StrateGems  |   Contact

Designed & Hosted by Reb's Web Design