GNU Chess 8088/8086 application source notes
==========================================

Use SOURCE/README-REBUILD.txt for current commands, hashes and portable tests.
The English/German executable releases are 6.3.0.14 and 6.3.0.15. The native
shell and movable-code bridge now target the documented 8086 instruction set.
This revision adds a native GenText field and Play move trigger below the
board. Type e2e4 (or a five-character promotion), then press Enter or click
Play move; German captions use the same coordinate syntax. Field focus/caret
and editing belong to the native UI. Mouse square selection is retained.
Engine source/intermediate, arithmetic/search/evaluation, move order, cache
and history capacities, artwork, arena and reserved stack remain unchanged.
Earlier 12/13 evidence keeps its original raw board-keyboard typing behavior
and hashes; current form tests are separate and bound to 14/15.

The native shell replaces later PUSHA/POPA and long conditional-jump forms
with 8086 register saves/restores and inverted short conditions plus near jumps.
The fixed movable-code bridge shares a save/lock/jump prologue. Each target
has a seven-byte near CALL followed by its handle and entry words. The shared
24-byte entry frame replaces the original far return without adding an engine
argument frame; the 22-byte cleanup preserves the target's results and FLAGS.
No PUSH SP instruction is used, so its 8086 decrement-first behavior is avoided.
The existing compatibility runtime is 8086 assembly and the unchanged engine
was already compiled with Watcom -0. No 8087 instructions are required.

Ordinary repaint still compares the current 64-square BOARD with the previous
painted squares. Only changed cells and old/new selection areas receive board
output. Depth and thinking changes update the footer; the native field handles its
own text and caret repaint. Occupied changes
use the original complete background Bitmap directly; vacated squares clear
their own background. Expose/uncover and changed geometry restore the complete
scene through the native update clip. The small logical paint cache reuses
private-state gaps; there is no application framebuffer or extra engine heap buffer. Native text
and controls use the UI heap, measured separately.

The same measured geometry drives painting and mouse input. Native resize,
maximize, unscaled text, margin cleanup and all original piece/icon pixels are
retained. Both editions use window title GNU Chess 6.3.0, application/file
caption GNU Chess and installed Berkeley font 0x0202. German text uses verified
native GEOS SBCS bytes, not UTF-8, CP850 or Latin-1.

Icon resource 55 remains movable, initially loaded by ObjLockObjBlock, swapable
and nondiscardable 0x1c5a. Its first chunk starts immediately after the handle
table; allocations round relative to that heap start. Piece art 62 remains
read-only movable/swappable/nondiscardable 0x0850. Engine code 26..54 remains
preloaded/swappable/nondiscardable 0x0a50 through fixed transparent thunks.
Resource 2 stays fixed for its raw callback. MemLock's code-resource path cannot
reload discarded data; the icon UI object-loader initial-load path is distinct.
The identity is still single-instance gnuchess.app/GnCh. Close GEOS before
installing an edition or changing languages.

DGROUP 8400, arena 34336 (used 34260) and stack 49152 reservations are unchanged.
Fixed initialized resources plus stack are 127856 bytes for each edition;
total initialized resource reservations plus stack are 215280 bytes in either
edition. These file-derived totals exclude real loader/UI/heap overhead
and are not physical-RAM measurements. A smaller bridge offsets the 8086
shell's longer instruction sequences. The localized shell and bridge paragraph differences cancel in both totals.

Current SOURCE/tests includes 13 standard-library checks, nine icon/object
checks, optional strict 8086 execution, geometry/incremental/native-form CPU harnesses and
the historical paired-host engine suite. The raw opcode gate independently
checks documented 8086 encodings and guards selected same-opcode differences
such as unmasked CL counts, PUSH SP, signed IDIV minimum quotients and segment
crossings. It runs atop a later x86 interpreter and is not a complete 8086
hardware model. Native DOSBox-X 8086-core acceptance and static flag/REP review
are separate evidence. No test establishes physical 4.77 MHz 8088 speed or proves
all possible games. No user runtime, kernel, font, SDK, compiler or emulator
executable is redistributed.
