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
105 lines
4.5 KiB
C
105 lines
4.5 KiB
C
#ifndef TDKPIN_WINDOW_MESSAGES_H
|
|
#define TDKPIN_WINDOW_MESSAGES_H
|
|
|
|
#include "tdkpin_application.h"
|
|
|
|
bool object_windows_has_flags(
|
|
Win16FarPtr object, uint8_t mask); /* 1018:0673 */
|
|
uint16_t object_windows_zero_word_default(
|
|
Win16FarPtr object); /* 1018:05dc */
|
|
void object_windows_update_flags(
|
|
Win16FarPtr object,
|
|
bool set,
|
|
uint8_t mask); /* 1018:0641 */
|
|
void object_windows_set_flag_1(Win16FarPtr object); /* 1018:05f3 */
|
|
void object_windows_set_flag_4(Win16FarPtr object); /* 1018:060d */
|
|
void object_windows_clear_flag_4(Win16FarPtr object); /* 1018:0627 */
|
|
void object_windows_close_if_allowed(
|
|
Win16FarPtr window); /* 1018:0f38 */
|
|
void object_windows_wm_close(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:0f22 */
|
|
void object_windows_wm_destroy(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:0f8d */
|
|
void object_windows_wm_nc_destroy(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:0fcc */
|
|
void object_windows_wm_activate(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:0ffd */
|
|
void object_windows_wm_query_end_session(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:1054 */
|
|
void object_windows_message_0014(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:10aa */
|
|
void object_windows_wm_hscroll(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:0b6c */
|
|
void object_windows_wm_vscroll(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:0b25 */
|
|
void object_windows_wm_command(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:08f0 */
|
|
void object_windows_route_scroll_notification(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:0a85 */
|
|
void object_windows_route_command_target(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:0bb3 */
|
|
void object_windows_forward_event_to_parent(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:0c59 */
|
|
void object_windows_destroy_native_window(
|
|
Win16FarPtr window); /* 1018:0ce7 */
|
|
bool object_windows_register_class(
|
|
Win16FarPtr window); /* 1018:0e46 */
|
|
void object_windows_build_window_class(
|
|
Win16FarPtr window,
|
|
WNDCLASS16 *window_class); /* 1018:1274 */
|
|
uint16_t object_windows_get_field_35(
|
|
Win16FarPtr window); /* 1018:12f5 */
|
|
void object_windows_remember_child_focus(
|
|
Win16FarPtr window); /* 1018:1586 */
|
|
void object_windows_restore_child_focus(
|
|
Win16FarPtr window); /* 1018:1547 */
|
|
void object_windows_wm_activate_with_focus(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:169d */
|
|
void object_windows_wm_syscommand_focus(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:1a0e */
|
|
void object_windows_call_slot_38_then_default(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:1761 */
|
|
void object_windows_remember_focus_then_default(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:1960 */
|
|
void object_windows_call_original_window_proc(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:1311 */
|
|
void object_windows_call_slot_38(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1008:2c08 */
|
|
void object_windows_zero_message_result(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1008:2cd9 */
|
|
void object_windows_query_end_session_result(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1008:2c1f */
|
|
void object_windows_focus_message(
|
|
Win16FarPtr ignored,
|
|
ObjectWindowsMessage *message); /* 1008:2c83 */
|
|
void object_windows_wm_hscroll_attached(
|
|
Win16FarPtr window,
|
|
ObjectWindowsMessage *message); /* 1018:1788 */
|
|
void object_windows_wm_vscroll_attached(
|
|
Win16FarPtr window,
|
|
ObjectWindowsMessage *message); /* 1018:17f8 */
|
|
void object_windows_wm_paint_attached(
|
|
Win16FarPtr window,
|
|
ObjectWindowsMessage *message); /* 1018:1868 */
|
|
void object_windows_wm_size_attached(
|
|
Win16FarPtr window,
|
|
ObjectWindowsMessage *message); /* 1018:18e9 */
|
|
void object_windows_track_mouse_until_button_up(
|
|
Win16FarPtr window,
|
|
ObjectWindowsMessage *message); /* 1018:1986 */
|
|
|
|
extern uint8_t g_object_windows_focus_event_marker; /* 1028:06f2 */
|
|
|
|
void win16_call_object_wndclass_method(
|
|
Win16FarPtr procedure,
|
|
Win16FarPtr object,
|
|
WNDCLASS16 *window_class);
|
|
Win16FarPtr object_windows_turbo_window_class_name(
|
|
Win16FarPtr window); /* 1018:0d6a */
|
|
void object_windows_forward_default(
|
|
Win16FarPtr window, ObjectWindowsMessage *message); /* 1018:0c3d */
|
|
void object_windows_set_flag_4_if_windowed(
|
|
uint16_t ignored, Win16FarPtr object); /* 1018:0cc7 */
|
|
|
|
#endif
|