Alybadix chess solving program

-Solving program (file AP.EXE) is programmed totally in assembler (machine language) for
 maximal solving power, programmer Ilkka Blom.
-The today version is the result of  25 years continuous developing work
 (the first version 1980 worked on Apple II micro, 32 kB, 1 MHz).
-Alybadix works in protected mode and is thus compatible with DOS and Windows 95/98/ME/NT/2000/XP.
-Solving under DOS operating system is possible on Windows machines also. See chapter Alybadix and DOS.
-All free memory can be reserved for the position tree (hash table). See chapter Alybadix and Hash.

-Solving program includes built-in Printbadix and Figbadix
-Two solving 'engines' for Non-Fairy problems (quick) and Fairy problems (slower, called Fairybadix).
 The user can switch between these engines quickly without missing the current chess position.

-Fairybadix 2005 understands 222 different pieces, which can be white or black or neutral.
-Many accelerating options available for solving  long problems.
-Very quick solving (see examples). For instance, direct mates up to 9-10 moves and selfmates up to 7-8 moves
 can be tested completely (100%, C+) in practice (within some hours).
 Most longer problems can be solved quickly with help of the powerful accelerating options.

-Maximum length for a chess problem is 252 plies (half-moves).
-Accepts max 64 simultaneous pieces on the chessboard (a piece on every square).
-Solves Direct- (#), Self- (s#), Reflex- (r#), Help- (h#), Helpself (hs#), Series- (sz#), Seriesself- (ss#),
 Seriesreflex- (sr#) and Serieshelp- (sh#) problems (mates, stalemates and doublestalemates).

1. Non-Fairy and Fairybadix
2. Fairybadix
3. Alybadix and DOS
4. Alybadix and Hash

1. Non-Fairy and Fairybadix

There are 9 main program genres, which are described in the table below.
The red-colored options were added in 2004/2005 versions.

                                                            Max/ Mod/                                                          f/x/   Threat/Key/
Genre            Abbr   Circe Min  Ide Int Q w+ b+ wC+ bC+ wC- bC- y/z   Try/Dualfr
Matebadix        d        x    x    x   x  x x  -   x   -   x   -   x       x
Sidebadix        d        x    x    x   x  x x  -   x   -   x   -   x       x
Selfbadix        s        x    x    -   x  x x  -   x   -   x   -   x       x
Reflexbadix      r,semr   x    x    -   x  x x  -   x   -   x   -   x       x
Seriebadix       sz,sw    x    x    x   -  - -  -   x   -   x   -   -       -
Serieselfbadix   ss       x    x    -   x  - -  -   x   -   x   -   -       -
Seriereflexbadix sr       x    x    -   x  - -  -   x   -   x   -   -       -
Seriehelpbadix   sh,rsh   x    x    x   x  - -  -   -   x   -   x   -       -
Helpbadix        h,rh,hs  x    x    x   x  - x  x   x   x   x   x   -       -

d =   direct mate/stalemate/doublestalemate
s =   self             -"-
r =   reflex           -"-              semr = semireflex mate/stalemate/doublestalemate
h =   help             -"-                hs = helpself             -"-
sz =  series           -"-                sw = serieswhitestalemate
ss =  seriesself       -"-
sr =  seriesreflex     -"-
sh =  serieshelp       -"-
rh =  reciprocal help  -"-
rsh = reciprocal serieshelp  -"-

Int = Intelligent testing mode available (Non-Fairy only, if help-/series- type)
Q =   Quick mode (Q1-Q5), mate problems only
w+ =  White checks
b+ =  Black checks 

f =   #Black king's flights (f1-f7)
x =   #Black moving men (x1-x16)
y =   #Black moves (y0-y48)
z =   #Black extra moves, works with y only (z1-z9, z11-z19, ... , z91-z99)

wC- = White cannot capture 
bC- = Black cannot capture
wC+ = White must capture
bC+ = Black must capture

=   Normal circe
Min/Max = All combinations of white/black Maximummer and Minimummer
Mod/Ide = Model, Ideal or Pin-Ideal mate/stalemate (Non-Fairy only)
Dualfr =  Dualfree variations test
Key =     Key-move only test
Try =     Try test
Threat =  Threat test (Threats only or Threats + Variations).

In addition many other options are available in all genres, as:

K=  =  King participates in mating/stalemating
Sq- =  King's mating/stalemating square(s)
All =  All variations test
Dual = Dual variations test

Plus several options for promotions, castling rights, first move enpassant, moving men
and variation search depth.

2. Fairybadix

a) Fairybadix, special conditions

In Alybadix Main Menu Hit 'XX' (two times 'X') to switch between Non-Fairy and
Fairybadix solving engines. After this hit Del- or Esc-key to select the wished condition:

Condition            Filename extension   Comments
---------            ------------------   ---------------
Mate (#)             POS / SOL            *)
Stalemate (=)        PO  / SO             *)
Doublestalemate (==) PO  / SO             *)
Check (+)            POO / SOO
Doublecheck (++)     POO / SOO
Capture (/)          POO / SOO
Win_a_piece (%)      POO / SOO
Ziel (Z square)      POO / SOO

*) Available in Non-Fairy also.

If program Seriebadix was selected, D-key allows the condition sw= (Serieswhitestalemate or
Ser-W-Eigenpatt) also, where white plays itself to stalemate (vers. 1999.2-).
Observe that Capture and Win_a_piece are the same in non-circe problems.
Ziel (Target) square is entered with help of the diagram by hitting Z-key on the ziel-square.

b) Fairybadix, circe genres

Separate circe genres can be selected in Test Menu:

Name              Black reborn examples
-------           --------------------------------
Circe             AxTb2(Th8)    Axpb3(pb7)
Couscous-Circe    LxTb2(Tc1)    Lxpb3(D,T,L,S,F f1)
Diagram-Circe     on Diagr sq.  on Diagr sq.
File-Circe        AxTb2(Tb8)    Axpb3(pb7)
Hmirror-Circe     AxTb2(Th1)    Axpb3(pb2)
PW-Circe          Ae2xTb2(Te2)  Ae3xpb3(pe3)
Spiegel-Circe     AxTb2(Ta1)    Axpb3(pb2)
Symmetric-Circe   AxTb4(Tg5)    Axpb3(pg6)
Vmirror-Circe     AxTb2(Ta8)    Axpb3(pg7)

A = Any piece  K = King   D = Queen  T = Rook
L = Bishop     S = Knight p = Pawn   F = Fairy piece

In all circe cases RI (Rex Inclusive, K-Circe) and Strict Circe are selectable.

RI: Also kings can circe-reborn.
Strict circe: Capturing allowed in case of reborn only.

Obs. If a white/black pawn or pawn-like fairy is reborn on row 8/1, it must promote immediately.
The Capturer chooses the promotion(s). This is possible in Couscous-Circe and PW-Circe.

c) Fairybadix, other genres

KoKo (Kölner Kontakt-Schach): Moving (also kings) is allowed only to the neighbourhood of some other piece.
Anti-KoKo: Moving (also kings) is not allowed to the neighbourhood of some other piece.
Madrasi: A piece cannot move or check, if it is observed by opponent's samelike piece (excluding kings).
Madrasi-RI: As madrasi, but including kings also.
Anti-Circe, types Calvet and Cheylan.
One-Way chess: A piece cannot move back in its previous moving direction (2005-).
No-Capture chess: Captures not allowed (2005-).
Monochromatic chess: Any piece's move from and move to squares must be of the same color (2005-).
Bichromatic chess:  Any piece's move from and move to squares must be of different color (2005-).
Edgemover (Randzuger): Moves to the edge of the board allowed only (2005-).

d) Fairybadix, example of fairy men

Fairybadix understands 222 different chess pieces. Observe that APwin can give detailed
help about the moving rules for these pieces! Below some name examples (english/deutsch):

"Equihopper/Gleichhüpfer", "Imitator", "Moose/Elch", "Orphan", "Pyramid/Pyramide", "Rose",
"Edge-Block/Rand-Block", "Reflector/Reflektor", "Alfil", "Alfilrider/Alfilreiter", "Amazon/Amazone",
"Antilope", "Berolina-pawn/Berolina-Bauer", "Boyscout/Pfadfinder", "Camel/Kamel",
"Camelrider/Kamelreiter", "Chameleon-S/Chamäleon-S", "Dabbaba", Dragon/Drache", "Empress/Kaiserin",
"Fers", "Filehopper/Linienhüpfer", "General", "Giraffe", "Block", "Nightriderhopper/Nachtreiterhüpfer",
"Gnu", "Grasshopper/Grashüpfer", "Grazer-pawn/Grazer-Bauer", "Griffon", "Gryphon/Greif",
"Horizontal-pawn/Waagerecht-Bauer", "LT-hunter/LT-Jäger", "Joker", "Kangaroo/Känguruh", "Sparrow/Spatz",
"Leo", "Lion/Löwe", "Locust/Heuschrecke", "Man/Mann", "Mao", "Dummy-pawn/Scheinbauer", "Moa",
"Nereid/Nereide", "Nighthopper/Nachthüpfer", "Nightrider/Nachtreiter", "Non-Stop-Equihopper/Non-Stop-Gleichhüpfer",
 "Okapi", "Orix/Gemsbock", "Pao", "Princess/Prinzessin", "Rankhopper/Reihenhüpfer", "Root25-Leaper/Wurzel25-Springer",
 "Ubi-Ubi", "Siren/Sirene", "Squirrel/Eichhorn", "Taxi", "Triton", "Vao", "Wazir/Wesir", "Eagle/Adler", "Zebra",
 "Zebrarider/Zebrareiter", "Zebrahopper/Zebrahüpfer", "Zero/Null", "Grazer-superpawn/Grazer-Superbauer",
 "Superpawn/Superbauer", "Charybdis", "Skylla", "Friend/Freund", "Roundbishop/Rundläufer", "Eagle-Lion/Adler-Löwe",
 "Alda", "Alda-Lion/Alda-Löwe", "Archbishop/Erzbischof", "Auroch", "Bison", "Bouncer", "Cardinal/Kardinal",
 "CAT", "Contragrasshopper/Kontragrashüpfer", "Diagonalspiralrider/Diagonalspiralereiter",
 "Doublegrasshopper/Doppelgrashüpfer", "Dummy", "Edgehog/Randschwein", "Elephant/Elefant", "Flamingo",
 "Girlscout/Pfadfinderin", "Gnuhopper/Gnuhüpfer", "Gnurider/Gnureiter", "Gral", "Grasshopper-2/Grashüpfer-2",
 "Hamster", "Ibis", "Impala", "Jabber", "Jibber", "Kalif", "Korsar", "Lancer", "Leafleaper/Leafspringer",
 "Maorider/Maoreiter", "Radialleaper/Radialspringer", "Reflecting-knight/Reflektierender-Springer",
 "Rook-General/Turm-General", "Rook-Lion/Turm-Löwe", "Rosehopper/Rosehüpfer", "Rose-Lion/Rose-Löwe",
 "Serpent", "Snake/Schlange", "Spiralrider/Spiralereiter", "Waran",

3. Alybadix and DOS

Alybadix solving program AP.EXE is coded in 32-bit assembler language under the powerful DJGPP
development system (freely available on Internet), which supports protected mode programming.
If you are interested in such programming please visit the Home Page for DJGPP:

("DJGPP is a complete 32-bit C/C++ development system for Intel 80386 (and higher) PCs running DOS. It includes ports of
many GNU development utilities. The development tools require a 80386 or newer computer to run, as do the programs they
produce. In most cases, the programs it produces can be sold commercially without license or royalties.")

Alybadix can utilize all free extended RAM memory up to 2 GB (2048 MB) for the position tree (hash table).
This helps much in solving long chess problems. So called dpmi-driver is needed for the extended memory usage.
This driver is built-in in Windows, but under DOS the special driver program cwsdpmi.exe
(author Charles Sandmann) is needed. This program is delivered with Alybadix.

a) DOS advantages

-Under DOS Alybadix runs about 0-20% quicker than under Windows, if the same position tree (hash) size.
-Under DOS Alybadix can get more memory for hash. This helps especially in long tests.
-Under DOS hard disk activity does not occur. Since Windows uses virtual memory, some part
 of hash may exist on hard disk and this may slow down solving dramatically!

b) Running Alybadix under  DOS on Windows 95/98 machines

-Boot your machine direct to MS-DOS operating system (called DOS 7 or Windos).
-Boot your machine to Windows and restart in MS-DOS mode.
-Use a Startup diskette for booting (see below).

If Alybadix was installed in the folder c:\aly, run solving program ap.exe using DOS-commands:

c:           (select disk partition c:)
cd c:\aly    (change to aly-folder)
ap           (run ap.exe)

c) Running Alybadix under  DOS on Windows ME/NT/2000/XP  machines

-Create a Startup diskette (also called System diskette or Boot diskette).

  There are different ways for this, depending on your Windows version. For instance,
  > My computer > click mouse right on drive A: > format (mark box  'copy system files'  or  'create startup disk').
  Go to the DOS window by running MS-DOS Prompt or Command Prompt
  and enter DOS command (does not work on all Windows versions): format a: /s

-Boot your machine with help of the Startup diskette and run Alybadix as in b) above.

Also you can modify or create the AUTOEXEC.BAT file on the Startup diskette
for your Alybadix path. Use a plain text editor, as Edit (DOS) or Notepad (Windows)
for this. The AUTOEXEC.BAT could include the following lines:

path c:\aly  (path to your Alybadix folder)
ap                    ( run ap.exe automatically after booting from the startup diskette)

-There are some hardware problems on Windows 95/98/ME machines, if much RAM memory.
 Thus Windows 2000/XP is recommended, if more than 512 MB RAM!
 Especially Windows XP seems to be good - also better options for DOS startup!
-Hard disk file systems FAT and FAT32 support DOS, but the file system NTFS does not!

4. Alybadix and Hash

Alybadix can reserve all free extended memory for Hash table. Hash includes former chess positions,
which have occured during solving and important information about these. Hash helps much in solving
long problems. The table consists of two parts: Address table + Position tree. The size of the address
table is max 1/32 of the position tree. Typical values on 1 GB (1024 MB) machine:

Under DOS:        32 MB + 990 MB = 1022 MB  (or 32 MB + 989 MB = 1021 MB)
Under Windows:  32 MB + 870 MB =   902 MB  (varies)

When Alybadix is started it suggest a hash size, which generally is near the optimum.
At the start menu there is a possibility to test hash working by selecting T = 'Test hash memory now'.
During testing Alybadix goes through the hash memory and tests its working continuously
(the round time for each round can be seen). If testing stops and an error message is seen, then
the memory chips on your machine do not work correctly (perhaps defective).

Before hash testing it is possible to Increase/Decrease the hash size by I/D-keys.

Generally you should get hash size = computer's total memory - 2 MB (1024 - 2 = 1022 MB in 1 GB machine).
This is the absolute maximum value.

The available hash size may vary much depending on your Windows version and other open applications.
You can try to increase hash size by I-key before the hash test, but not too much!
During hash test watch the round time and the hard disk activity (lights and sounds).
The round time should be a few seconds only. If much more, then there is too much hard disk activity and chess
problem solving will slow down very much. Exit Alybadix, start again and decrease hash size properly by D-key
before the hash test!

During solving:
If you see that there is much hard disk activity while Alybadix solves a problem
(hard disk sounds/lights, number positions increases very slowly, Alybadix solving time clock is 'lazy'),
it may be better to interrupt Alybadix and start again (in long tests).

If you run Alybadix under Windows XP/2000, go to its Task Manager by hitting Ctrl-Alt-Del during solving,
select 'Performance' and you will see the CPU (processor) usage window. The usage should be near
100% (90% - 99%), if solving is proceeding quickly, as it should do!

Obs 1.
It is possible that your computer stops (generally with an error message) or 'hangs' during the hash test
or during (long) solving. This means that the extended memory chips do not work correctly.
Probably one chip is defective and should be changed! (Alybadix has already found several bad chips).

Obs 2.
If the computer has 2 GB extended memory, Windows XP and Windows 2000 allow reserving about
1200 MB - 1400 MB 'only' for the hash. But under DOS all 2000 MB can be reserved!

Go to the begin of this page                                     Home