Thanks Antonio and Biel for your comments.
Developing a software to play chess is a very complex and time consuming task.
The main reason that I started developing this software is, as an experiment, to try FWH64 capabilities by developing some algorithms that can work in 64 bits
only.
By using a 64 bits capable language, as FWH64 is, the chess board can be represented as a 64 bits word where each position represent a square.
In figure below we can see the "BitBoard" (AKA Bit Maps) for white knights (WN) positions represented in chess diagram above. The 1's represent the White Knights
positions.

We can know if a WN is attacking a Black Piece by using bitwise operators. By example using the AND bitwise operator between a bitboard representing
all squares attacked by a knight in f3 position, and a bitboard representing all black pieces, if the result is 1 the Knight is attacking a black piece,
otherwise if the result is 0 no black piece is being attacked by the Knight in f3 position. All others attack can be analyzed also by using Bitboards.
The advantage of using the 64 bit approach is that by using Bitwise operator we get the fastest possible speed (faster than using RAM memory) and a more efficient code.
In some circunstance this approach can be used in database applications.
Let's say we have a huge database (big data) with millions of records, where each record represent customer's information including 40
attributes for each customer. We could avoid adding the 40 fields (one for each attribute) by substituting these fields by just one CHAR field
where we can put the binary representation in Hexadecimal format (setting the bit in accordance with the atribute) and apply any bitwise operation to this data.