Native move-entry development notes - releases 14 EN / 15 DE
22 October 2026
===========================================================

Rebuild instructions and exact source hashes: SOURCE/README-REBUILD.txt
and DEVELOPMENT/source-rebuild-report.json. Use the current SOURCE tests.
PORTING-12-13.txt and CHANGES-12-13.txt describe the preceding CPU conversion.

NATIVE ENSEMBLE 1.2 CONTROL
--------------------------
The existing interface resource 57 gains a horizontal GenInteraction sibling
after the expanding GenView. Old object handles remain stable. New field
57:44 and trigger57:48 share process message 0xc04. The GenText moniker is
Move: / Eingabe:, and the trigger is Play move / Zug ausfuehren.

The object uses the actual old GenTextClass ordinal 86 and 57-byte payload,
not a later SDK object layout. Maximum text length is 5; the initial text is
a plain NUL-terminated SBCS chunk. The native SpinText defaults provide
single-line editing and Enter apply. The focus-notification byte is 0, so
clicking elsewhere does not submit. EVIDENCE/move-entry/GENTEXT-API.md and
gentext-api-proof.json in that directory record the derived contracts and
their finite execution checks.

Old get-all message 0x2204 uses caller CX:DX and returns CX length without
copying a NUL. Native max5 and programmatic writes <=5 bound the existing
six-byte TYPED buffer; submission appends its terminator at returned length.
There is no temporary text-block allocation. Replace-all 0x2200 uses DX:BP.
Enable 0x41bc / disable 0x41bd use VUM_NOW=1 for immediate visual updating.
The native controls are disabled while searching and enabled when ready.
After an explicit form submission, old Vis focus message 0x208d restores
the built field's keyboard focus. It takes no arguments. Busy/not-ready
guards and board/button actions outside form submission do not grab focus.

Submission normalizes letter case in the private engine buffer and checks
coordinate syntax and q/r/b/n promotion selectors before the existing play
path. Invalid native text remains unchanged for editing. Successful human,
mouse or computer moves clear it; New game and successful Undo also clear
it. A depth change retains the draft. Empty submission does nothing.

The view's raw-keyboard handler delegates to the native superclass. Native
GenText owns keyboard editing and Enter; painted Move/TYPED text is removed.
Board mouse moves synchronize the native field and retain existing engine
validation, reply and promotion behavior. No input is played by change
notifications. Standard native window shortcuts remain delegated to GEOS.

MEMORY AND ENGINE
-----------------
The enabled-state cache and replacement-recursion guard use two bytes in an
existing private-state gap. DGROUP 8400, arena 34336 and stack 49152 are unchanged.
The class/method table remains within its existing reserved capacity.
Resource count remains 63. Only the class region/relocations in resource 1,
native code 25 and interface objects 57 change from releases 12/13. Engine
instructions/data, compatibility runtime, bridges, icon and piece payloads,
loading/locking policy, cache capacities, histories and search rules match.

The native control has GEOS heap/handle/shared-code costs beyond executable
reservations. See the fresh independent memory audit and matched runtime
comparison/graphs under EVIDENCE/move-entry. Keep allocated/resident/HF_FIXED
handle totals distinct, and keep global shared caches distinct from app-owned
memory. Measurements are sampled states, not a complete transient peak.

VALIDATION SCOPE
----------------
Current acceptance binds fresh native-form CPU, geometry/incremental paint,
ISA-region, engine-identity, native 8086 UI and exact source-rebuild reports to
both shipped hashes. CPU harnesses execute generated instructions with
modeled kernel/graphics boundaries; native UI checks use the supplied English
Ensemble 1.2 system separately. The memory observer uses 386-class Staging;
it does not establish original 8086 execution. Native functionality uses a
dedicated DOSBox-X 8086 core with 640 KiB conventional memory and disk-only swap.
Physical hardware and bus/cycle timing remain unverified.

Earlier large engine/bridge campaigns are retained as historical evidence;
their counts are not presented as rerun for this interface change. The current
engine-identity audit explains why unchanged engine results remain relevant.
No commercial runtime/fonts/SDK/toolchain binaries or raw guest RAM are shipped.
