Files
ddidderr 8b99e9607c feat(reconstruction): complete binary-backed C recovery
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
2026-08-23 16:41:17 +02:00

221 lines
81 KiB
Plaintext

start end status object_id object_name c_type initialization evidence notes
1028:0311 1028:0311 verified alignment_0311 g_alignment_0311 const uint8_t Static zero byte between independently terminated high-score strings. Exact binary byte; zero readers, writers, and relocations; complete verified referring-function closure Explicit one-byte string-table alignment/reserve.
1028:0335 1028:0335 verified alignment_0335 g_alignment_0335 const uint8_t Static zero byte between independently terminated high-score strings. Exact binary byte; zero readers, writers, and relocations; complete verified referring-function closure Explicit one-byte string-table alignment/reserve.
1028:0395 1028:0395 verified alignment_0395 g_alignment_0395 const uint8_t Static zero byte between the HighScore title and version-error text. Exact binary byte; zero readers, writers, and relocations; complete verified referring-function closure Explicit one-byte string-table alignment/reserve.
1028:0459 1028:0459 verified alignment_0459 g_alignment_0459 const uint8_t Static zero separator between WAV and pal resource-type strings. Exact binary byte; zero readers, writers, and relocations; complete verified referring-function closure Explicit one-byte resource-string separator.
1028:0561 1028:0561 verified alignment_0561 g_alignment_0561 const uint8_t Static zero before the packed WNDCLASS16 object. Exact binary byte; zero readers, writers, and relocations; complete verified referring-function closure Explicit one-byte WNDCLASS alignment.
1028:0585 1028:0585 verified alignment_0585 g_alignment_0585 const uint8_t Static zero between TPWinCrt class name and HWND state. Exact binary byte; zero readers, writers, and relocations; complete verified referring-function closure Explicit one-byte runtime-state alignment.
1028:066b 1028:066b verified alignment_066b g_alignment_066b const uint8_t Static zero between dialog template byte and thunk selector. Exact binary byte; zero readers, writers, and relocations; complete verified referring-function closure Explicit one-byte ObjectWindows alignment.
1028:068b 1028:068b verified alignment_068b g_alignment_068b const uint8_t Static zero between thunk opcode template and TurboWindow class string. Exact binary byte; zero readers, writers, and relocations; complete verified referring-function closure Explicit one-byte ObjectWindows separator.
1028:06f3 1028:06f3 verified alignment_06f3 g_alignment_06f3 const uint8_t Static zero between focus marker and heap-reserve size. Exact binary byte; zero readers, writers, and relocations; complete verified referring-function closure Explicit one-byte runtime alignment.
1028:06fb 1028:06fb verified alignment_06fb g_alignment_06fb const uint8_t Static zero between heap-reserve flags and WinMain instance words. Exact binary byte; zero readers, writers, and relocations; complete verified referring-function closure Explicit one-byte startup-state alignment.
1028:076c 1028:07be verified reserved_runtime_to_game_state g_reserved_runtime_to_game_state uint8_t[83] Zero-fill gap between the 36-byte application object and Windows-version/game-state globals. Complete reference, relocation, and defined-data inventories contain no address in the range; complete verified referring-function closure Explicit unreferenced runtime/game-state reserve; all 83 bytes remain zero in-image.
1028:07c3 1028:07c3 verified alignment_07c3 g_alignment_07c3 uint8_t Zero-fill byte between Windows-version dword and palette-update state. Complete zero-reader/zero-writer/zero-relocation inventory; complete verified referring-function closure Explicit one-byte game-state alignment.
1028:4335 1028:43bd verified reserved_asset_to_wave_state g_reserved_asset_to_wave_state uint8_t[137] Zero-fill gap between bitmap-handle tables and WAVEOUTCAPS16. Complete reference, relocation, and defined-data inventories contain no address in the range; complete verified referring-function closure Explicit unreferenced asset/sound reserve; all 137 bytes remain zero in-image.
1028:4785 1028:4789 verified multimedia_state_alignment g_multimedia_state_alignment uint8_t[5] Zero-fill gap between multimedia initialized byte and stored Windows version. Complete zero-reader/zero-writer/zero-relocation inventory; complete verified referring-function closure Explicit five-byte multimedia state alignment/reserve.
1028:486c 1028:486c verified multimedia_path_separator_486c g_multimedia_path_separator_486c uint8_t Zero-fill byte between 200-byte system-directory buffer and CTL3D full-path buffer. Complete zero-reader/zero-writer/zero-relocation inventory; complete verified referring-function closure Explicit one-byte path-buffer separator.
1028:4a6d 1028:4a6d verified tpwincrt_separator_4a6d g_tpwincrt_separator_4a6d uint8_t Zero-fill byte between CTL3DV2 full-path buffer and TPWinCrt title. Complete zero-reader/zero-writer/zero-relocation inventory; complete verified referring-function closure Explicit one-byte unit-state separator.
1028:4b38 1028:4d37 verified tpwincrt_reserved_tail g_tpwincrt_reserved_tail uint8_t[512] Zero-fill tail after the 64-byte TPWinCrt input queue and before Borland heap request state. Complete reference, relocation, and defined-data inventories contain no address in the range; complete verified referring-function closure Explicit unreferenced TPWinCrt/unit reserve; all 512 bytes remain zero in-image.
1028:0000 1028:000f verified compiler_data_prefix g_compiler_data_prefix const uint8_t[16] Static exact bytes 00 00 00 00 05 00 followed by ten zero bytes; no relocation or direct reference. Binary bytes plus complete zero-reader/zero-writer inventory; complete verified referring-function closure Explicit compiler/module data prefix retained byte-for-byte; no semantic consumer exists in the image.
1028:006c 1028:009d verified main_window_dynamic_dispatch g_main_window_dynamic_dispatch const uint8_t[50] Static 22-byte Borland dynamic-message descriptor followed by seven relocated far entry points. Exact bytes and relocations at 0082..009a to entry ordinals 8..14; all targets and dispatcher verified; complete verified referring-function closure Complete main-window dynamic dispatch descriptor, preserved separately from the VMT at 009e.
1028:009e 1028:00ed verified main_window_vmt g_main_window_vmt const uint8_t[80] Static TWindow-derived VMT header plus eighteen relocated far methods. Constructor uses VMT 009e; exact relocations 00a6..00ea; all method targets/window paths verified; complete verified referring-function closure Exact main game-window VMT extent from size/header through final virtual slot.
1028:00ee 1028:010d verified highscore_dynamic_dispatch g_highscore_dynamic_dispatch const uint8_t[32] Static 16-byte Borland dynamic-message descriptor followed by four relocated far entry points. Exact bytes and relocations 00fe..010a to entry ordinals 20..23; high-score window behavior verified; complete verified referring-function closure Complete dynamic dispatch descriptor paired with the verified high-score VMT at 010e.
1028:015e 1028:017d verified full_child_dynamic_dispatch g_full_child_dynamic_dispatch const uint8_t[32] Static 16-byte Borland dynamic-message descriptor followed by four relocated far entry points. Exact bytes and relocations 016e..017a to entry ordinals 29..32; full-child handlers verified; complete verified referring-function closure Complete dynamic dispatch descriptor for the full-size child/help window class.
1028:017e 1028:01cd verified full_child_window_vmt g_full_child_window_vmt const uint8_t[80] Static TWindow-derived VMT header plus eighteen relocated far methods. Constructors use VMT 017e; exact relocations 0186..01ca; all window targets verified; complete verified referring-function closure Exact full-child/help window VMT from object size/header through final paint/message slot.
1028:01ce 1028:0221 verified text_dialog_vmt g_text_dialog_vmt const uint8_t[84] Static dialog-derived VMT header plus nineteen relocated far methods. High-score editor constructs VMT 01ce; exact relocations 01d6..021e; dialog lifecycle verified; complete verified referring-function closure Exact modal text-dialog VMT including dialog-specific terminal slots 225 and 226.
1028:0470 1028:0521 verified ctl3d_procedure_name_table g_ctl3d_procedure_name_table const uint8_t[178] Eleven adjacent NUL-terminated CTL3D export names in exact GetProcAddress order. Binary string units; verified 1010:01c2 loader resolves slots zero through ten and tests assert every name; complete verified referring-function closure Exact symbol table from CTL3DAUTOSUBCLASS through CTL3DUNREGISTER; variable-length packed strings total 178 bytes.
1028:0522 1028:0537 verified ctl3d_library_names g_ctl3d_library_names const char[2][11] Adjacent NUL-terminated strings CTL3D.DLL and CTL3DV2.DLL. Binary bytes and verified modern/legacy CTL3D search/load paths; complete verified referring-function closure Exact primary and fallback helper DLL names, including both terminators.
1028:05c0 1028:05cb verified system_timer_vmt g_system_timer_vmt const uint8_t[12] Static six-byte object descriptor plus relocated destructor entry at 05c8. Setup constructs VMT 05c0; relocation to entry ordinal 129; verified SystemTimer lifecycle/tests; complete verified referring-function closure Exact six-byte timer object size, negative size/header fields, and destructor virtual slot.
1028:060a 1028:064d verified object_windows_application_dispatch g_object_windows_application_dispatch const uint8_t[68] Static 28-byte application dispatch descriptor followed by ten relocated far handlers. Exact bytes and relocations 0626..064a to entry ordinals 178,179,181..188; application dispatch/tests verified; complete verified referring-function closure Complete ObjectWindows application dynamic table retained with every target address-backed.
1028:065a 1028:0665 verified object_windows_default_procedures g_object_windows_default_procedures const Win16FarPtr[3] Loader-relocated USER procedure pointers for ordinals 107, 447, and 308. NE relocations 136..138 and verified ObjectWindows default window/MDI procedure forwarding; complete verified referring-function closure Exact three far import slots used as framework default procedure identities.
1028:06c5 1028:06f1 verified borland_unit_descriptor_table g_borland_unit_descriptor_table const uint8_t[45] Static Borland unit descriptor bytes followed by six relocated far initialization/finalization entries. Exact bytes and relocations 06da..06ee to entry ordinals 227..232; complete verified startup/ExitProc chain; complete verified referring-function closure Exact compiler-generated unit lifecycle table; all six targets and ordering are represented.
1028:07db 1028:07e2 verified predicted_ball_position_milli g_predicted_ball_position_milli int32_t[2] Zero-fill; each physics substep publishes current position plus velocity as predicted X/Y before broadphase. Complete verified readers/writers 1000:c79c and 1000:9b69; reconstructed/tdkpin_physics.c and focused physics tests; complete verified referring-function closure Exact X then Y signed dword extent, write order, trigger rewrite, and bounds use are fully represented.
1028:0869 1028:086a verified unused_setup_word_0869 g_unused_setup_word_0869 uint16_t Zero-fill and explicitly written zero by game setup; never read anywhere in the complete reference inventory. Sole write 1000:03ff in verified setup and zero-reader proof; complete verified referring-function closure Explicit retained word is initialized state, not silently omitted padding; it has no in-image consumer.
1028:0871 1028:0872 verified physics_substeps_per_tick g_physics_substeps_per_tick uint16_t Configured from the clamped speed setting and snapshotted by physics before the one-based substep loop. Verified setup speed table and 1000:c79c loop; game-setup and physics tests; complete verified referring-function closure Exact unsigned zero-through-configured substep semantics and zero-substep rendering behavior are fully represented.
1028:4d38 1028:4d39 verified borland_heap_request_bytes g_borland_heap_request_bytes uint16_t Zero-fill; 1020:01ca stores the current allocation request before local/global attempts and reuses it across HeapError retries. Complete sole-function references; verified borland_try_get_mem source and heap core/path tests; complete verified referring-function closure Exact retry-stable uint16 request size, local/global threshold comparisons, and HeapError callback argument are fully represented.
1028:07ca 1028:07ca verified claw_animation_active g_claw_animation_active uint8_t Zero-fill; setup clears it, collision logic arms it, and the timer clears it after the claw returns to frame ten with the primary bank selected. Complete references; full timer state machine in reconstructed/tdkpin_timer_tick.c and test_timer_tick.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07e3 1028:07ea verified ball_slot_x_positions_milli g_ball_slot_x_positions_milli int32_t[2] Zero-fill; indexed save/load transfers active ball X for slots zero and one. Verified 1000:c36b/c426 stride plus full timer promotion/copy paths; gameplay-helper and timer tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07eb 1028:07f2 verified ball_slot_y_positions_milli g_ball_slot_y_positions_milli int32_t[2] Zero-fill; indexed save/load transfers active ball Y for slots zero and one. Verified 1000:c36b/c426 stride plus full timer promotion/copy paths; focused tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0803 1028:080a verified ball_slot_auxiliary_state g_ball_slot_auxiliary_state int32_t[2] Zero-fill; indexed save/load mirrors receiver +0bca for slots zero and one. Verified 1000:c36b/c426 and full timer slot promotion; focused tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:080b 1028:0816 verified ball_slot_real48_state g_ball_slot_real48_state BorlandReal48[2] Zero-fill; indexed save/load mirrors receiver +0bce..0bd3 for slots zero and one. Verified six-byte stride in 1000:c36b/c426 and full timer promotion; focused tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:086d 1028:086e verified claw_current_frame g_claw_current_frame uint16_t Setup initializes ten; timer steps it toward the target and selects release state 1..9/18 or rest state ten. Complete setup/timer references, exact claw table and test_timer_tick.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:086f 1028:0870 verified claw_target_frame g_claw_target_frame uint16_t Setup initializes ten; collision logic selects a target and timer resets it to ten after releasing a ball. Complete references and full timer claw state machine; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0873 1028:0873 verified claw_alternate_bank g_claw_alternate_bank uint8_t Zero-fill; passed as the claw atlas bank while moving and cleared on release completion. Complete references, verified claw renderer and full timer tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0876 1028:0879 verified timer_tick_counter g_timer_tick_counter uint32_t Zero-fill; incremented after timer guards, drives intro quotient/remainder schedules, and resets when a new game is initialized. Setup and full 1000:eab1 disassembly/source; test_timer_tick.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:087a 1028:087d verified intro_marquee_counter g_intro_marquee_counter uint32_t Zero-fill; increments on each six-tick intro marquee redraw and selects phase modulo 49. Setup and full timer GDI path; test_timer_tick.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07c5 1028:07c5 verified collision_refresh_pending g_collision_refresh_pending uint8_t Zero-fill; setup clears it, adding a player sets it, and the next timer pass refreshes all 175 collision records before clearing it. Writes at 1000:03e0/6959/eb2c and timer read at 1000:eb0b; exact add-player branch in reconstructed/tdkpin_key_input.c and reconstructed/tests/test_key_release.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07cf 1028:07cf verified debug_keys_enabled g_debug_keys_enabled uint8_t Zero-fill and explicitly cleared on setup entry; no in-image writer enables it. Complete reference inventory: verified setup 1000:0270 and both debug branches in verified 1000:638e; reconstructed/tests/test_game_setup.c and test_key_release.c; complete verified referring-function closure Nonzero, possible only through external mutation, enables F2 target-rotation reset and F7 ball-position restore; normal execution leaves both paths dormant.
1028:07f3 1028:07fa verified ball_slot_velocity_x_milli g_ball_slot_velocity_x_milli int32_t[2] Zero-fill; indexed ball-slot save/load stores horizontal velocity for slots zero and one. Verified 1000:c36b/c426 slot stride and verified 1000:638e nudge updates; timer slot-one-to-zero transfer at 1000:f24d; gameplay-helper and key-release tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07fb 1028:0802 verified ball_slot_velocity_y_milli g_ball_slot_velocity_y_milli int32_t[2] Zero-fill; indexed ball-slot save/load stores vertical velocity for slots zero and one. Verified 1000:c36b/c426 slot stride, verified 1000:638e launch publication and space-nudge updates, timer slot-one-to-zero transfer at 1000:f25b; focused tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0260 1028:02a9 verified setup_low_memory_text g_setup_low_memory_text const char[74] Static NUL-terminated German insufficient-memory message. Binary bytes and sole verified MessageBox path in 1000:0270; reconstructed/tests/test_game_setup.c; complete verified referring-function closure Exact owner-zero low-memory text shown before window Close and RuntimeExit(0).
1028:02aa 1028:02c2 verified setup_dialog_caption g_setup_dialog_caption const char[25] "Static NUL-terminated ""TDK Pinball Machine 1.00""." Binary bytes and both verified setup MessageBox paths; reconstructed/tests/test_game_setup.c; complete verified referring-function closure Exact shared setup error caption.
1028:02c3 1028:02c6 verified setup_ini_suffix g_setup_ini_suffix const char[4] "Static NUL-terminated ""INI""." Binary bytes and verified parameter-string/extension replacement path in 1000:0270; complete verified referring-function closure Exact suffix appended after the executable-name dot.
1028:02c7 1028:02cf verified setup_ini_section g_setup_ini_section const char[9] "Static NUL-terminated ""Settings""." Binary bytes and both verified GetPrivateProfileInt call sites; complete verified referring-function closure Exact INI section shared by Language and Speed.
1028:02d0 1028:02d8 verified setup_ini_language_key g_setup_ini_language_key const char[9] "Static NUL-terminated ""Language""." Binary bytes and verified default/clamp path in 1000:0270; complete verified referring-function closure Returns 1..5; out-of-range values become one.
1028:02d9 1028:02de verified setup_ini_speed_key g_setup_ini_speed_key const char[6] "Static NUL-terminated ""Speed""." Binary bytes and verified default/clamp/timer mapping in 1000:0270; complete verified referring-function closure Returns 1..5; out-of-range values become three.
1028:02df 1028:02f3 verified setup_no_timer_text g_setup_no_timer_text const char[21] "Static ""No timer available!"" followed by two NUL bytes." Binary bytes and sole verified timer-construction failure MessageBox path; complete verified referring-function closure Exact HWND-owned error followed directly by RuntimeExit(0), without window Close.
1028:0306 1028:0310 verified help_window_title g_help_window_title const char[11] "Static NUL-terminated ""HelpScreen""." Binary bytes and sole verified full-child constructor use in 1000:6bf8; reconstructed/tests/test_key_input.c; complete verified referring-function closure Exact title of the F1-created help window.
1028:0010 1028:0013 verified highscore_xor_key g_highscore_xor_key const uint32_t Static bytes 49 57 49 4b, interpreted little-endian as 0x4b495749. Binary bytes; complete reader inventory 1000:a8ea/a99c; reconstructed/tdkpin_highscores.c; reconstructed/tests/test_highscores.c; complete verified referring-function closure Exact dword XOR key applied symmetrically to all ten serialized score values.
1028:0014 1028:0023 verified highscore_file_header g_highscore_file_header const uint8_t[16] "Static bytes ""TDK Highscores"" followed by two NUL bytes." Binary bytes; complete save/write and load/ShortString-compare paths 1000:a8ea/a99c; reconstructed/tests/test_highscores.c; complete verified referring-function closure Exact 16-byte authentication header; both NUL bytes participate in comparison and serialization.
1028:010e 1028:015d verified highscore_window_vmt g_highscore_window_vmt TdkpinHighscoreWindowVmt Static 0x45/-0x45 header, zero reserved dword, and eighteen loader-relocated far methods. Binary bytes; relocations 6:46-63; all method targets including paint 1000:5c13 verified; reconstructed/tdkpin_highscores.h; reconstructed/tests/test_highscores.c; complete verified referring-function closure Exact 80-byte TWindow-derived VMT from destructor +08 through paint +4c, with every slot named and address-backed.
1028:02f4 1028:02ff verified highscore_heading g_highscore_heading const char[12] "Static NUL-terminated ""HIGH SCORES""." Binary bytes; heading TextOut in verified 1000:5c13; reconstructed/tests/test_highscores.c; complete verified referring-function closure The terminal NUL at 02ff is also deliberately addressed as the empty rank-10 prefix.
1028:0300 1028:0305 verified highscore_rank_affixes g_highscore_rank_affixes const char[2][3] "Static consecutive C strings "" "" and "". ""." Binary bytes; rank construction in verified 1000:5c13; reconstructed/tests/test_highscores.c; complete verified referring-function closure Two leading spaces align ranks 1..9 with rank 10; dot-space follows every formatted rank.
1028:0312 1028:031f verified highscore_save_file_name g_highscore_save_file_name const char[14] "Static ""HiScores.Dat"" followed by two NUL bytes." Binary bytes; sole _lcreat argument at 1000:a8ee-a8f5; reconstructed/tests/test_highscores.c; complete verified referring-function closure First NUL terminates the KERNEL filename; the adjacent second NUL is retained in the exact object extent.
1028:0320 1028:032c verified highscore_load_file_name g_highscore_load_file_name const char[13] "Static NUL-terminated ""HiScores.Dat""." Binary bytes; both _lopen mode call sites at 1000:a9a4-a9c0; reconstructed/tests/test_highscores.c; complete verified referring-function closure Exact shared filename for the mode-0 and mode-0x40 open attempts.
1028:032d 1028:0334 verified highscore_default_name g_highscore_default_name const char[8] "Static NUL-terminated ""No Name""." Binary bytes; ten exact far-strcpy destinations in default path 1000:aaa2-ab33; reconstructed/tests/test_highscores.c; complete verified referring-function closure Exact fallback name copied independently into every 22-byte name slot.
1028:0336 1028:0348 verified highscore_edit_initial_name g_highscore_edit_initial_name const char[19] "Static NUL-terminated ""TDK Pinball Player""." Binary bytes; sole selected-slot far-strcpy in verified 1000:ab3c; reconstructed/tests/test_highscores.c; complete verified referring-function closure Exact initial editable name installed before the modal text dialog.
1028:0349 1028:0372 verified highscore_edit_caption g_highscore_edit_caption const char[42] Static NUL-terminated congratulations caption. Binary bytes; sole text-dialog caption argument in verified 1000:ab3c; reconstructed/tests/test_highscores.c; complete verified referring-function closure "Exact caption ""Congratulations! This is a Top Ten Score!""."
1028:0373 1028:038a verified highscore_edit_label g_highscore_edit_label const char[24] Static NUL-terminated input prompt. Binary bytes; sole text-dialog label argument in verified 1000:ab3c; reconstructed/tests/test_highscores.c; complete verified referring-function closure "Exact prompt ""Please input your name:""."
1028:038b 1028:0394 verified highscore_window_title g_highscore_window_title const char[10] "Static NUL-terminated ""HighScore""." Binary bytes; sole centered-child title argument in verified 1000:ab3c; reconstructed/tests/test_highscores.c; complete verified referring-function closure Exact title of the modeless high-score list window.
1028:07d2 1028:07d2 verified highscore_insert_index g_highscore_insert_index uint8_t Zero-fill; set to the one-based inserted slot by 1000:abe5 and consumed by 1000:ab3c. Verified insert/show lifecycle and complete reference inventory; reconstructed/tests/test_highscores.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07d3 1028:07da verified ball_position_milli g_ball_position_milli int32_t[2] Zero-fill; reset to 325000/413000 by verified 1000:9e85 and updated throughout physics/gameplay. Verified reset, pixel projection 1000:9bca, bounds/dynamic-record and ball-slot helpers; complete reference inventory; reconstructed/tests/test_ball_render.c and test_gameplay_helpers.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:081f 1028:0828 verified player_marker_counts g_player_marker_counts int16_t[5] Zero-fill; indexed one-based by active player and initialized/updated by game-state paths. Verified six-marker projection in 1000:a604; complete indexed reference inventory; reconstructed/tests/test_gameplay_helpers.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0817 1028:081a verified player_ready_flags g_player_ready_flags uint8_t[4] Zero-fill; each configured one-based player slot is set to one by 1000:a72c. Verified initialization and exact extent in 1000:a72c; reconstructed/tests/test_player_state.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:081b 1028:081e verified player_item_group_flags g_player_item_group_flags uint8_t[4] Zero-fill; each configured one-based player slot is set to one after marker initialization. Verified initialization and exact extent in 1000:a72c; reconstructed/tests/test_player_state.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0829 1028:0838 verified player_marker_score_thresholds g_player_marker_score_thresholds int32_t[4] Zero-fill then initialized by startup/game setup; read one-based by score-award level. Verified indexed comparison in 1000:bc36 and exact boundary against marker counts/levels; reconstructed/tests/test_scoring.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0839 1028:0848 verified player_marker_levels g_player_marker_levels int32_t[4] Zero-fill; initialized to one for configured players and incremented when score thresholds are crossed. Verified initialization 1000:a72c and increment/limit logic 1000:bc36; player-state/scoring tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0992 1028:09a1 verified player_secondary_scores g_player_secondary_scores int32_t[4] Zero-fill; reset for configured players and multiplied for active-player display. Verified reset 1000:a72c and active redraw 1000:acc2; reconstructed/tests/test_player_state.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:09a2 1028:09a5 verified player_score_multipliers g_player_score_multipliers uint8_t[4] Zero-fill; initialized to one and used as unsigned byte factors for secondary-score display. Verified reset 1000:a72c and multiply 1000:acc2; reconstructed/tests/test_player_state.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:09a6 1028:09ad verified player_sprite_indices g_player_sprite_indices uint16_t[4] Zero-fill; reset to zero and consumed as indices into the 400-series sprite bitmap array. Verified reset 1000:a72c and active-player composite 1000:acc2/0002; player-state/player-sprite tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0874 1028:0874 verified score_double_active g_score_double_active uint8_t Zero-fill; cleared by player initialization, set by sprite effect 7, and doubles score deltas while nonzero. Verified lifecycle in 1000:a72c/bc36/c4e1; complete reference inventory; player-state/scoring tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0875 1028:0875 verified special_respawn_active g_special_respawn_active uint8_t Zero-fill; set only on the special collision-position respawn branch and cleared on normal ball end. Verified both writes in 1000:ae6e and complete reference inventory; reconstructed/tests/test_turn_state.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0855 1028:0858 verified target_rotation_state g_target_rotation_state int32_t Zero-fill; selects DAT600 frames 1..5 and the rotation/composite branch at values 6 and above. Verified full render/rotation consumer 1000:6f27 and complete reference inventory; reconstructed/tests/test_mechanism_render.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0851 1028:0854 verified panel_animation_frame g_panel_animation_frame int32_t Zero-fill; drives the nine-phase 1..281 panel animation and entry-frame sound events. Verified complete render consumer 1000:7440 and reset writer 1000:9e85; full reference inventory; reconstructed/tests/test_panel_animation.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07c7 1028:07c7 verified target_rotation_armed g_target_rotation_armed uint8_t Zero-fill; event flag 0400 clears the rotation state and sets this byte only while both rotation bytes are zero. Verified gate/writer in 1000:b476 and complete reference inventory; reconstructed/tests/test_collision_events.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07c8 1028:07c8 verified target_set_complete g_target_set_complete uint8_t Zero-fill; set when all five target record words are nonzero and suppresses rearming while set. Verified writer 1000:9e85, gate 1000:b476, and complete reference inventory; ball-render/collision-event tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:087e 1028:08a5 verified highscore_scores g_highscore_scores int32_t[10] Zero-fill; loaded/defaulted by 1000:a99c, reordered by 1000:abe5, rendered by 1000:5c13, and XOR-serialized by 1000:a8ea. Complete verified reader/writer inventory across 1000:5c13/a8ea/a99c/abe5; reconstructed/tests/test_highscores.c; complete verified referring-function closure Exact ten signed dwords, one-based addressing, persistence, ordering, comparison, and decimal rendering are fully proven.
1028:08a6 1028:0981 verified highscore_names g_highscore_names char[10][22] Zero-fill; directly read as 220 bytes or defaulted, shifted/edited by UI, rendered, and serialized. Complete verified lifecycle 1000:5c13/a8ea/a99c/ab3c/abe5; reconstructed/tests/test_highscores.c; complete verified referring-function closure Exact ten 22-byte slots, short-read behavior, defaulting, shift/edit, C-string display truncation, and persistence layout are fully proven.
1028:0024 1028:006b verified tdkpin_application_vmt g_tdkpin_application_vmt struct TdkpinApplicationVmt Static eight-byte VMT header followed by sixteen relocated far methods. Binary hash b6da1047d807ee6b4c7ba9aac27c80fa2c968c483abb80385a33e79d28ebe717; relocations 6:3-16; all method targets and program-entry VMT calls verified.; complete verified referring-function closure Size 0x12, negative size 0xffee, reserved zero dword, destructor +08, Idle +0c, InitApplication +10, InitInstance +14, Setup +18, Run +1c, MessageLoop +20, PreProcess +24, dialog/accelerator/MDI +28/+2c/+30, MakeWindow +34, ExecDialog +38, ValidateWindow +3c, Error +40, CanClose +44.
1028:0396 1028:03c7 verified tdkpin_version_error_text tdkpin_version_error_text const char[50] Static NUL-terminated minimum-version message. Binary bytes and verified indirect MessageBox path in ne_program_entry.; complete verified referring-function closure Exact text states that Windows 3.10 or higher is required.
1028:03c8 1028:03e0 verified tdkpin_version_dialog_title tdkpin_version_dialog_title const char[25] Static NUL-terminated application caption. Binary bytes and verified minimum-version MessageBox arguments.; complete verified referring-function closure "Exact caption ""TDK Pinball Machine 1.00""."
1028:03e1 1028:03e9 verified tdkpin_application_object_name tdkpin_application_object_name const char[9] "Static bytes ""Lbmpapp"" followed by two NUL bytes." Binary bytes and verified object_windows_application_construct name argument.; complete verified referring-function closure Exact ObjectWindows application object name extent.
1028:046a 1028:046f verified multimedia_path_environment_name multimedia_path_environment_name const char[6] "Static bytes ""PATH"" followed by two NUL bytes." Binary bytes and verified environment lookup in multimedia_locate_library.; complete verified referring-function closure Exact DOS environment variable name used for final CTL3D search-list fallback.
1028:06f2 1028:06f2 verified object_windows_focus_event_marker g_object_windows_focus_event_marker uint8_t Static value 1 and redundantly set to 1 by 1008:2c83. Complete reference inventory proves one writer and no readers; focused handler tests.; complete verified referring-function closure Exact write-only marker with no inferred role beyond its observed store.
1028:0652 1028:0655 verified win16_create_dialog_param g_win16_create_dialog_param Win16FarPtr NE loader relocation to USER ordinal 241. Verified sole modeless call, bound-thunk callback ledger, and dialog tests.; complete verified referring-function closure Exact far import pointer for CreateDialogParam16.
1028:0656 1028:0659 verified win16_dialog_box_param g_win16_dialog_box_param Win16FarPtr NE loader relocation to USER ordinal 239. Verified sole modal call, bound-thunk callback ledger, and dialog tests.; complete verified referring-function closure Exact far import pointer for DialogBoxParam16.
1028:066a 1028:066a verified dialog_alternate_template g_dialog_alternate_template uint8_t Static zero with no in-image writer. Verified sole reader and both synthetic branch cases.; complete verified referring-function closure Selects integer dialog template 7f02 normally or 7f05 when externally nonzero.
1028:0748 1028:076b verified tdkpin_application_object g_tdkpin_application_object uint8_t[36] Zero-fill static storage constructed in-place with VMT offset 0x0024. Verified application constructor, VMT Run/destructor calls, static dispose mode zero, and program-entry tests.; complete verified referring-function closure Exact process-lifetime ObjectWindows application instance.
1028:07bf 1028:07c2 verified tdkpin_windows_version g_tdkpin_windows_version uint32_t Full DX:AX return from GetVersion16. Verified 2.x, 3.9, 3.10, and 4.x branches and full-dword publication.; complete verified referring-function closure Low-byte major, next-byte minor; upper word retained but not used by threshold.
1028:07c9 1028:07c9 verified gameplay_transition_pending g_gameplay_transition_pending uint8_t Zero-fill; set by verified 1000:a70e and setup/input paths. Verified writer plus complete reference inventory.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07d0 1028:07d0 verified player_count g_player_count uint8_t Zero-fill; configured during setup and cleared by verified 1000:a70e. Verified clear and complete loop/reference evidence.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0849 1028:0850 verified collision_path_continuation g_collision_path_continuation int32_t[2] Zero-fill; updated after every accepted circle/segment and consumed by relative-mode records. Complete sole-function read/write inventory, exact 32-bit wrap, and branch tests.; complete verified referring-function closure X then Y continuation; circles retain point1 center, segments retain point2 endpoint.
1028:09ae 1028:4217 verified collision_records_1_174 g_collision_records_1_174 TdkpinCollisionRecord[174] Zero-fill; initialized by 174 indexed calls in the large setup routine. Verified 83-byte writer 1008:0138; OBJECTS.tsv live dump for IDs 1..174; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:4218 1028:4262 verified collision_record_175_prefix g_collision_record_175_prefix uint8_t[75] Zero-fill; initialized as collision record 175. Verified writer 1008:0138 and OBJECTS.tsv row 175; final eight bytes are separately shared with word-quad storage at 4263..426a.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:03ea 1028:0441 verified sound_resource_byte_counts g_sound_resource_byte_counts uint32_t[22] Static little-endian RIFF byte lengths for resource numbers 2001..2022; six absent resource IDs have zero entries. Binary bytes 1028:03ea-0441; WAV payload lengths in assets/decoded/audio; indexed reads at 1008:1038-1048 and 113f-114d; reconstructed/tdkpin_data.c; reconstructed/tests/test_sound.c; complete verified referring-function closure Exact 22-entry table and one-based address arithmetic are represented; play sound number zero deliberately reaches the preceding dword exactly as the binary does.
1028:0442 1028:0445 verified sound_ini_suffix sound_ini_suffix char[4] "Static NUL-terminated bytes ""INI""." Binary bytes; far strcat at 1008:1080-1090; reconstructed/tests/test_sound.c; complete verified referring-function closure Replaces the executable extension after the first dot found by the Borland ShortString Position call.
1028:0446 1028:044e verified sound_ini_section sound_ini_section char[9] "Static NUL-terminated bytes ""Settings""." Binary bytes; GetPrivateProfileInt16 call 1008:1095-10ac; reconstructed/tests/test_sound.c; complete verified referring-function closure Exact INI section far pointer.
1028:044f 1028:0454 verified sound_ini_key sound_ini_key char[6] "Static NUL-terminated bytes ""Sound""." Binary bytes; GetPrivateProfileInt16 call 1008:1095-10ac; reconstructed/tests/test_sound.c; complete verified referring-function closure Exact sound-enable INI key with default value one.
1028:0455 1028:0458 verified wave_resource_type wave_resource_type char[4] "Static NUL-terminated bytes ""WAV""." Binary bytes; FindResource16 type argument at 1008:105c-1066; reconstructed/tests/test_sound.c; complete verified referring-function closure Exact custom NE resource type used for resource numbers 2001..2022.
1028:045a 1028:045d verified palette_resource_type palette_resource_type char[4] "Static NUL-terminated bytes ""pal""." Binary bytes; verified FindResource16 type argument 1008:1337-1340; reconstructed/tests/test_palette.c; complete verified referring-function closure Exact lowercase custom NE resource type used to load palette resource 999.
1028:045e 1028:0461 verified bitmap_resource_type bitmap_resource_type char[4] "Static NUL-terminated bytes ""DAT""." Binary bytes; verified FindResource16 type argument 1008:14ae-14b7; reconstructed/tests/test_bitmap_loader.c; complete verified referring-function closure Exact uppercase custom NE resource type for bitmap/DIB resources.
1028:0462 1028:0469 verified display_dc_driver display_dc_driver char[8] "Static NUL-terminated bytes ""Display""." Binary bytes; sole CreateDC16 driver argument 1008:1537-154c; reconstructed/tests/test_bitmap_loader.c; complete verified referring-function closure Exact display-driver name; device, output, and initialization-data pointers are all null.
1028:07c6 1028:07c6 verified game_tilted game_tilted uint8_t Zero-filled; reset during game/ball setup and set after the nudge threshold is exceeded. Verified sound-dispatch gate 1008:0002; complete reference inventory identifies readers in key, collision, timer, and gameplay paths plus writers 1000:638e and 1000:9e85.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0538 1028:053f verified tpwincrt_initial_placement g_tpwincrt_initial_placement INT16[4] Four static words 0x8000. Verified CreateWindow16 x/y/width/height arguments and lifecycle tests.; complete verified referring-function closure Exact CW_USEDEFAULT placement tuple.
1028:0540 1028:054b verified tpwincrt_text_geometry g_tpwincrt_text_geometry struct TpWinCrtTextGeometry Initialized to 80 columns, 25 rows, and zero cursor/view origins. All readers/writers verified, including text output, line advance, create/destroy, paint, resize, caret, and circular addressing tests.; complete verified referring-function closure Six exact uint16 values: columns, rows, cursor column/row, and viewport column/row.
1028:054c 1028:054f verified tpwincrt_inactive_format_pointer g_tpwincrt_inactive_format_pointer Win16FarPtr Relocated pointer to 1028:0550. DGROUP relocation and verified 1008:24a5 wvsprintf call.; complete verified referring-function closure Exact far pointer to the inactive-caption format.
1028:0550 1028:055d verified tpwincrt_inactive_format g_tpwincrt_inactive_format const char[14] "Static bytes for ""(Inactive %s)"" plus NUL." Binary bytes and verified ExitProc formatting tests.; complete verified referring-function closure Exact clean-shutdown caption template.
1028:055e 1028:055e verified tpwincrt_auto_scroll g_tpwincrt_auto_scroll uint8_t Static value 1. Verified final branch in 1008:1b11 and text-output tests.; complete verified referring-function closure Keeps the output cursor visible after each bulk write.
1028:055f 1028:055f verified tpwincrt_ctrl_z_is_eof g_tpwincrt_ctrl_z_is_eof uint8_t Static value 0. Verified Ctrl-Z line-termination branch and focused tests.; complete verified referring-function closure Optional DOS EOF semantics for TPWinCrt line input.
1028:0560 1028:0560 verified tpwincrt_break_check_enabled g_tpwincrt_break_check_enabled uint8_t Static value 1; cleared by the clean shutdown ExitProc. All Ctrl-C/create readers and the ExitProc writer are verified.; complete verified referring-function closure Exact active-runtime break-check lifecycle.
1028:0562 1028:057b verified wndclass_tpwincrt tpwincrt_window_class WNDCLASS16 Static style/zero fields plus runtime hInstance/icon/cursor stores in 1008:2554. Wine 11.15 WNDCLASS16 layout; DGROUP relocation 0564 -> entry ordinal 119; relocation 0578 -> 1028:057c; assembly 1008:255e-2593.; complete verified referring-function closure style=CS_VREDRAW|CS_HREDRAW; wndproc=1008:2219; no class/window extra bytes; application icon and arrow cursor; background brush COLOR_WINDOW+1; no menu; class name TPWinCrt.
1028:057c 1028:0584 verified tpwincrt_class_name tpwincrt_class_name char[9] Static initialized bytes 54 50 57 69 6e 43 72 74 00. Relocation 1028:0578 -> 1028:057c; RegisterClass16 path 1008:2554.; complete verified referring-function closure NUL-terminated TPWinCrt class name used by the verified WNDCLASS16 object.
1028:0586 1028:0587 verified tpwincrt_window_handle g_tpwincrt_window HWND16 Static zero; assigned from every 1008:2219 callback entry. Store at 1008:2230-2233 and all TPWinCrt USER call sites.; complete verified referring-function closure Process-wide TPWinCrt HWND used by painting, caret, scrolling, focus, and teardown paths.
1028:0588 1028:0589 verified tpwincrt_ring_row_origin g_tpwincrt_ring_row_origin uint16_t Static zero; advanced/wrapped at bottom-row line advance. Verified circular addressing and scrolling tests.; complete verified referring-function closure Exact circular physical-row origin.
1028:058a 1028:058b verified tpwincrt_input_count g_tpwincrt_input_count uint16_t Static zero; incremented by WM_CHAR and decremented by blocking dequeue. Verified enqueue, poll, wait, dequeue, shift, and overflow paths.; complete verified referring-function closure Exact signed-compared count for the 64-byte queue.
1028:058c 1028:058c verified tpwincrt_window_created g_tpwincrt_window_created uint8_t Static zero; set on create and cleared after destroy. Verified create/destroy and all lazy-window/scroll/shutdown gates.; complete verified referring-function closure Exact process-wide live-window Boolean.
1028:058d 1028:058d verified tpwincrt_has_focus g_tpwincrt_has_focus uint8_t Static zero; set/cleared only by verified 1008:21ba/21ce. Reads in verified caret and size paths; exact focus handlers at 1008:21ba and 21ce.; complete verified referring-function closure Boolean focus state with proven caret ordering.
1028:058e 1028:058e verified tpwincrt_caret_enabled g_tpwincrt_caret_enabled uint8_t Static zero; set only across a blocking input wait. Verified read/wait/focus/resize caret lifecycle.; complete verified referring-function closure Exact Boolean controlling focus-owned caret lifetime.
1028:058f 1028:058f verified tpwincrt_paint_message_active g_tpwincrt_paint_message_active uint8_t Static zero; set only around WM_PAINT drawing. Branch in verified 1008:1779/17e2; stores in 1008:1dcc.; complete verified referring-function closure Selects matched BeginPaint16/EndPaint16 instead of GetDC16/ReleaseDC16.
1028:0590 1028:05bf verified tpwincrt_key_bindings g_tpwincrt_key_bindings TpWinCrtKeyBinding[12] Static 48-byte table represented verbatim in reconstructed/tdkpin_data.c. Binary bytes 1028:0590-05bf; indexed loop disassembly 1008:2170-21b4.; complete verified referring-function closure Ordered bindings for Left/Right/Home/End/Up/Down/PageUp/PageDown with exact Ctrl requirement, horizontal/vertical axis, and Win16 scroll command.
1028:05cc 1028:0609 verified object_windows_base_message_table g_object_windows_base_message_table ObjectWindowsMessageTable9 Static parent/cache zero, count 9, ids 0115,0114,0111,0010,0002,0082,0006,0011,0014, and nine relocated far handlers. Binary bytes; relocations 1028:05e6-0606; verified resolver and focused message/command/scroll tests.; complete verified referring-function closure Exact 62-byte mutable-cache table layout represented in C; all nine handler functions and every id-to-address mapping are now verified.
1028:0222 1028:022b verified tdkpin_module_name tdkpin_module_name char[10] "Static NUL-terminated bytes ""FLIPPER3D""." Binary bytes; verified multimedia initialization call 1000:0100; path locator input tests.; complete verified referring-function closure Exact module-name far argument used while locating CTL3D relative to the executable.
1028:022c 1028:0244 verified tdkpin_application_title tdkpin_application_title char[25] "Static NUL-terminated bytes ""TDK Pinball Machine 1.00""." Binary bytes; verified MainWindow constructor and second-instance MessageBox frames.; complete verified referring-function closure Exact application/window title and refusal-dialog caption.
1028:0245 1028:025f verified tdkpin_already_running_text tdkpin_already_running_text char[27] "Static OEM/ANSI bytes ""Der Flipper läuft bereits!"" plus NUL." Binary bytes; verified second-instance MessageBox frame 1000:0144-015f.; complete verified referring-function closure Exact German already-running refusal text.
1028:064e 1028:0651 verified object_windows_application g_object_windows_application Win16FarPtr Static null; published by verified 1018:1a61 after root construction. Write at 1018:1a93-1a99; reads in application/window routing across Code1, Code2, and Code4; constructor lifecycle tested.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:066c 1028:066d verified object_windows_thunk_code_selector g_object_windows_thunk_code_selector uint16_t Static zero; updated to each newly allocated thunk pool's executable selector. Disassembly 1018:01dc-02f9; reconstructed/tests/test_bound_thunks.c; complete verified referring-function closure Stored in the next pool's header before replacement and used as the current pool selector lifecycle marker.
1028:0666 1028:0669 verified win16_message_box g_win16_message_box Win16FarPtr NE loader relocation binds USER ordinal 1 at startup. Relocation record 139; all indirect readers inventoried; verified application-error call 1018:1f14 and focused test.; complete verified referring-function closure Process-wide far import pointer for MessageBox16; argument semantics at the reconstructed ObjectWindows call site are exact.
1028:066e 1028:0671 verified object_windows_free_thunk g_object_windows_free_thunk Win16FarPtr Static null; populated with 35 generated thunks per 256-byte pool. Disassembly 1018:01dc-0340; reconstructed/tests/test_bound_thunks.c; complete verified referring-function closure Exact LIFO head across pool construction, allocation, release, and reallocation; each free thunk stores the previous far head at +3.
1028:0672 1028:0675 verified object_windows_dispatch_proc g_object_windows_dispatch_proc Win16FarPtr Static null; assigned the MakeProcInstance16 result by 1018:1a61 and consumed by new thunk pools. Verified constructor write, thunk-pool copy/use, destructor FreeProcInstance, and focused application/thunk tests.; complete verified referring-function closure Shared procedure reached by every generated bound thunk; exact MakeProcInstance/FreeProcInstance ownership lifecycle is represented.
1028:0676 1028:0679 verified object_windows_creating_object g_object_windows_creating_object Win16FarPtr Published immediately before native creation and consumed by bootstrap WNDPROC 1018:018b. Verified writer 1018:134f, bootstrap reader/transition, exact extent, and creation tests.; complete verified referring-function closure Exact temporary object handoff until HWND-to-object thunk binding completes.
1028:067a 1028:067d verified object_windows_selector_property object_windows_selector_property_name char[4] Static initialized bytes 4f 57 31 00. TDKPIN.EXE data bytes; SetProp16 call at 1018:004a-0059.; complete verified referring-function closure NUL-terminated property name OW1; stores the bound object's selector.
1028:067e 1028:0681 verified object_windows_offset_property object_windows_offset_property_name char[4] Static initialized bytes 4f 57 32 00. TDKPIN.EXE data bytes; SetProp16 call at 1018:005a-0069.; complete verified referring-function closure NUL-terminated property name OW2; stores the bound object's offset.
1028:0682 1028:0685 verified object_windows_message_hook g_object_windows_message_hook Win16FarPtr Static null far pointer; the target image contains no writer. Complete Ghidra reference inventory: reads only at 1018:0127, 015f, and 08de; binary zero bytes; reconstructed/tests/test_message_dispatch.c; complete verified referring-function closure Optional generic ObjectWindows instrumentation hook. Normal TDKPIN execution always skips it because the selector word at 0684 remains zero; nonnull semantics are nevertheless reconstructed and branch-tested.
1028:0686 1028:068a verified object_windows_thunk_template object_windows_thunk_template uint8_t[5] Static bytes 5b 2e c4 1f ea copied to each generated code block at offset +2. Binary bytes; disassembly 1018:020e-0226; reconstructed/tests/test_bound_thunks.c; complete verified referring-function closure POP BX; CS:LES BX,[BX]; JMP FAR immediate template: consumes the CALL return address, loads the embedded bound object, and jumps through the shared dispatch procedure appended at +7.
1028:068c 1028:0697 verified object_windows_turbo_window_class_name object_windows_turbo_window_class_name char[12] "Static NUL-terminated bytes ""TurboWindow""." Binary bytes; four TWindow-derived VMTs select 1018:0d6a at +0x2c; focused far-pointer test.; complete verified referring-function closure Exact registered class-name provider for the shared ObjectWindows window implementation.
1028:0698 1028:06b2 verified object_windows_error_format object_windows_error_format char[27] "Static NUL-terminated bytes ""Error code = %d. Continue?""." Binary bytes and verified wvsprintf call at 1018:1f20-1f2c; reconstructed/tests/test_application_windows.c; complete verified referring-function closure Signed decimal application error prompt; the sole conversion consumes the caller's uint16 word as int16.
1028:06b3 1028:06c4 verified object_windows_error_caption object_windows_error_caption char[18] "Static NUL-terminated bytes ""Application Error""." Binary bytes and verified indirect MessageBox call at 1018:1f2f-1f3e.; complete verified referring-function closure Exact caption for the ObjectWindows application error prompt.
1028:06fc 1028:06fd verified win16_previous_instance g_win16_previous_instance HINSTANCE16 Initialized from the hPrevInstance startup word by 1020:0002. Startup write in 1020:0002; first-instance branch in verified 1018:1a61; reconstructed/tests/test_application.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:06fe 1028:06ff verified win16_instance g_win16_instance HINSTANCE16 Initialized from the current Win16 task instance by 1020:0002. 34 readers across resource/window/module paths; verified MakeProcInstance argument in 1018:1a61.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0700 1028:0701 verified win16_show_command g_win16_show_command uint16_t Initialized from DX by Win16 startup 1020:0002. Startup write at 1020:0015; read by verified application initialization 1018:1b57; reconstructed/tests/test_application.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0702 1028:0705 verified borland_command_line g_borland_command_line Win16FarPtr Initialized exactly from startup ES:BX by verified 1020:0002. Verified startup capture and command-token scanner 1020:0871; reconstructed/tests/test_borland_startup.c; complete verified referring-function closure Exact far pointer to the NUL-terminated DOS command tail, including independent selector and wrapping offset semantics.
1028:0706 1028:0707 verified borland_heap_segment_head g_borland_heap_segment_head uint16_t Static zero; points to current selector in the circular local-heap segment ring. Reads/writes in 1020:0167, 0195, 023c, 026a, 02d7; reconstructed/tests/test_heap_core.c; reconstructed/tests/test_heap_paths.c; complete verified referring-function closure Circular insertion, successful-segment rotation, predecessor unlink, and final zeroing are represented and verified across one- and two-segment lifecycles.
1028:0708 1028:0709 verified borland_local_heap_limit g_borland_local_heap_limit uint16_t Static value 0x0400. Threshold branches in 1020:01ca; reconstructed/tests/test_heap_paths.c; complete verified referring-function closure Below-threshold local-first and above-threshold global-first paths, including fallback, are represented and branch-tested.
1028:070a 1028:070b verified borland_heap_segment_bytes g_borland_heap_segment_bytes uint16_t Static value 0x2000. Header/free-size construction and full-segment release tests.; complete verified referring-function closure Exact 8-KiB local heap segment allocation size.
1028:06f4 1028:06f5 verified borland_heap_reserve_size g_borland_heap_reserve_bytes uint16_t Static value 0x2000. Binary bytes and reads in 1008:2dff/2e22.; complete verified referring-function closure Configured 8-KiB emergency heap reserve size.
1028:06f6 1028:06f9 verified borland_heap_reserve g_borland_heap_reserve Win16FarPtr Static null; allocated by 2dff and cleared by 2e22. Verified null/allocation/free/clear lifecycle tests for 1008:2de0, 2dff, and 2e22.; complete verified referring-function closure Emergency allocation released on OOM so the allocator can retry; underlying allocator is tracked separately.
1028:06fa 1028:06fa verified borland_heap_reserve_disabled g_borland_heap_reserve_disabled uint8_t Static zero. Branch in 1008:2e22 and writers in runtime setup/teardown.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:070c 1028:070d verified borland_global_alloc_flags g_borland_global_alloc_flags uint16_t Static value 2. Push at 1020:0222 and verified GlobalAlloc16 argument test.; complete verified referring-function closure Exact flags passed for Borland global heap blocks.
1028:070e 1028:0711 verified borland_heap_error_handler g_borland_heap_error_handler Win16FarPtr Set by 1008:2e76 relocation to 1008:2e22. Verified NE-segment binding to selector:2e22; indirect call at 1020:020c-0210.; complete verified referring-function closure Allocator callback returns 0 stop, 1 no retry, or 2 retry after emergency-reserve release.
1028:0712 1028:0715 verified borland_exit_proc g_borland_exit_proc Win16FarPtr Static zero; mutable ExitProc head. Reads/clears in 1020:00d2; writers throughout shutdown setup.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0716 1028:0717 verified borland_exit_code g_borland_exit_code_word uint16_t Static zero; AX store on runtime-exit entry. Stores/reads in 1020:0061 and related runtime entries.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0718 1028:071b verified borland_error_location g_borland_error_location struct BorlandErrorLocation Static zero; cleared by Halt and populated by run-error paths. Reads/writes in 1020:0002, 005d, 0061, and runtime error helpers.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:071c 1028:071d verified borland_windows_mode g_borland_windows_mode uint16_t Initialized from startup ES by verified 1020:0002. Verified startup capture, termination consumer 1020:0061, and focused tests.; complete verified referring-function closure Exact Win16 selector-valued mode word; nonzero selects ExitProc execution and GUI error reporting.
1028:071e 1028:071f verified borland_io_result g_borland_io_result _Atomic uint16_t Static zero; 1020:0388 uses one locked-equivalent XCHG read-and-clear. Atomic exchange in verified 1020:0388; reads/writes in runtime I/O and ExitProc paths.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0720 1028:0723 verified borland_random_seed g_borland_random_seed uint32_t Static zero; seeded from DOS time and advanced by the verified LCG. Reads/writes in 1020:14a4, 14c1, 14de, 1501, and 1539; multiplier 0x08088405 proved from assembly.; complete verified referring-function closure Exact modulo-2^32 Borland RandSeed state, stored low word then high word.
1028:0724 1028:0725 verified borland_huge_pointer_increment g_borland_huge_pointer_increment uint16_t Assigned the relocated KERNEL ordinal 114 equate __AHINCR by verified startup. Relocation 5:4 at 1020:0051; Wine 11.15 __AHINCR=8; reconstructed/tests/test_borland_startup.c; complete verified referring-function closure Exact selector increment used by Borland huge-pointer normalization; this import is runtime data, not a callable function.
1028:0726 1028:0726 verified borland_cpu_level g_borland_cpu_level uint8_t Set by verified startup from returned GetWinFlags AL. Verified startup branches and consumers 1020:08a9, 08e6, 098c, and 09af; arithmetic and startup tests.; complete verified referring-function closure Exact levels 0 for 086/186, 1 for 286, and 2 for 386-plus instruction selection.
1028:0727 1028:0727 verified borland_file_mode g_borland_file_mode uint8_t Static value 2. Binary byte; sole read by verified generic open entry 1020:06ab; focused DOS-open test.; complete verified referring-function closure Exact DOS AH=3d access mode passed for nonempty generic-file names.
1028:0728 1028:0747 verified borland_runtime_error_text g_borland_runtime_error_text char[32] Static string Runtime error 000 at 0000:0000. including NUL. TDKPIN.EXE bytes; fixed write endpoints 0739, 0741, 0746 in 1020:0061.; complete verified referring-function closure Mutable decimal error-code and uppercase hexadecimal segment/offset fields are written backward into fixed placeholders before MessageBox16.
1028:07c4 1028:07c4 verified palette_update_active g_palette_update_active uint8_t Zero-filled; reset by variant A wParam zero and set before synchronous invalidate/update in both verified handlers. All palette-message readers/writers 1000:58e7,5956,59a0,5a37 are verified; palette message tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07cb 1028:07cb verified scene_ready g_scene_ready uint8_t Zero-filled; set to one after verified scene redraw, score/status update, and DC release in 1000:5390. Verified writer 1000:5390; asset-initializer tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07cc 1028:07cc verified assets_pending g_assets_pending uint8_t Set during game initialization; nonzero selects the verified one-time asset-loading phase and is cleared at loading stage 34. Verified reader/clear in 1000:5390; asset-initializer tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07cd 1028:07ce verified board_index g_board_index uint16_t Zero-filled; selects DAT resource 1000+value in verified 1000:6129. Verified setup reader; reconstructed/tests/test_board_overlay.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:07d1 1028:07d1 verified current_player g_current_player uint8_t Zero-filled; values 1..4 identify the active player and zero disables the status display. Verified gating/index use in 1008:0b9e; status tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0867 1028:0868 verified overlay_bitmap g_overlay_bitmap HBITMAP16 Zero-filled; assigned by verified DAT loaders 1000:5be5/6129 and deleted by verified destructors 5ba6/60e7 without clearing the slot. Complete verified setup/destructor, 616e 640x460 drawing, and 5c13 high-score source-region lifecycle; overlay and high-score tests; complete verified referring-function closure Exact global HBITMAP provenance, replacement, 32/204 high-score source, whole-overlay drawing, and ownership endpoints are fully proven.
1028:085b 1028:085c verified background_bitmap g_background_bitmap HBITMAP16 Zero-filled; assigned DAT 998 by verified asset initialization and selected by all verified low-level background blits. Verified writer and readers 1008:07b6,0837,08bb,093f,0996/1000:5390; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:085d 1028:085e verified background_overlay_b g_background_overlay_b HBITMAP16 Zero-filled; assigned DAT 998 by verified asset initialization and consumed only by verified restore variant B. Complete writer/reader inventory 1000:5390 and 1008:08bb; asset/render tests.; complete verified referring-function closure Exact overlay-B resource, publication, restore role, and DGROUP extent are fully proven.
1028:085f 1028:0860 verified background_overlay_a g_background_overlay_a HBITMAP16 Zero-filled; assigned DAT 997 by verified asset initialization and consumed only by verified restore variant A. Complete writer/reader inventory 1000:5390 and 1008:0837; asset/render tests.; complete verified referring-function closure Exact overlay-A resource, publication, restore role, and DGROUP extent are fully proven.
1028:0861 1028:0862 verified digit_sprite_bitmap g_digit_sprite_bitmap HBITMAP16 Zero-filled; assigned BITMAP resource 500 by verified asset initialization and consumed by verified score renderer. Complete writer/reader inventory 1000:5390 and 1008:0996; asset/score tests.; complete verified referring-function closure Exact HBITMAP slot, resource ID, 16-pixel horizontal digit stride, and 28x16 SRCAND use are fully proven.
1028:0859 1028:085a verified dat600_bitmap g_dat600_bitmap HBITMAP16 Zero-filled; assigned DAT resource 600 at loading stage 33 by verified asset initialization. Complete verified load/render/delete lifecycle 1000:5390,6f27,7440,51f5; mechanism and panel-animation tests; complete verified referring-function closure Exact DAT600 atlas provenance, 91-pixel target frames, panel-animation mask/image regions, publication, and ownership lifecycle are fully proven.
1028:0863 1028:0864 verified claw_sprite_bitmap g_claw_sprite_bitmap HBITMAP16 Zero-filled; assigned DAT resource 900 at loading stage 29 and deleted at asset shutdown. Complete writer/reader/deletion inventory 1000:5390,1008:0e08,1000:51f5; asset/claw/cleanup tests; complete verified referring-function closure Exact resource, atlas geometry, frame mapping, publication, rendering, and ownership lifecycle are fully proven.
1028:0865 1028:0866 verified board_decoration_bitmap g_board_decoration_bitmap HBITMAP16 Zero-filled; assigned DAT resource 901 at loading stage 32 and deleted during asset shutdown without clearing the slot. Complete verified lifecycle 1000:5390,638e,6b37,51f5; asset, key-release, gameplay-helper, and cleanup tests; complete verified referring-function closure Exact DAT901 provenance, launch-decoration and velocity-row atlas geometry, presentation, and ownership endpoint are fully proven.
1028:086b 1028:086c verified displayed_status_level g_displayed_status_level uint16_t Zero-filled; initialized/reset to 99 and assigned computed levels 0..4 by verified status renderer. All renderer reads/writes in 1008:0b9e verified; status tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:0982 1028:0991 verified player_scores g_player_scores int32_t[4] Zero-filled; initialized/reset by game setup and updated by scoring paths. Verified one-based reader 1008:0996; score-render tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:431b 1028:4322 verified status_level_bitmaps g_status_level_bitmaps HBITMAP16[4] Zero-filled; DAT resources 701..704 are loaded one-based by verified asset initialization. Complete writer/reader/deletion inventory in 1000:5390,1008:0b9e,1000:51f5; asset/status/cleanup tests; complete verified referring-function closure Exact four HBITMAP slots, resource mapping, threshold-level mapping, primary 146x142 blit use, and ownership lifecycle are fully proven.
1028:430b 1028:431a verified sprite_bitmaps_400_407 g_sprite_bitmaps_400_407 HBITMAP16[8] Zero-filled; DAT resources 400..407 are loaded zero-based at stages 7..14 and deleted zero-based at shutdown. Verified writer/deletion and ID order; asset initializer/cleanup tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:4323 1028:4334 verified item_bitmaps_801_809 g_item_bitmaps_801_809 HBITMAP16[9] Zero-filled; DAT resources 801..809 are loaded and deleted one-based. Verified writer/deletion and ID order; asset initializer/cleanup tests; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:4263 1028:430a verified tdkpin_word_quads g_tdkpin_word_quads TdkpinWordQuad[21] Zero-filled table; setup 1000:0270 writes indices 1..20 through verified 1008:0787. Twenty direct calls with exact constants; byte-complete zero-fill range and writer tests.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:43be 1028:43ed verified wave_output_capabilities wave_output_capabilities WAVEOUTCAPS16 Zero-filled 48-byte buffer populated by waveOutGetDevCaps for device zero. Windows 3.1 packed field offsets; call 1008:0fca-0fda; dwSupport read at 1008:0fe6-0ffe; strict size assertion and reconstructed/tests/test_sound.c; complete verified referring-function closure Exact Win16 layout is wMid, wPid, 16-bit driver version, 32-byte name, formats, channels, and support; WAVECAPS_VOLUME is bit 4 at offset 44.
1028:43ee 1028:43ef verified wave_output_device_count wave_output_device_count uint16_t Zero-filled; assigned from waveOutGetNumDevs and reset on entry or capability-query failure. Complete verified lifecycle in 1008:0f2e,10e3,1131,118f and sound-toggle reader 1000:638e; reconstructed/tests/test_sound.c and test_key_release.c; complete verified referring-function closure The word is the actual device count, not a Boolean initialized flag; nonzero permits keyboard re-enabling after sound has been disabled.
1028:43f0 1028:43f1 verified wave_output_device_id wave_output_device_id uint16_t Static zero and never written in the image. Reads before the sole waveOutGetDevCaps and waveOutGetVolume calls at 1008:0fca and 1008:1008; reconstructed/tests/test_sound.c; complete verified referring-function closure Selects wave-output device zero for both capability and volume queries.
1028:43f2 1028:43f2 verified sound_enabled sound_enabled uint8_t Zero-filled; cleared on every sound initialization entry, set after successful capability/resource setup, and toggled by F12 only when a device exists. Complete verified readers/writers 1008:0002,0f2e,1131 and 1000:638e; sound and key-release tests; complete verified referring-function closure Exact Boolean enable lifecycle, playback gates, disable behavior, and device-gated re-enable behavior are fully proven.
1028:43f3 1028:43f3 verified sound_playing sound_playing uint8_t Zero-filled; cleared by initialization/unload and assigned from sndPlaySound's BOOL16 result. All reads/writes in verified 1008:0f2e, 10e3, 1131, and 118f; reconstructed/tests/test_sound.c; complete verified referring-function closure Exact current-playing flag, including stop-without-clear behavior in 118f and failure-to-play clear in 1131.
1028:43f4 1028:43f4 verified sound_volume_step sound_volume_step uint8_t Zero-filled; set to ff when volume control is unsupported, otherwise the left-channel high byte rounded down to a multiple of ten. Disassembly 1008:0fe6-102e; exact byte extraction/divide/multiply path; reconstructed/tests/test_sound.c; complete verified referring-function closure Written during successful initialization and otherwise retained; no in-image reader exists.
1028:43f5 1028:43f5 verified sound_state_padding sound_state_padding uint8_t Zero-filled and never referenced directly. Byte lies between the verified one-byte volume state and aligned far-pointer array; complete reference inventory contains no reader or writer.; complete verified referring-function closure Explicit alignment/padding byte retained so the first sound pointer begins at 43f6.
1028:43f6 1028:444d verified sound_buffers sound_buffers Win16FarPtr[22] Zero-filled; sound setup stores locked global-memory blocks for resource numbers 2001..2022. All indexed accesses in verified 1008:0f2e, 10e3, and 1131; exact one-based addressing and focused lifecycle tests in reconstructed/tests/test_sound.c; complete verified referring-function closure Exact 22 far-pointer slots, load overwrite behavior, inclusive release order, lack of pointer clearing, and play selection are represented.
1028:444e 1028:444f verified tdkpin_palette_handle tdkpin_palette_handle HPALETTE16 Zero-filled; assigned the CreatePalette16 result by verified 1008:11c5. Complete reader inventory spans rendering/window functions; verified writer and bitmap loader 1008:149d; reconstructed/tests/test_palette.c; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:4450 1028:474f verified tdkpin_palette_rgb tdkpin_palette_rgb uint8_t[256][3] Zero-filled then overwritten byte-for-byte from custom PAL resource 999 by verified 1008:1326. All consumers verified: LOGPALETTE RGB projection 1008:11c5 and BITMAPINFO BGR0 projection 1008:13a8; reconstructed/tests/test_palette.c; complete verified referring-function closure Exact 768-byte RGB triplet table, resource provenance, copy extent, palette-entry projection, RGBQUAD channel reversal, and full read/write inventory are proven.
1028:4750 1028:477b verified multimedia_procedures g_multimedia_procedures Win16FarPtr[11] Static zero; populated in exact CTL3D name order by verified loader 1010:01c2. Verified load/use/legacy-slot-8/clear lifecycle and focused tests.; complete verified referring-function closure Slots are AutoSubclass, ColorChange, CtlColorEx, Enabled, DlgFramePaint, GetVer, Register, SubclassDlg, SubclassDlgEx, SubclassCtl, Unregister.
1028:477c 1028:477d verified multimedia_version g_multimedia_version uint16_t Static zero; assigned from CTL3DGETVER after successful registration. Verified loader version >=9 gate and version-8 cleanup test.; complete verified referring-function closure Exact CTL3D compatibility version word.
1028:477e 1028:477e verified multimedia_auto_subclassed g_multimedia_auto_subclassed uint8_t Static zero; set from CTL3DAUTOSUBCLASS only on modern/nonzero-request path. Verified modern success and legacy/disabled zero branches.; complete verified referring-function closure Boolean records whether process auto-subclassing succeeded.
1028:477f 1028:477f verified multimedia_argument_2 g_multimedia_argument_2 uint8_t Stored from loader second byte argument after full initialization. Disassembly 1010:0373; focused export/loader test.; complete verified referring-function closure Exact parameter publication order is second argument first.
1028:4780 1028:4780 verified multimedia_argument_1 g_multimedia_argument_1 uint8_t Stored from loader first byte argument after full initialization. Disassembly 1010:0376; focused export/loader test.; complete verified referring-function closure Exact parameter publication order is second argument then first.
1028:4781 1028:4782 verified multimedia_module g_multimedia_module HINSTANCE16 Static zero; assigned by LoadLibrary16 and retained after FreeLibrary16. Verified <32 error, modern/legacy load, failure unload, and explicit cleanup tests.; complete verified referring-function closure Unaligned module handle; values below 32 are Win16 load errors rather than unloadable handles.
1028:4783 1028:4783 verified multimedia_pending g_multimedia_pending uint8_t Static zero; cleared by unit startup and every exported initialization return. Verified stores in 1010:03af/0472 and multimedia tests.; complete verified referring-function closure Exact transient pending byte; no reader exists in this image.
1028:4784 1028:4784 verified multimedia_initialized g_multimedia_initialized uint8_t Static zero; set only after Register, GetVer >=9, and Enabled all succeed; cleared by cleanup. Complete verified loader/finalizer/unload lifecycle and branch tests.; complete verified referring-function closure Gates every dynamic helper use with exact boolean semantics.
1028:478a 1028:478b verified multimedia_windows_version g_multimedia_windows_version uint16_t Low word returned by GetVersion16 during unit startup. Verified 3.0/3.10/4.0 major-minor branches and startup tests.; complete verified referring-function closure Low-byte major, high-byte minor; upper GetVersion word is discarded.
1028:478c 1028:478c verified multimedia_legacy_windows g_multimedia_legacy_windows uint8_t Set exactly for Windows 3.0 through 3.9. Verified writer and all loader branch consumers.; complete verified referring-function closure Selects path probing, legacy procedure policy, and AutoSubclass suppression.
1028:478d 1028:47a1 verified multimedia_library_path g_multimedia_library_path char[21] Zero-fill; populated with CTL3DV2.DLL or CTL3D.DLL according to exact existence policy. Verified unit writer, loader readers, all selection branches, and tests.; complete verified referring-function closure Exact 21-byte NUL-terminated selected DLL basename/path buffer.
1028:47a2 1028:47a3 verified multimedia_system_directory_length g_multimedia_system_directory_length uint16_t Return from GetSystemDirectory16 with maximum 200. Verified zero/nonzero path-probe gate and tests.; complete verified referring-function closure Exact length for adjacent system-directory buffer.
1028:47a4 1028:486b verified multimedia_system_directory g_multimedia_system_directory char[200] Zero-fill; populated by GetSystemDirectory16 during unit startup. Verified two ShortString path constructions and maximum size.; complete verified referring-function closure Exact transient NUL-terminated system directory buffer.
1028:486d 1028:496c verified multimedia_ctl3d_full_path g_multimedia_ctl3d_full_path uint8_t[256] "Constructed as system directory + ""\\"" + CTL3D.DLL." Verified ShortString helpers, file probe, and startup tests.; complete verified referring-function closure Exact Pascal ShortString classic DLL full path.
1028:496d 1028:4a6c verified multimedia_ctl3dv2_full_path g_multimedia_ctl3dv2_full_path uint8_t[256] "Constructed as system directory + ""\\"" + CTL3DV2.DLL." Verified ShortString helpers, preferred file probe, and startup tests.; complete verified referring-function closure Exact Pascal ShortString V2 DLL full path.
1028:4a6e 1028:4abd verified tpwincrt_window_title g_tpwincrt_window_title char[80] Zero-fill; populated with the module filename and converted in-place OEM to ANSI. Verified unit initialization, CreateWindow title, ExitProc formatting, and lifecycle tests.; complete verified referring-function closure Exact TPWinCrt application caption buffer.
1028:4abe 1028:4ac1 verified tpwincrt_saved_exit_proc g_tpwincrt_saved_exit_proc Win16FarPtr Zero-fill; receives the prior Borland ExitProc. Verified predecessor save/restore ordering and lifecycle tests.; complete verified referring-function closure Exact mutable ExitProc chain link.
1028:4ac2 1028:4ac5 verified tpwincrt_screen_buffer g_tpwincrt_screen_buffer Win16FarPtr Static zero; allocated on WM_CREATE and released on WM_DESTROY. Verified allocation/fill, circular readers, free/clear lifecycle, and tests.; complete verified referring-function closure Exact far pointer to columns*rows character cells.
1028:4ac6 1028:4ad3 verified tpwincrt_view_metrics g_tpwincrt_view_metrics struct TpWinCrtViewMetrics Static zero; populated from client size/font metrics. All arithmetic, caret, paint, scroll, size, and initialization paths are verified.; complete verified referring-function closure Seven exact uint16 fields: visible dimensions, max origins, character dimensions, and caret y offset.
1028:4ad4 1028:4ad5 verified tpwincrt_paint_dc g_tpwincrt_paint_dc HDC16 Static zero; assigned by GetDC16 or BeginPaint16. Verified 1008:1779/17e2 and paint/render consumers.; complete verified referring-function closure Exact object boundary, type, initialization, and full in-image reader/writer lifecycle are verified.
1028:4ad6 1028:4af5 verified tpwincrt_paint_struct g_tpwincrt_paint PAINTSTRUCT16 Zero-filled persistent structure populated by BeginPaint16. Wine 11.15 PAINTSTRUCT16 layout; fixed pointer in 1008:1779/17e2; rcPaint reads in verified 1008:1dcc.; complete verified referring-function closure Exact HDC, erase flag, RECT16, restore/update flags, and 16 reserved bytes; extent ends immediately before saved font at 4af6.
1028:4af6 1028:4af7 verified tpwincrt_previous_font g_tpwincrt_previous_font HGDIOBJ16 Static zero; receives SelectObject16 result. Verified paired stores/reads in 1008:1779 and 17e2.; complete verified referring-function closure Stock-font replacement is restored exactly before releasing the drawing context.
1028:4af8 1028:4b37 verified tpwincrt_input_buffer g_tpwincrt_input_buffer uint8_t[64] Zero-filled DGROUP storage. Verified append, signed-capacity suppression, blocking dequeue, overlapping shift, line editing, and focused tests.; complete verified referring-function closure Exact fixed 64-byte FIFO input queue.