DISCLAIMER: The documentation is still very much so in the making, it is nothing more than a WIP.
- u24 - 24 bit unsigned integer
- u8 - 8 bit unsigned integer
- NAG - Numerical annotation glyph. See Wikipedia for more information.
- Variation table - A table that denotes
The move is represented with an u24.
To and from squares are defined as an index of a chessboard square. The values are between 0-63. Where 0 is ’a1’ and 63 is ’h8’.
Pieces value represent some piece. See the table for more info
The flags are defined as individual values. They’re bit-wise ored (|) together to get the final value.
Flag Name | Binary Value | Note |
---|---|---|
FlagNone | 0b00000000 | Empty flag |
FlagCheck | 0b00000001 | Move is a check |
FlagMate | 0b00000010 | Move is a checkmate |
FlagCapture | 0b00000100 | Move is a capture |
FlagNag | 0b00001000 | If this flag is set, the first 8 bits are replaced with a NAG index |
FlagPromotesBishop | 0b01000000 | Move promotes to bishop |
FlagPromotesKnight | 0b01010000 | Move promotes to knight |
FlagPromotesRook | 0b01100000 | Move promotes to rook |
FlagPromotesQueen | 0b01110000 | Move promotes to queen |
FlagIsVariationPointer | 0b10000000 | If this flag is set, the first 16 bits are replaced with an index to the variations table |
Piece | Binary Value |
---|---|
White pawn | 0b0000 |
White knight | 0b0001 |
White bishop | 0b0010 |
White rook | 0b0011 |
White queen | 0b0100 |
White king | 0b0101 |
White castles short | 0b0110 |
White castles long | 0b0111 |
Black pawn | 0b1000 |
Black knight | 0b1001 |
Black bishop | 0b1010 |
Black rook | 0b1011 |
Black queen | 0b1100 |
Black king | 0b1101 |
Black castles short | 0b1110 |
Black castles long | 0b1111 |