GNU Chess Ensemble 1.x port notes
================================

Target and native integration
-----------------------------
The target is the supplied GWSVGA GeoWorks Pro / Ensemble 1.2 installation.
The executable imports kernel protocol 622.3 and UI protocol 693.0. Its
application object, process-class record, primary window, four triggers,
LMem chunks and view are constructed using the actual 1.x object ABI.
They are not GEOS 2.x object blocks with edited version numbers.

The existing GNU Chess 6.3.0 engine adaptation was retained and rebuilt with
Open Watcom's -0 target. The native compatibility resource supplies exactly
the ANSI string/memory, signed-long arithmetic, character classification
and allocation interfaces it imports. TimerSleep is bridged to the native
1.x register ABI (kernel ordinal 0xb8). No ANSIC.GEO is required.

An important native-only issue was found and verified: the 1.x movable
inter-resource call mechanism cannot be used directly by this stack-based
C/C++ build. A simple conversion, and an all-fixed variant that still used
those call records, both trapped inside initialization. The working build
keeps all engine code fixed and emits ordinary far calls with segment
relocations, bypassing that mechanism. It runs the same engine code that
passes the independent machine-code tests. This increases conventional
memory use; it is a conscious compatibility tradeoff.

Memory and engine limits
------------------------
DGROUP initialized bytes: 9,216; uninitialized search stack: 49,152.
Total DGROUP allocation: 58,368 bytes, below one 64 KiB segment.
Separate fixed engine arena: 49,152 bytes; initialization uses 38,340 bytes.
The engine's fixed data tables and code are additional to these amounts.
There is no measured minimum free-memory guarantee.

The supplied adaptation's cache, history and bounded-search decisions
remain: 1,024 transposition entries plus spill entries, 512 pawn entries,
256 material entries, bounded repetition history, one retained undo turn,
requested depth 1-4 and hard search height 15. The Unix command interface,
opening books and unrestricted search controller are not included.

Graphics and input
------------------
The original 48x48 PNG pieces are resized to 28x28, quantized to standard
native gray palette entries, and precomposed on each board color. This
avoids dependency on later bitmap mask/rendering wrappers. The board is
256x256 inside a 300x340 native view. Coordinate keyboard entry and mouse
selection call the same genuine engine legal-move path.

Native tests found a register ABI mismatch in mouse entry: GCTurn may
clobber BX, which held the selected destination square. BX is now preserved
around that call. Repeated mouse turns and keyboard moves pass on the
released executable. The native app's window-list field and flags were
also verified against a working 1.x application.

Validation boundary
-------------------
Host/CPU tests alone do not prove native GEOS behavior. Final native tests
were performed on the exact released binary and are documented separately
in EVIDENCE/native-report.json and TEST-RESULTS.txt. The tested systems are
DOSBox Staging 0.83 with the supplied Ensemble 1.2 runtime; other 1.x versions
and real hardware remain untested. No complete modern GNU Chess feature
parity or unlimited search strength is claimed.
