Replace the partial mechanics transcriptions with a separate, readable C11 reconstruction of the complete Win16 image while preserving the original raw Ghidra export as immutable evidence. Cover all ordinary and overlapping entry points, Borland runtime behavior, Win16 imports, segmented data, callbacks, resources, indirect control flow, physics, rendering, persistence, and startup/shutdown lifecycles. Add deterministic extraction and audit tooling plus address-linked ledgers for functions, imports, DGROUP ranges and objects, relocations, resources, and callbacks. The final gate records zero raw, partial, restored, unknown, blocked, or unclassified required units. Keep the semantic-fidelity boundary explicit: the portable C is not claimed to reproduce a byte-identical Borland NE build. Add strict focused harnesses for every reconstructed C unit, exact resource round-trip checks, and a 16-bit Borland Real48 reference probe. No Rust source or Cargo metadata is changed in this phase. Test Plan: - `bash original/tools/test_reconstructed_c.sh` -- passed - `bash original/tools/probe_real48_reference.sh` -- passed bit-for-bit - `python3 original/tools/audit_reconstruction.py --require-complete` -- passed - `git diff --cached --check` -- passed - `git diff HEAD -- '*.rs' Cargo.toml Cargo.lock` -- empty
8 lines
1.8 KiB
Plaintext
8 lines
1.8 KiB
Plaintext
address containing_function status reconstructed_name evidence notes
|
|
1020:04a0 1020:049f verified borland_assign_text_short bytes 1020:049f-04a1 decode as MOV DX,0xd233 at 049f and XOR DX,DX at 04a0; common body 04a2-04fb Overlapping Borland runtime entry for Pascal ShortString names; containing ledger row accounts for the shared executable body.
|
|
1020:06b4 1020:06ab verified borland_create_generic_file bytes 1020:06ab-06b9 select AH=3d/global access and empty-name handle 0 at 06ab or AH=3c/attributes 0 and empty-name handle 1 at 06b4; common body 06ba-070f Overlapping Open/Create generic-file entry pair.
|
|
1020:0765 1020:0760 verified borland_file_write_record bytes 1020:0760-0769 select AH=3f/error 0x64 at 0760 or AH=40/error 0x65 at 0765; common body 076a-0795 Overlapping single-record Read/Write entry pair.
|
|
1020:079b 1020:0796 verified borland_file_block_write bytes 1020:0796-079f select BL=3f/error 0x64 at 0796 or BL=40/error 0x65 at 079b; common body 07a0-07fd Overlapping BlockRead/BlockWrite entry pair.
|
|
1020:100f 1020:1017 verified borland_real48_truncate_to_i32 bytes 1020:100f-1016 set CH=0, call conversion core 0f77, and RETF on success; bytes 101f-1024 are the Runtime Error 207 tail shared with Round entry 1017 disassembleOnly evidence was previously structural; readable Trunc semantics, overflow candidate, and shared error tail are now explicitly represented and DOSBox-differentially tested.
|
|
1020:1130 1020:111d verified borland_real48_sin bytes 1020:111d-112f form the Cos-only pi/2-x prelude; 1130-1190 are a complete shared Sin body ending RETF; table 1191-11ba contains -1/15! through -1/3! Exact modulo-2pi, quadrant folding, odd polynomial, small-argument bypass, half-cycle sign, and independent Sin entry are represented and differentially tested against original-offset bytes.
|