.. | ||
addbook.py | ||
book.bin | ||
book.txt | ||
COPYING | ||
core.c | ||
core.h | ||
Makefile | ||
mscp0.c | ||
mscp.c | ||
mscp.ovl | ||
onload.s | ||
prof.in | ||
README.md |
Marcel's Simple Chess Program
MSCP, Marcel's Simple Chess Program by Marcel van Kervinck, is a small, simple, yet complete open source chess engine released under the GNU GPL. This version has been adapted to work on the Gigatron which is another brainchild of Marcel.
https://www.chessprogramming.org/MSCP
Changes
The main change relocates the union core
structure containing the
compiled opening book and the transposition table into bank 3 of the
128k gigatron. To that effect, the file mscp.ovl
ensures that all
objects defined in file core.c
are placed below 0x7fff and therefore
remain accessible when the banks are switched. The random generator
has been changed to a subtractive generator that avoids costly long
multiplications.
The opening book is appended to the gt1 at addresses 0xc000 and up.
An onload function defined by mscp.ovl
is called just after loading
the augmented gt1 file. This function retrieves the book size from
address 0xbffe
and copies the book data into bank3.
A second onload function defined by map128k
then copies excess code
and data from bank1 to bank2, initializes the framebuffer in bank1,
and switches to bank2. This is how map128k
provides a contiguous
62KB of memory.