Kaissa (1992) PC ported to modern systems

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
Jim Ablett
Posts: 2570
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Kaissa (1992) PC ported to modern systems

Post by Jim Ablett »

Image
https://greko.su/index_en.html

Kaissa Chess Engine - WinBoard Protocol/Console Version
Based on the original Turbo-C Kaissa Chess Engine (1992)

Ported to modern systems by Jim Ablett 18-04-26
Kaissa (the legendary goddess of chess) was a Soviet chess program that dominated international computer
chess from 1974 to 1977. Kaissa made use of a pruning technique called "the method of analogies," meaning
postions that were so alike that the same score could be attributed to all. Kaissa was revolutionary in its
use of analogous positions and tree searching methods for reductions of computational load. The original
program was written by Vladimir Arlazasov, Alexander Bitman (Russian national chess master).

In 1990, the legendary Soviet chess program Kaissa was rewritten to run on the IBM PC by a
nine-member team led by Mikhail Donskoy.

Kaissa evolved from the Institute for Theoretical and Experimental Physics (ITEP) and the Institute for Systems
Science in Moscow, headed by mathematician Georgi Adelson-Velskiy. The program had an Elo rating around 1600.
Kaissa evolved from a chess program used in a USA-USSR computer chess match in 1967 in which the USSR program
defeated the Stanford program. In 1971 Donskoy began work on the new program, written in Assembly.

Kaissa ran on a mainframe (British ICL System 4/70 computer) equipped with a 64-bit processor. 64 is also the
number of squares on a chessboard, so it was possible to use a single memory word to represent a yes-or-no or
true-or-false predicate for the whole board. This was called the bit board. The ICL 4/70 computer had 24,000
bytes of memory. It enabled the program to evaluate 200 positions per second. It could store 10,000 opening
positions in its memory. The program was written in Assembly language. The Assembly code occupied 384K bytes
(8-bit words). The Russians would have had a more powerful chess program if it had used an IBM machine, but they
were not allowed to buy or use one. The speed of the ICL 4/70 was 900,000 instructions per second.

Kaissa was a Shannon type A program that search 7 ply full width, with extensions for captures, checks, and forcing
moves. The program employed the alpha-beta technique with a "window." The program introduced a feature called
"best move service," storing a table of the 10 best moves. This was used to improve move ordering for the alpha-beta
method. Another feature was a "dummy move," in which one side does nothing at its turn and used to discover threats.

History & Legacy:
Originally developed in the late 1960s, Kaissa became the first World Computer Chess Champion
in 1974. Development was officially halted by the Soviet government in the early 1980s, but the
team later reunited under the company Paragraph (and later DISCo) to bring the engine to the personal
computer market.

PC Version Details:
Performance: The 1990 PC version debuted at the 2nd Computer Olympiad in London, where it shared fourth
place out of eleven participants, achieving four wins and two losses.
Technology: It was written in Turbo C. While earlier versions ran on massive mainframes like the IBM 370/165,
the PC version was optimized for IBM-compatible hardware.

Innovations:
The PC version retained the classic algorithms that made Kaissa famous, including the first use
of bitboards, null-move heuristics, and permanent brain (thinking on the opponent's time).

Availability:
A 1992 version of the program, including its source code and manual, has been preserved and hosted
online by Vladimir Medvedev, the author of the GreKo engine.

Console mode. Type 'help' for a list of commands.
You play White. Enter moves in long algebraic notation:
e.g. e2e4 or e2-e4 or e7e8q (promotion)

> help → prints the command table
> new → resets board, confirms "You play White"
> e2e4 → plays the move, Kaissa thinks, both moves printed + board
> undo / u → retracts both half-moves (full pair), board restored
> e2-e4 → hyphenated form accepted identically
> switch / sw → swaps sides; engine plays immediately if it's now its turn
> go → forces engine move now, no matter whose turn it is
> time 10 → 10 seconds/move think time
> depth 6 → 6-ply fixed depth search
> show / d → redraws the board
> post/nopost → toggle search output
> xboard → hand off to Winboard protocol
> quit / bye → exits cleanly
Image

Kaissa 64 JA

Windows/Linux & Android profiled builds

Proton link:
https://drive.proton.me/urls/RZKH43K5G4#sDITAW3KmPQi

Smash link:
https://fromsmash.com/Kaissa64JA

Jim.
Alexander Schmidt
Posts: 1243
Joined: Thu May 10, 2007 2:49 pm

Re: Kaissa (1992) PC ported to modern systems

Post by Alexander Schmidt »

This is amazing, many thanks Jim!

Afaik originally the level is set by two numbers, seperated by a point. Somewhere I heard Level 1,3 was used originally 1974 on the ICL 4/70, what seems to be conclusive because of the stated 200 nodes / second at that time on that machine. I just compared your version with the Dos-Version 1.1 from 1990 and 1,3 seems to be similar to depth=3.

The Dos-Version answers 1.a4 after 565 nodes, your version after 503 nodes.

Cheers,
Alex
User avatar
towforce
Posts: 13228
Joined: Thu Mar 09, 2006 12:57 am
Location: Birmingham UK
Full name: Graham Laight

Re: Kaissa (1992) PC ported to modern systems

Post by towforce »

Full list of positional weights in its eval - link.
Human chess is partly about tactics and strategy, but mostly about memory
User avatar
WinPooh
Posts: 279
Joined: Fri Mar 17, 2006 8:01 am
Location: Russia
Full name: Vladimir Medvedev

Re: Kaissa (1992) PC ported to modern systems

Post by WinPooh »

Thanks, Jim!

I'm very happy to hear this news. The last time some of my friends and I tried to compile the code, it was missing several files. Apparently, they weren't related to the chess logic, but to the graphical interface.

If you don't mind, I'll post links to your build or archived files on the Kaissa source code page.

As I see currently it supports console and xboard mode. Any plans about UCI protocol?
User avatar
WinPooh
Posts: 279
Joined: Fri Mar 17, 2006 8:01 am
Location: Russia
Full name: Vladimir Medvedev

Re: Kaissa (1992) PC ported to modern systems

Post by WinPooh »

https://kasparovchess.crestbook.com/thr ... st-1152509

Google translate from Russian
Back to the topic: about five years ago, I went through the Kaissa source code, spent two weeks... and all in vain! I managed to separate the brains from the interface, but alas, I was missing a crucial file describing the backtracking procedure. Without it, restoring the program completely loses its purpose. This function can be partially restored by finding the assembler code in the program's .exe, but that's not the same.

So, it's worth acknowledging that we'll never see Kaissa as an engine.
User avatar
Jim Ablett
Posts: 2570
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: Kaissa (1992) PC ported to modern systems

Post by Jim Ablett »

WinPooh wrote: Thu May 14, 2026 7:56 pm Thanks, Jim!

I'm very happy to hear this news. The last time some of my friends and I tried to compile the code, it was missing several files. Apparently, they weren't related to the chess logic, but to the graphical interface.

If you don't mind, I'll post links to your build or archived files on the Kaissa source code page.

As I see currently it supports console and xboard mode. Any plans about UCI protocol?
Hi Vladimir,

Thank you for hosting the original PC version Kaissa source code for so long.
Feel free to post any links.
I don't have plans to implement UCI but you are welcome to do it if you wish. I haven't tried but it should
work with Wb2uci adapter though.

Best,
Jim.
User avatar
jasper.sinclair
Posts: 29
Joined: Fri Nov 17, 2023 2:50 am
Location: USA
Full name: Jasper Sinclair

Re: Kaissa (1992) PC ported to modern systems

Post by jasper.sinclair »

Jim Ablett wrote: Thu May 14, 2026 8:34 pm
WinPooh wrote: Thu May 14, 2026 7:56 pm Thanks, Jim!

I'm very happy to hear this news. The last time some of my friends and I tried to compile the code, it was missing several files. Apparently, they weren't related to the chess logic, but to the graphical interface.

If you don't mind, I'll post links to your build or archived files on the Kaissa source code page.

As I see currently it supports console and xboard mode. Any plans about UCI protocol?
Hi Vladimir,

Thank you for hosting the original PC version Kaissa source code for so long.
Feel free to post any links.
I don't have plans to implement UCI but you are welcome to do it if you wish. I haven't tried but it should
work with Wb2uci adapter though.

Best,
Jim.
Nice work again Jim! And a big thanks to Vladimir. (Vladimir Medvedev, Greko author?) for his efforts in this regard. I have spent some time on this and have added full UCI support. The engine is nicely written, and fairly strong...impressive for it's time, unfortunately everything is in a single large source file.

https://github.com/jasper-sinclair/Kaissa

I'll try add a perft function soon so we can see how move generation performs.
User avatar
jasper.sinclair
Posts: 29
Joined: Fri Nov 17, 2023 2:50 am
Location: USA
Full name: Jasper Sinclair

Re: Kaissa (1992) PC ported to modern systems

Post by jasper.sinclair »

+=====================================================+
| K A I S S A Chess Engine |
| Soviet champion 1971-1975 * IFIP World Cup 1974 |
+=====================================================+

Console mode. Type 'help' for a list of commands.
You play White. Enter moves in long algebraic notation:
e.g. e2e4 or e2-e4

a b c d e f g h
+---+---+---+---+---+---+---+---+
8 | r | n | b | q | k | b | n | r | 8
+---+---+---+---+---+---+---+---+
7 | p | p | p | p | p | p | p | p | 7
+---+---+---+---+---+---+---+---+
6 | . | . | . | . | . | . | . | . | 6
+---+---+---+---+---+---+---+---+
5 | . | . | . | . | . | . | . | . | 5
+---+---+---+---+---+---+---+---+
4 | . | . | . | . | . | . | . | . | 4
+---+---+---+---+---+---+---+---+
3 | . | . | . | . | . | . | . | . | 3
+---+---+---+---+---+---+---+---+
2 | P | P | P | P | P | P | P | P | 2
+---+---+---+---+---+---+---+---+
1 | R | N | B | Q | K | B | N | R | 1
+---+---+---+---+---+---+---+---+
a b c d e f g h

White to move

> perft 5
b1a3: 198572
b1c3: 234656
g1f3: 233491
g1h3: 198502
a2a3: 181046
a2a4: 217832
b2b3: 215255
b2b4: 216145
c2c3: 222861
c2c4: 240082
d2d3: 328511
d2d4: 361790
e2e3: 402988
e2e4: 405385
f2f3: 178889
f2f4: 198473
g2g3: 217210
g2g4: 214048
h2h3: 181044
h2h4: 218829

Nodes = 4865609
Time = 1170 ms
NPS = 4158640

> perft 6
b1a3: 4856835
b1c3: 5708064
g1f3: 5723523
g1h3: 4877234
a2a3: 4463267
a2a4: 5363555
b2b3: 5310358
b2b4: 5293555
c2c3: 5417640
c2c4: 5866666
d2d3: 8073082
d2d4: 8879566
e2e3: 9726018
e2e4: 9771632
f2f3: 4404141
f2f4: 4890429
g2g3: 5346260
g2g4: 5239875
h2h3: 4463070
h2h4: 5385554

Nodes = 119060324
Time = 31307 ms
NPS = 3802993
User avatar
WinPooh
Posts: 279
Joined: Fri Mar 17, 2006 8:01 am
Location: Russia
Full name: Vladimir Medvedev

Re: Kaissa (1992) PC ported to modern systems

Post by WinPooh »

Image

Alexander Bitman (1939-2013), Kaissa's evaluation and opening library expert.