GNU Chess Ensemble 1.x - port release 0.2 test results
=====================================================

Tested executable: GNUCHESS.GEO, 224,622 bytes
SHA-256: 796ba70122e22276bbeac16ef55fa9bed87d525419072446df3afff6137d5c62
Executable release: 6.3.0.4
Test runtime: user-supplied English GeoWorks Pro / Ensemble 1.2,
kernel protocol 622.3 and UI protocol 693.0, in DOSBox Staging 0.83.

FIXED-MEMORY COMPARISON
-----------------------
Fresh matched GeoManager + Perf sessions:
                                 Previous build    Release 0.2
Baseline fixed memory                 250.8 KiB      250.8 KiB
With initialized GNUChess             507.1 KiB      430.5 KiB
Increment for GNUChess                256.3 KiB      179.7 KiB

Measured reduction: 76.6 KiB of fixed memory.
Structural fixed resources plus process stack: 261,840 -> 183,392 bytes.
Screenshots and detailed accounting are under v0.2.
These figures describe fixed memory, not total application storage or RAM.

NATIVE 2 MiB PRESSURE TEST
--------------------------
At 1024x768 TrueColor, GNUChess remained open while GeoWrite, GeoDraw,
Notepad and Calculator were opened. All five are visible in the Express
application list. Returning to chess, selecting depth 4 and playing e2e4
produced g8f6. Undo restored the initial board with zero differing pixels
in the board comparison. No memory dialog, kernel fault or hang occurred.
See v0.2/pressure2/pressure2-report.json and its actual captures/command log.
Configured 2 MiB RAM is a test setting, not a minimum RAM guarantee.

NATIVE SWAP AND LIFECYCLE TEST
------------------------------
Read-only inspection of the running 1.x kernel found all 29 engine code
resources actually swapped out at idle, with fixed flags clear and all
lock counts zero. After GeoWrite and GeoDraw loaded, returning to chess,
playing e2e4, receiving b8c6, Undo and a depth 4 b1c3 search all passed.
A second launch was refused with the native already-running dialog;
the existing game remained intact. F3 closed the application and an
ordinary GeoManager launch reopened a fresh game at depth 2.
See v0.2/native32/native-report.json, its screenshots and heap inspection.
Raw guest memory dumps are excluded from the package.

CPU AND REBUILD VALIDATION
--------------------------
- Actual converted engine machine code: 190,837 code moves with stale code
  poisoned after unlock; initialization, illegal-move immutability, replies,
  Undo, depth 4 and 16-ply self-play passed. Locks and contexts balanced.
- Twenty independent thunk ABI cases passed: RETF/RETF N, arguments,
  registers/FLAGS, nested locks, failure/overflow/underflow guards.
- Exact old-kernel instruction tests verified MemLock/MemUnlock preservation
  and discarded-resource rejection. Swap backend and semaphore boundaries
  were stubbed in that CPU test; it does not prove native swapping.
- SDK-free rebuild and full 30-translation-unit engine rebuild reproduced
  the exact SHA-256 above. The staged package's top-level rebuild entry
  point was also run and reproduced the released bytes.

CPU tests stub selected kernel/UI boundaries. They are separate from native
GEOS tests and are not presented as an emulator for the complete operating
system. The unchanged engine's earlier ASan/UBSan and arithmetic reports
remain in this directory; current low-memory reports are under v0.2.

SCOPE
------
The friend's German installation and precise error sequence were not
available. This release reduces the confirmed fixed-memory pressure; the
earlier "Breakpoint hit" was not reproduced or conclusively diagnosed.
Other 1.x releases and physical PCs were not tested. The complete binary
requires a 386 or later CPU because the native UI contains near conditional
jumps; only the adapted engine/runtime are compiled for 8086 instructions.
No unconditional out-of-memory recovery or minimum-memory claim is made.

Older root-level native screenshots and TEST-RESULTS-v0.1.txt concern the
previous all-fixed release. Use v0.2 evidence for this replacement build.
