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
161 KiB
161 KiB
| 1 | address | raw_name | segment | body_bytes | status | reconstructed_name | module | evidence | notes |
|---|---|---|---|---|---|---|---|---|---|
| 2 | 1000:0002 | FUN_1000_0002 | Code1 | 254 | verified | tdkpin_composite_player_sprite | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:0002-00ff; exact GDI argument order correcting raw decompiler coordinate reversal; background and indexed 430b sprite tables; reconstructed/tests/test_player_sprite.c | Exact two-word ABI, three compatible DCs, 14x14 temporary bitmap, indexed sprite selection, background save at 84/77, 42x123 sprite blit at 55/79, 14x14 restore, reverse object/DC cleanup, ignored GDI results, and no destination presentation are represented and sequence-tested. |
| 3 | 1000:0100 | FUN_1000_0100 | Code1 | 33 | verified | tdkpin_application_init_instance | reconstructed/tdkpin_game_application.c | disassembly 1000:0100-0120; TApplication VMT +0x14; verified ObjectWindows/CTL3D initialization; reconstructed/tests/test_game_application.c | Exact application receiver, initialization-before-multimedia order, fixed byte arguments 1/1/1, DGROUP module name 0222 far words, ignored loader result, and four-byte cleanup are represented and tested. |
| 4 | 1000:0121 | FUN_1000_0121 | Code1 | 75 | verified | tdkpin_application_init_application | reconstructed/tdkpin_game_application.c | disassembly 1000:0121-016b; first-instance global 06fc; title/text 022c/0245; verified MessageBox/RuntimeExit; reconstructed/tests/test_game_application.c | Exact first-instance null-object/VMT 009e/title/null-parent constructor frame and MainWindow +8 store; second-instance owner/text/caption/0x2010 dialog and Halt(0) no-return path are represented and branch-tested. |
| 5 | 1000:016c | FUN_1000_016c | Code1 | 103 | verified | tdkpin_build_main_window_class | reconstructed/tdkpin_game_application.c | disassembly 1000:016c-01d2; verified base WNDCLASS builder; USER/GDI resource calls; reconstructed/tests/test_game_application.c | Exact base call, style 0x3000, instance icon resource 0x03e4, arrow cursor, stock object 0 brush, current instance, zero class/window extras, far descriptor, and eight-byte cleanup are tested. |
| 6 | 1000:01d3 | FUN_1000_01d3 | Code1 | 155 | verified | tdkpin_main_window_construct | reconstructed/tdkpin_game_windows.c | disassembly 1000:01d3-026d; verified Borland constructor and TWindow base; USER GetSystemMetrics; reconstructed/tests/test_game_windows.c | Exact 14-byte far-constructor frame, null base VMT, 640x480 geometry, signed divide-by-two screen centering, style 0x86ca0000 replacement, returned far object, and constructor-entry failure are represented and tested. |
| 7 | 1000:0270 | FUN_1000_0270 | Code1 | 20357 | verified | tdkpin_setup_game_window | reconstructed/tdkpin_game_setup.c | disassembly 1000:0270-51f4; generated typed collision data checked against TDKPIN_GHIDRA_COMPLETE_RAW.c; verified setup dependencies; exact 20 quad calls; reconstructed/tests/test_game_setup.c; tools/generate_game_setup_collision_data.py --check | Exact far-window RETF-4 ABI, low-memory message/close/RuntimeExit branch, ObjectWindows/cursor/palette setup, tick seed, all globals/receiver/player defaults, milli/pixel state, executable-relative INI-name construction, clamped language/speed configuration, timer creation/failure-without-close path, 177 ordered typed collision calls including preliminary 169/170 then final overwrite, twenty word quads, and 175 active/contact/zero mirrors are represented; success, low-memory, timer-failure, call-order, table-boundary, and mirror tests pass. |
| 8 | 1000:51f5 | FUN_1000_51f5 | Code1 | 297 | verified | tdkpin_asset_window_destruct | reconstructed/tdkpin_asset_cleanup.c | disassembly 1000:51f5-531d; verified sound/message/TWindow/Borland dependencies; exact global/window bitmap inventory; reconstructed/tests/test_asset_cleanup.c | Exact Wait cursor save/restore, sound unload, bd9/bd8 publication, optional +49 Dispose(mode 1), message drain, deletion order window+52 then 0859,0863,0865,085f,085b,0861,085d, arrays 430b[0..7],4319[1..4],4321[1..9], intentionally stale handles and retained window+54, PostQuitMessage(18), TWindow destructor, erase=true invalidation, derived ownership finish, six-byte cleanup, and 29-handle sequence are tested. |
| 9 | 1000:531e | FUN_1000_531e | Code1 | 114 | verified | tdkpin_draw_loading_stage | reconstructed/tdkpin_game_assets.c | disassembly 1000:531e-538f; exact caller-BP/SS offsets; GDI compatible-DC/select/BitBlt/DeleteObject; reconstructed/tests/test_game_assets.c | Exact BP-0c/-04/-02/+0e shared frame contract, byte-stage zero extension, 16-bit (stage-1)*7 wrap, fixed destination 13/y and 328x202 SRCCOPY, select/restore, intentional DeleteObject-on-HDC, four-byte cleanup, and scratch writes are branch-tested. |
| 10 | 1000:5390 | FUN_1000_5390 | Code1 | 1367 | verified | tdkpin_initialize_assets_and_redraw | reconstructed/tdkpin_asset_initializer.c | disassembly 1000:5390-58e6; all internal dependencies verified; exact DAT/BITMAP ID sequence and DGROUP/window offsets; reconstructed/tests/test_asset_initializer.c | Exact public ten-byte ABI, entry palette select/unrealize/realize and message drain, static helper split at binary phases 53c5/5619, DAT IDs 995,994,998x2,400..407,701..704,801..809,900,997,901,600, BITMAP IDs 500/102/101, progress stages 2..35, sound init, handle publications, loading-surface draw/delete, palette/cursor restoration, already-redrawn palette retention, transient scene composition, optional mask/image ROPs with coordinate+19 dimensions, score factor/product and positive-player redraw, status sentinel/update, scene-ready publication, and all three control-flow phases are represented and tested. |
| 11 | 1000:58e7 | FUN_1000_58e7 | Code1 | 111 | verified | tdkpin_palette_change_variant_a | reconstructed/tdkpin_game_assets.c | disassembly 1000:58e7-5955; exact ObjectWindowsMessage result offsets; USER IsIconic/InvalidateRect/UpdateWindow; reconstructed/tests/test_palette_messages.c | Exact zero-wParam reentrancy reset/result zero, active suppression, iconic suppression, non-iconic invalidate/update ordering, result DWORD clear, state publication, uninitialized uint16 suppressed return, and eight-byte cleanup are branch-tested. |
| 12 | 1000:5956 | FUN_1000_5956 | Code1 | 74 | verified | tdkpin_palette_change_variant_b | reconstructed/tdkpin_game_assets.c | disassembly 1000:5956-599f; shared palette-update state and invalidate helper; reconstructed/tests/test_palette_messages.c | Exact wParam==0 and inactive conjunction, state set, null-rect/non-erasing invalidate, synchronous update, message result DWORD clear, no-op branches, and eight-byte cleanup are represented and tested. |
| 13 | 1000:59a0 | FUN_1000_59a0 | Code1 | 151 | verified | tdkpin_wm_palette_changed | reconstructed/tdkpin_game_assets.c | disassembly 1000:59a0-5a36; exact ObjectWindowsMessage offsets; USER/GDI parent/DC/palette/update calls; reconstructed/tests/test_palette_window_messages.c | Exact self/child HWND suppression returning 1, foreign-window GetDC, background SelectPalette TRUE, RealizePalette/UpdateColors, restore FALSE, ReleaseDC, result DWORD zero, return 0, and eight-byte cleanup are branch-tested. |
| 14 | 1000:5a37 | FUN_1000_5a37 | Code1 | 128 | verified | tdkpin_wm_query_new_palette | reconstructed/tdkpin_game_assets.c | disassembly 1000:5a37-5ab6; foreground palette call frame; reconstructed/tests/test_palette_window_messages.c | Exact GetDC, foreground SelectPalette FALSE, signed RealizePalette result, restore FALSE, ReleaseDC, positive-only full-window invalidate, result low word/high zero, returned count, and eight-byte cleanup are tested for zero and positive changes. |
| 15 | 1000:5ab7 | FUN_1000_5ab7 | Code1 | 51 | verified | tdkpin_build_stock_brush_class_a | reconstructed/tdkpin_game_application.c | disassembly 1000:5ab7-5ae9; verified base builder; GDI GetStockObject(5); reconstructed/tests/test_game_application.c | Exact base call, background brush replacement, ordered style OR 0x0800/0x1000/0x2000, resulting preserved base bits, far frame, and eight-byte cleanup are tested. |
| 16 | 1000:5aea | FUN_1000_5aea | Code1 | 188 | verified | tdkpin_centered_child_window_construct | reconstructed/tdkpin_game_windows.c | disassembly 1000:5aea-5ba5; verified Borland constructor and TWindow base; USER SetFocus; reconstructed/tests/test_game_windows.c | Exact parent far-pointer publication at +41, 360x300 geometry centered around binary constants x=320/y=230, low/high style-word OR equivalent to 0x46800002, HWND +4 focus, returned far object, and constructor-entry failure are represented and tested. |
| 17 | 1000:5ba6 | FUN_1000_5ba6 | Code1 | 63 | verified | tdkpin_overlay_window_destruct | reconstructed/tdkpin_window_lifecycle.c | disassembly 1000:5ba6-5be4; verified 1018:121b; DGROUP bitmap 0867; reciprocal peer +41; reconstructed/tests/test_window_lifecycle.c | Exact DeleteObject without global clear, unguarded peer dereference, reciprocal far-pointer clearing, base TWindow destructor with hidden VMT zero, derived ownership finish, six-byte cleanup, and call ordering are tested. |
| 18 | 1000:5be5 | FUN_1000_5be5 | Code1 | 46 | verified | tdkpin_setup_overlay_window | reconstructed/tdkpin_game_assets.c | disassembly 1000:5be5-5c12; verified 1018:170c and 1008:149d dependencies; DGROUP bitmap 0867; USER SetFocus; reconstructed/tests/test_overlay_setup.c | Exact setup ordering, DAT 993/current-instance loader frame, HBITMAP publication, receiver HWND focus, ignored previous-focus result, and four-byte Pascal cleanup are represented and tested. |
| 19 | 1000:5c13 | FUN_1000_5c13 | Code1 | 723 | verified | tdkpin_paint_highscores | reconstructed/tdkpin_highscores.c | disassembly 1000:5c13-5ee5; TWindow VMT +4c and ten-byte paint ABI; verified string/numeric helpers; exact Win16-PASCAL GDI push order and DGROUP tables; reconstructed/tests/test_highscores.c | Exact ignored receiver/PAINTSTRUCT plus HDC frame, palette realization/restoration, two compatible DCs, overlay source 32/204, 360x300 backbuffer matching the window geometry, saved text state, centered heading at 180/27, ten rank/name/score rows, rank-10 empty-prefix alias at 02ff, both SRCCOPY operations, and reverse GDI cleanup are represented and sequence-tested across all 21 TextOut calls. |
| 20 | 1000:5ee6 | FUN_1000_5ee6 | Code1 | 22 | verified | tdkpin_close_variant_a | reconstructed/tdkpin_message_pump.c | disassembly 1000:5ee6-5efb; verified 1008:00e2 and 1018:0f38; reconstructed/tests/test_message_pump.c | Exact queue drain before close-if-allowed, receiver far argument, and four-byte Pascal cleanup are represented and tested. |
| 21 | 1000:5efc | FUN_1000_5efc | Code1 | 45 | verified | tdkpin_conditional_close_variant_a | reconstructed/tdkpin_message_pump.c | disassembly 1000:5efc-5f28; event high-word low byte comparison 0x1c; reconstructed/tests/test_message_pump.c | Exact suppression value, drain/close nonmatch path, unchanged receiver/event frames, uninitialized uint16 local return via compatibility primitive on both paths, and eight-byte cleanup are branch-tested. |
| 22 | 1000:5f29 | FUN_1000_5f29 | Code1 | 151 | verified | tdkpin_wm_palette_changed_variant_b | reconstructed/tdkpin_game_assets.c | instruction-for-instruction duplicate of verified 1000:59a0 at 1000:5f29-5fbf; shared static semantic core; reconstructed/tests/test_palette_window_messages.c | Exact second-class WM_PALETTECHANGED entry retains self/child suppression, background palette TRUE, UpdateColors, result/return contract, and eight-byte cleanup; duplicate-to-core factoring is explicitly recorded. |
| 23 | 1000:5fc0 | FUN_1000_5fc0 | Code1 | 128 | verified | tdkpin_wm_query_new_palette_variant_b | reconstructed/tdkpin_game_assets.c | instruction-for-instruction duplicate of verified 1000:5a37 at 1000:5fc0-603f; shared static semantic core; palette-window tests | Exact second-class WM_QUERYNEWPALETTE entry retains foreground select, signed color count, positive invalidation, result/return contract, and cleanup. |
| 24 | 1000:6040 | FUN_1000_6040 | Code1 | 51 | verified | tdkpin_build_stock_brush_class_b | reconstructed/tdkpin_game_application.c | disassembly 1000:6040-6072; verified base builder; GDI GetStockObject(5); reconstructed/tests/test_game_application.c | Byte-identical second derived-class builder: exact base call, brush replacement, style OR 0x3800, far frame, and cleanup are represented and tested separately. |
| 25 | 1000:6073 | FUN_1000_6073 | Code1 | 116 | verified | tdkpin_full_child_window_construct | reconstructed/tdkpin_game_windows.c | disassembly 1000:6073-60e6; verified Borland constructor and TWindow base; USER SetFocus; reconstructed/tests/test_game_windows.c | Exact parent far-pointer publication at +41, origin 0/0, 640x460 geometry, style 0x46000002 replacement, HWND +4 focus, returned far object, and constructor-entry failure are represented and tested. |
| 26 | 1000:60e7 | FUN_1000_60e7 | Code1 | 66 | verified | tdkpin_board_window_destruct | reconstructed/tdkpin_window_lifecycle.c | disassembly 1000:60e7-6128; verified TWindow destructor; peer +41 to reciprocal +45; overlay bitmap 0867; reconstructed/tests/test_window_lifecycle.c | Exact unguarded peer dereference, peer +45/+47 clear, self +41/+43 clear, bitmap deletion without global clear, base/derived Borland destructor chaining, six-byte cleanup, and ordering are represented and tested. |
| 27 | 1000:6129 | FUN_1000_6129 | Code1 | 69 | verified | tdkpin_setup_board_window | reconstructed/tdkpin_game_assets.c | disassembly 1000:6129-616d; verified SetupWindow/DAT loader; board index 07cd; USER cursor/focus APIs; reconstructed/tests/test_board_overlay.c | Exact setup, system Wait cursor load/set, uint16 resource ID 1000+board_index with zero selector, current instance, global bitmap publication, HWND focus, ignored cursor/focus returns, and four-byte cleanup are tested. |
| 28 | 1000:616e | FUN_1000_616e | Code1 | 148 | verified | tdkpin_draw_board_overlay | reconstructed/tdkpin_game_assets.c | disassembly 1000:616e-6201; palette/bitmap globals; GDI compatible DC and 640x460 SRCCOPY; reconstructed/tests/test_board_overlay.c | Exact foreground palette select/unrealize/realize, compatible source DC, bitmap select, 640x460 origin SRCCOPY, object/DC/palette restoration, Arrow cursor load/set, three ignored arguments, ten-byte cleanup, and call order are tested. |
| 29 | 1000:6202 | FUN_1000_6202 | Code1 | 22 | verified | tdkpin_close_variant_b | reconstructed/tdkpin_message_pump.c | disassembly 1000:6202-6217; verified 1008:00e2 and 1018:0f38; reconstructed/tests/test_message_pump.c | Exact queue drain before close-if-allowed, receiver far argument, and four-byte Pascal cleanup are represented and tested. |
| 30 | 1000:6218 | FUN_1000_6218 | Code1 | 45 | verified | tdkpin_conditional_close_variant_b | reconstructed/tdkpin_message_pump.c | disassembly 1000:6218-6244; event high-word low byte comparison 0x3b; reconstructed/tests/test_message_pump.c | Exact suppression value, drain/close nonmatch path, unchanged receiver/event frames, uninitialized uint16 local return via compatibility primitive on both paths, and eight-byte cleanup are branch-tested. |
| 31 | 1000:6245 | FUN_1000_6245 | Code1 | 151 | verified | tdkpin_wm_palette_changed_variant_c | reconstructed/tdkpin_game_assets.c | instruction-for-instruction duplicate of verified 1000:59a0 at 1000:6245-62db; shared static semantic core; palette-window tests | Exact third-class WM_PALETTECHANGED entry and all branches/call flags are represented through the documented duplicate core. |
| 32 | 1000:62dc | FUN_1000_62dc | Code1 | 128 | verified | tdkpin_wm_query_new_palette_variant_c | reconstructed/tdkpin_game_assets.c | instruction-for-instruction duplicate of verified 1000:5a37 at 1000:62dc-635b; shared static semantic core; palette-window tests | Exact third-class WM_QUERYNEWPALETTE entry, result publication, positive invalidation, and cleanup are represented. |
| 33 | 1000:635c | FUN_1000_635c | Code1 | 50 | verified | tdkpin_blit_bitmap_and_present | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:635c-638d; verified 1008:07b6/093f; reconstructed/tests/test_gameplay_helpers.c | Exact six-word forwarding into bitmap-to-background followed by present with the bitmap argument omitted, unchanged height/width/y/x/DC, ignored results, and 12-byte cleanup are represented and tested. |
| 34 | 1000:638e | FUN_1000_638e | Code1 | 1961 | verified | tdkpin_handle_key_release | reconstructed/tdkpin_key_input.c | disassembly 1000:638e-6b36; verified arithmetic/Real48/random/sound/render dependencies; exact USER GetDC/ReleaseDC call frames; reconstructed/tests/test_key_release.c | Exact two-far-pointer RETF-8 ABI, four-word auxiliary-window gate, dormant debug F2/F7 paths, scan-50 scalar*100 impulse with signed 32-bit wrap, lower clamp and exact Real48 0.6 upper clamp, random jitter, velocity mirror and decoration redraw, flipper-key clears, left/right/space nudges with exact random order and Real48 random*20-10 factor, two-slot velocity updates, unsigned tilt threshold and UI restore, sound toggle/device gate, add-player state publication, all four 175-byte/word mirrors, unused-player score/UI clears, record live-state refresh, normal event clears, and zero return are branch- and extent-tested. |
| 35 | 1000:6b37 | FUN_1000_6b37 | Code1 | 193 | verified | tdkpin_draw_board_decoration_row | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:6b37-6bf7; verified present-region dependency; exact 6bf8 caller-frame offsets; GDI imports; reconstructed/tests/test_gameplay_helpers.c | Exact four-byte nested ABI, caller HDC at SS:[BP-0c], four published GDI temporaries at -0e/-10/-12/-14, two compatible DCs, background/decoration selections, 21x18 SRCCOPY from atlas 314/426 to x0/caller-y, reverse restore/delete, and final background presentation are represented and sequence-tested. |
| 36 | 1000:6bf8 | FUN_1000_6bf8 | Code1 | 815 | verified | tdkpin_handle_key_press | reconstructed/tdkpin_key_input.c | disassembly 1000:6bf8-6f26; verified window/application/board-decoration dependencies; exact far event layout and GDI threshold behavior; reconstructed/tests/test_key_input.c | Exact two-far-pointer RETF-8 ABI, four-word auxiliary-window gate, F1 HelpScreen VMT 017e creation/MakeWindow/+45 publication/Show and indeterminate return without event clearing, scan-50 scalar*50 velocity subtraction and baa clear, player-count DC gate, signed -1..-10 threshold selection to rows 21..210 or 231, scan 1d/1c flipper flags under tilt gate, normal event +0a/+0c clears, and zero return are branch-tested. |
| 37 | 1000:6f27 | FUN_1000_6f27 | Code1 | 1305 | verified | tdkpin_rotate_and_draw_targets | reconstructed/tdkpin_mechanism_render.c | disassembly 1000:6f27-743f; exact Win16-PASCAL GDI push order; verified item/sound dependencies; target words and player receiver row; reconstructed/tests/test_mechanism_render.c | Exact DC/91x90 bitmap lifetime, state<6 DAT600 frame selection with 91-pixel stride, state>=6 overlay-background capture and DAT600 reselection, cyclic rotation of five record words and five active-player bytes, item 15..19 refresh, state-1 sound 11, six complete five-point coordinate sets, nonzero-target 17x17 SRCAND/SRCPAINT atlas pairs at x455/y17/0, final presentation at 79/33, and cleanup are represented and tested for state 1 and state 6. |
| 38 | 1000:7440 | FUN_1000_7440 | Code1 | 2514 | verified | tdkpin_draw_panel_animation | reconstructed/tdkpin_panel_animation.c | disassembly 1000:7440-7e11; exact Win16-PASCAL GDI push order correcting raw width/height mappings; DAT600/overlay/background assets; verified sound dependencies; reconstructed/tests/test_panel_animation.c | Exact 91x123 backbuffer and board location 79/0, nine signed-low-word frame intervals 1..44,45..57,58..65,66..128,129..158,159..221,222..229,230..237,238..281, entry-frame play/stop events, all times-two reveal/retract formulas, 91x90 and 45x88 mask/image compositions, frame-1 background initialization, frame-281 background commit through overlay B, final presentation, and GDI cleanup are represented as named phases and tested at all interval starts plus internal formula boundaries. |
| 39 | 1000:7e12 | FUN_1000_7e12 | Code1 | 128 | verified | tdkpin_refresh_collision_record | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:7e12-7e91; verified b30b/b3f3; packed collision layout; reconstructed/tests/test_gameplay_helpers.c | Exact id 1..175 gate, flags +41 priority 0080 before 0100, active byte +34 polarity/inversion, overlay-A/B dispatcher selection, no-op flags, and four-byte cleanup are represented and branch-tested. |
| 40 | 1000:7e92 | FUN_1000_7e92 | Code1 | 71 | verified | tdkpin_refresh_player_item | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:7e92-7ed8; SS caller-frame receiver; player byte 07d1; reconstructed/tests/test_gameplay_helpers.c | Exact current-player times 20 plus item plus 0467 byte address, nonzero overlay-A/zero overlay-B polarity, item+1000 wrapped id, caller BP forwarding, and four-byte cleanup are represented and tested. |
| 41 | 1000:7ed9 | FUN_1000_7ed9 | Code1 | 3124 | verified | tdkpin_move_flipper_collision_geometry | reconstructed/tdkpin_flipper_collision.c | disassembly 1000:7ed9-8b0c with every far call annotated; typed collision records 65-68/80-83; verified Mul32/Div32/Real48/sound/slot/move dependencies; reconstructed/tests/test_flipper_collision.c | Exact RETF-10 ABI, sound 21 entry effect, flipper-specific radius/pivot/edge loads and dead point reads, delta*radius pivot motion, direction-selected response records 66/68/81/83, snapshotted one-based ball loop with live multiball load/save gates, signed divide-by-1000 cross products, strict 54000 square/radial gates, mode/flipper/direction tests, exact Real48 0.1 vertical-edge fallback, interpolated or absolute penetration, sign-correct Real48 normals, deliberately discarded-and-zeroed normal projection, tangent projection, sqrt(distance/44000)*2+0.4 gain, per-record 1+response factor, ordered X/Y velocity publication, penetration*vx/vy ball movement, 32-bit wrap, and invalid-flipper indeterminate state are represented; four contact directions, distinct response coefficients, both vertical fallbacks, gates, and multiball iteration are tested. |
| 42 | 1000:8b0d | FUN_1000_8b0d | Code1 | 3811 | verified | tdkpin_move_flipper_bitmap_geometry | reconstructed/tdkpin_flipper_bitmap_geometry.c | disassembly 1000:8b0d-99ef; typed 83-byte collision records; all 28 immediate scale factors and signed add/sub instructions; verified arithmetic/render dependencies; exact USER GetDC/ReleaseDC frames; reconstructed/tests/test_flipper_bitmap_geometry.c | Exact hidden static link through 99f0 and timer caller frames, GetDC-before-parent-scratch order, four parent-stack words including delta==1 positive 43000 versus all-other negative 43000, records 66-68 and 81-83, all point/bounds mutations with 32-bit wrap, four signed endpoint min/max recomputations padded by 5000, two direct swept-edge bounds updates, left/right restore polarity from receiver bd4/bd6, exact 52x47 at 373/93 and 53x45 at 372/175 presentation rectangles, invalid-flipper balanced-DC no-op, and RETF-8 ABI are represented and branch-/extent-tested. |
| 43 | 1000:99f0 | FUN_1000_99f0 | Code1 | 240 | verified | tdkpin_update_flippers | reconstructed/tdkpin_flippers.c | disassembly 1000:99f0-9adf; exact caller-BP receiver fields; verified 1000:7ed9/8b0d dependency cores; reconstructed/tests/test_flippers.c | Exact outer caller-frame receiver lookup, independent left/right key and position gates, uint16 position increment/decrement, delta -1 on the zero-position pressed edge and +1 on release, flipper IDs 1/2, collision-before-bitmap ordering, no-op steady states, and nested 8b0d semantic-core factoring are represented and press/release/steady tested for both flippers. |
| 44 | 1000:9ae0 | FUN_1000_9ae0 | Code1 | 137 | verified | tdkpin_receiver_point_in_bounds | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:9ae0-9b68; SS caller-frame receiver; reconstructed/tests/test_gameplay_helpers.c | Exact receiver milli-X/Y fields +0bba/+0bbe, inclusive signed-int32 minimum/maximum comparisons using signed high/unsigned low words, short-circuit order, last-loaded AX high-byte residue, Boolean AL, and 18-byte cleanup are represented and branch-tested. |
| 45 | 1000:9b69 | FUN_1000_9b69 | Code1 | 97 | verified | tdkpin_ball_in_bounds | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:9b69-9bc9; DGROUP ball X/Y 07db/07df; reconstructed/tests/test_gameplay_helpers.c | Exact ignored static link, global milli-X/Y, inclusive signed-int32 bounds, short-circuit order, last-loaded AX high-byte residue, Boolean AL, and 18-byte cleanup are represented and branch-tested. |
| 46 | 1000:9bca | FUN_1000_9bca | Code1 | 699 | verified | tdkpin_render_ball_from_caller_frame | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:9bca-9e84; exact caller-frame ABI; verified signed divide; USER/GDI prototypes; background/mask/image sources; reconstructed/tests/test_ball_render.c | Exact GetClientRect side effect, GetDC and three compatible DCs, 100x100 bitmap, wrapping add-500 signed divide-by-1000 minus-eight pixel conversion, receiver publications, 19x19 background capture, SRCAND/SRCPAINT composition, signed bottom clipping to row 442/443 including zero height, stale SS:[BP-6] third-DC reselection, and complete cleanup/release order are branch- and sequence-tested. |
| 47 | 1000:9e85 | FUN_1000_9e85 | Code1 | 238 | verified | tdkpin_reset_ball_state | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:9e85-9f72; verified 1000:9bca dependency; exact DGROUP/receiver offsets; reconstructed/tests/test_ball_render.c | Exact five-word all-nonzero gate, conditional 0851/0853 clears and 07c8 set, unconditional tilt/receiver reset, milli-position constants 325000/413000, duplicate current/previous coordinate fields, velocity/state zeroing, bdd byte clear, caller-BP propagation, and redraw are represented and both gate branches tested. |
| 48 | 1000:9f73 | FUN_1000_9f73 | Code1 | 1051 | verified | tdkpin_render_ball_swept_region | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:9f73-a38d; exact caller-frame/receiver fields; verified signed divide; USER/GDI prototypes; reconstructed/tests/test_ball_sweep.c | Exact current pixel projection, signed current-minus-previous milli delta divided by 1000, bb2/bb6 publications, direction-dependent swept destination and mask/image source offsets, modulo-2^32 magnitude without C overflow UB, abs(delta)+19 geometry, background capture, 19x19 SRCAND/SRCPAINT composition, signed bottom clipping, whole swept-region presentation, stale SS:[BP-6] reselection, and complete cleanup are represented and tested for both delta polarities and clipped/unclipped branches. |
| 49 | 1000:a38e | FUN_1000_a38e | Code1 | 630 | verified | tdkpin_restore_previous_ball_region | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:a38e-a603; exact caller-frame ABI and receiver fields; verified signed divide; USER/GDI prototypes; reconstructed/tests/test_ball_restore.c | Exact GetClientRect/GetDC, three compatible DCs, 100x100 bitmap, prior milli-position +500/divide1000/minus8 projection, ba2/ba6 publication, velocity zeroing, 19x19 background capture, signed bottom clipping, low-byte presentation suppression, stale SS:[BP-6] reselection, and full object/DC/release cleanup are represented and both presentation branches tested. |
| 50 | 1000:a604 | FUN_1000_a604 | Code1 | 266 | verified | tdkpin_refresh_player_progress_markers | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:a604-a70d; verified multiply and overlay/present dependencies; exact current-player/table addressing; reconstructed/tests/test_gameplay_helpers.c | Exact caller-BP receiver/HWND, GetDC lifetime, 32-bit counter 1..6, signed int16 marker threshold, player row (player-1)*44+298, marker column (counter-1)*8+391, inclusive 5x5 geometry, overlay A/B polarity, twelve draw/present calls, and ReleaseDC are represented and sequence-tested. |
| 51 | 1000:a70e | FUN_1000_a70e | Code1 | 30 | verified | tdkpin_set_gameplay_transition_flags | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:a70e-a72b; SS caller-frame far receiver at BP+6; reconstructed/tests/test_gameplay_helpers.c | Exact player-count clear, caller-frame receiver recovery, object byte +0bde set, transition-pending byte set, write order, and two-byte cleanup are represented and tested. |
| 52 | 1000:a72c | FUN_1000_a72c | Code1 | 446 | verified | tdkpin_initialize_player_state | reconstructed/tdkpin_player_state.c | disassembly 1000:a72c-a8e9; all internal dependencies verified; exact collision/player/item tables and caller receiver; reconstructed/tests/test_player_state.c | Exact 175-record refresh plus record+43 copy into all four 0x15e-stride receiver rows, five item restores, zero score draw and 0874 clear, configured-player-only score/secondary/multiplier/sprite/marker/level/item initialization, initial 2-versus-3 marker counts, 20-byte receiver row clears, final current-player/highscore-index reset, and twenty item refreshes are count-, order-, and memory-tested. |
| 53 | 1000:a8ea | FUN_1000_a8ea | Code1 | 178 | verified | tdkpin_save_highscores | reconstructed/tdkpin_highscores.c | disassembly 1000:a8ea-a99b; verified Borland fill/strcpy; KERNEL _lcreat/_lwrite/_lclose prototypes; exact DGROUP offsets; reconstructed/tests/test_highscores.c | Exact ignored two-byte static link, -1 create failure, 260-byte contiguous local layout, zeroed 220-byte name region, one-based ten-entry dword XOR with key 0010, 22-byte name slots, 16/40/220-byte write order, ignored write/close results, and close-on-success path are represented and byte-tested. |
| 54 | 1000:a99c | FUN_1000_a99c | Code1 | 416 | verified | tdkpin_load_highscores | reconstructed/tdkpin_highscores.c | disassembly 1000:a99c-ab3b; verified ShortString conversion/compare, dword multiply, far strcpy; KERNEL _lopen/_lread/_lclose; reconstructed/tests/test_highscores.c | Exact two-byte static link, mode-0 then mode-0x40 open retry, 16-byte header read and ShortString comparison, ignored read returns, direct 220-byte DGROUP name read, ten dword XOR decodes, unconditional close of an opened file, descending 1000000..100000 defaults, and ten No Name copies are branch- and byte-tested, including short-read residue semantics. |
| 55 | 1000:ab3c | FUN_1000_ab3c | Code1 | 169 | verified | tdkpin_show_highscore_windows | reconstructed/tdkpin_highscores.c | disassembly 1000:ab3c-abe4; verified far strcpy, text-dialog and centered-child constructors, ObjectWindows virtual slots +38/+34 and Show; exact caller SS:BP contract; reconstructed/tests/test_highscores.c | Exact optional insertion-index name reset, hidden text-dialog VMT 01ce versus control ID 0016, label/caption/name/parent order, ignored ExecDialog result, centered child VMT 010e/title, MakeWindow return publication at receiver +41, Show command 1, and zero-index dialog bypass are represented and tested. |
| 56 | 1000:abe5 | FUN_1000_abe5 | Code1 | 221 | verified | tdkpin_insert_current_score | reconstructed/tdkpin_highscores.c | disassembly 1000:abe5-acc1; verified far-copy/show/save dependencies; current-player/player-score and high-score table offsets; reconstructed/tests/test_highscores.c | Exact one-based scan, signed high-word then unsigned low-word strict comparison, tie rejection, bottom-up dword and 22-byte name shift, index-10 no-shift case, score/index publication, caller-BP propagation, dialog/show then save ordering, and nonqualifying early return are represented and tested. |
| 57 | 1000:acc2 | FUN_1000_acc2 | Code1 | 428 | verified | tdkpin_redraw_all_players | reconstructed/tdkpin_player_state.c | disassembly 1000:acc2-ae6d; verified score/sprite/overlay dependencies; exact player arrays and geometry; reconstructed/tests/test_player_state.c | Exact GetDC-before-zero-count behavior, saved current/player-count bytes, 44-pixel row loop, 31x139 panel restore, temporary current-player publication, active zero-delta score/status path, secondary-score times byte multiplier, sprite composition and 123x42 presentation, active overlay-A versus inactive redraw-only/overlay-B 11x11 marker polarity, saved-player restoration, and ReleaseDC are branch- and sequence-tested. |
| 58 | 1000:ae6e | FUN_1000_ae6e | Code1 | 1114 | verified | tdkpin_finish_ball_or_advance_player | reconstructed/tdkpin_turn_state.c | disassembly 1000:ae6e-b2c7; all internal dependencies verified; exact collision/player/receiver tables; Real48 register constant 80 cd cc cc cc 4c; reconstructed/tests/test_turn_state.c | Exact special-respawn gate and collision-position transfer, item-20 clear, dynamic record update, int32-to-Real48 times 0.8 rounded velocity, special flags, normal sound/restore/highscore-on-zero path, 175-record save/load mirrors, modulo player search with return-to-origin termination, game-over transition/dialog condition, changed-player collision/item/UI refresh, ready-item redraw, marker decrement, ball reset, 20x148 overlay refresh, and final marker redraw are represented and tested across special, live-next-player, and all-dead branches. |
| 59 | 1000:b2c8 | FUN_1000_b2c8 | Code1 | 67 | verified | tdkpin_restore_bounds_overlay_a | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:b2c8-b30a; verified 1008:0837/093f; reconstructed/tests/test_gameplay_helpers.c | Exact ignored static link, inclusive uint16 bottom-top+1/right-left+1 dimensions, wrapped INT16 arguments, overlay-A restore then present ordering, unchanged top/left/DC, and 12-byte cleanup are represented and tested. |
| 60 | 1000:b30b | FUN_1000_b30b | Code1 | 165 | verified | tdkpin_restore_record_or_item_a | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:b30b-b3af; verified b2c8 and 1008:0dbd; collision/word-quad layouts; reconstructed/tests/test_gameplay_helpers.c | Exact caller-frame HWND/DC lifetime, ids 0..175 collision render bounds, ids 1006..1014 item-status mapping 1..9, all other ids via wrapped id-1000 times 8 word-quad bounds, overlay-A restore, and four-byte cleanup are represented and branch-tested. |
| 61 | 1000:b3b0 | FUN_1000_b3b0 | Code1 | 67 | verified | tdkpin_restore_bounds_overlay_b | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:b3b0-b3f2; verified 1008:08bb/093f; reconstructed/tests/test_gameplay_helpers.c | Exact ignored static link, inclusive uint16 bottom-top+1/right-left+1 dimensions, wrapped INT16 arguments, overlay-B restore then present ordering, unchanged top/left/DC, and 12-byte cleanup are represented and tested. |
| 62 | 1000:b3f3 | FUN_1000_b3f3 | Code1 | 131 | verified | tdkpin_restore_record_b | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:b3f3-b475; verified b3b0; collision/word-quad layouts; reconstructed/tests/test_gameplay_helpers.c | Exact caller-frame HWND/DC lifetime, ids 0..175 collision render bounds, all larger ids through wrapped id-1000 times 8 word-quad bounds without the A-path item special case, overlay-B restore, and four-byte cleanup are represented and tested. |
| 63 | 1000:b476 | FUN_1000_b476 | Code1 | 1984 | verified | tdkpin_handle_collision_events | reconstructed/tdkpin_collision_events.c | disassembly 1000:b476-bc35; all internal dependencies verified; exact collision/player/receiver aliases and bit order; reconstructed/tests/test_collision_events.c | Exact tilt-wide early return and ordered independent flags 0001,0002/2000,0400,0004,0008,0010,1000,0040 are represented: item activation, linked-record clear, rotation arm, random/nonrandom sprite award, five-group ready reward/reset, four-group item-bank <9/=9/>9 branches with completion rectangles or secondary bonus, three record switches, timed records, sounds, score deltas, record/player byte publications, DC sharing, and refresh ordering are branch-tested across every event class and boundary. |
| 64 | 1000:bc36 | FUN_1000_bc36 | Code1 | 364 | verified | tdkpin_add_score_from_caller_frame | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:bc36-bda1; verified multiply/sound/marker/status/score dependencies; exact player tables and caller receiver; reconstructed/tests/test_scoring.c | Exact caller-BP plus int32 delta ABI, -1 redraw sentinel, tilt gate, independent global/receiver doubling with 32-bit wrap, active score update, signed-high/unsigned-low threshold comparison including equality, level<=4 gate and index-zero alias arithmetic, sound 7, 32-bit level and 16-bit marker increments, marker refresh, conditional status update, unconditional score redraw, and DC lifetime are branch-tested. |
| 65 | 1000:bda2 | FUN_1000_bda2 | Code1 | 60 | verified | tdkpin_draw_score_from_caller_frame | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:bda2-bddd; SS caller-frame receiver at BP+6; USER GetDC/ReleaseDC; verified 1008:0996; reconstructed/tests/test_gameplay_helpers.c | Exact caller-frame far receiver, HWND +4, matched DC lifetime, low/high score word assembly, score renderer argument order, ignored API results, and six-byte cleanup are represented and tested. |
| 66 | 1000:bdde | FUN_1000_bdde | Code1 | 289 | verified | tdkpin_update_dynamic_ball_record | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:bdde-befe; packed collision layout; reconstructed/tests/test_gameplay_helpers.c | Exact ignored static link, signed 32-bit displacement plus 173 with low-word 83-byte indexing, current ball point1 stores, modulo-2^32 +/-16000 then +/-5000 bounds equivalent to +/-21000, six field writes, and six-byte cleanup are represented and tested. |
| 67 | 1000:beff | FUN_1000_beff | Code1 | 1132 | verified | tdkpin_move_ball_and_render | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:beff-c36a; body-equivalent swept-render tail proven against verified 1000:9f73; exact ten-byte ABI and position stores; reconstructed/tests/test_ball_sweep.c | Exact caller-BP plus delta-X/delta-Y int32 argument order, current-to-previous bc2/bc6 publication before mutation, modulo-2^32 Y-then-X additions, and the complete byte-equivalent signed-delta/geometry/mask/image/clipping/GDI tail shared with 1000:9f73 are represented; end-to-end state and rendered delta are tested with mixed-sign arguments. |
| 68 | 1000:c36b | FUN_1000_c36b | Code1 | 187 | verified | tdkpin_load_ball_slot | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:c36b-c425; SS caller-frame receiver; reconstructed/tests/test_gameplay_helpers.c | Exact unchecked uint16 slot times 4/6 addressing, slot position to global ball X/Y, velocity and auxiliary dword fields to receiver +0baa/+0bae/+0bca, six-byte Real48 copy to +0bce, overlap behavior, and six-byte cleanup are represented and tested. |
| 69 | 1000:c426 | FUN_1000_c426 | Code1 | 187 | verified | tdkpin_save_ball_slot | reconstructed/tdkpin_gameplay_helpers.c | disassembly 1000:c426-c4e0; SS caller-frame receiver; reconstructed/tests/test_gameplay_helpers.c | Exact inverse unchecked uint16 slot times 4/6 transfer of global position, receiver velocity/auxiliary dwords and six-byte Real48 field into packed DGROUP slot arrays, overlapping out-of-range slot behavior, and six-byte cleanup are represented and tested. |
| 70 | 1000:c4e1 | FUN_1000_c4e1 | Code1 | 699 | verified | tdkpin_apply_player_sprite_effect | reconstructed/tdkpin_player_state.c | disassembly 1000:c4e1-c79b; verified multiply/score dependencies; exact player tables and record 399a access; reconstructed/tests/test_player_state.c | Exact sprite-index dispatch 1..7, wrapping secondary-score additions 10000/20000/50000/100000/200000, unsigned-byte multiplier redraw, effect-6 multiplied transfer/reset/zero redraw, effect-7 nonzero record gate, signed-negative or unequal argument condition, receiver +be0 and global 0874 publications, and default no-op behavior are represented and branch-tested. |
| 71 | 1000:c79c | FUN_1000_c79c | Code1 | 8981 | verified | tdkpin_simulate_ball_and_dispatch_collision | reconstructed/tdkpin_physics.c | disassembly 1000:c79c-eab0 and rz-ghidra stack-offset view; packed 83-byte records and exact 52-byte candidate layout; all integer/Real48/gameplay/GDI dependencies verified; reconstructed/tests/test_physics.c | Exact RETF-2 caller-frame ABI, simulation-call counter, snapshotted ball count and substep word, multiball load/save, gravity and two ordered speed clamps, previous/predicted coordinates, board-loss/layer gates, 175-record broadphase, types 1 circle, 2 segment, 3 capture/pocket, and 4 stateful trigger, subtype normal reversal, signed cross/end-point tests, contact-state sentinels, claw/target-set/sprite/score special paths, trigger 0x4000 lifecycle and random bounce, packed nearest-candidate copies, event/score dispatch, Real48 normal/tangent/spin/response/kick transform including deliberately zeroed intermediate, ball-to-ball impulse transfer, record 25/2 terminal paths, ordered velocity/position publication, dynamic-record update, swept rendering, 32-bit wrap, and Borland divide/error behavior are represented. Free integration, exact 3-4-5 clamp, circle/segment responses, four trigger/capture modes, distinct response/event/score paths, out-of-bounds, and zero-substep multiball are tested. |
| 72 | 1000:eab1 | exported_ordinal_10 | Code1 | 4820 | verified | tdkpin_timer_tick | reconstructed/tdkpin_timer_tick.c | disassembly 1000:eab1-fd84 including RETF-8 and all annotated calls; exact Real48 claw-release table; complete verified dependency closure including 1000:c79c; reconstructed/tests/test_timer_tick.c | Exact two-DWORD callback ABI with unused second argument, all nine guard conditions, busy flag, 175-record refresh, two dword counters, claw movement/release/record activation, ten exact spawn states, 175 countdowns, target rotation, multiball collapse/promotion/reset/spawn, physics gate, quotient-versus-remainder intro schedules, record/item/chase/status animations, complete 30x284 score-marquee GDI lifetime, panel frames 1..281, game initialization, flipper/message epilogue, busy clear, redundant tilt read, and tilt-counter decrement are represented and branch-/sequence-tested. |
| 73 | 1000:fd85 | ne_program_entry | Code1 | 181 | verified | tdkpin_ne_program_entry | reconstructed/tdkpin_program_entry.c | disassembly 1000:fd85-fe39; relocations 1669-1679; reconstructed/tests/test_program_entry.c | Exact InitTask register handoff, eight-unit initialization order, full DX:AX GetVersion store, Windows 3.10 threshold, indirect MessageBox error path, fixed application object construction, VMT +1c Run and +08 destructor calls, dispose mode zero, and unconditional Halt(0) are represented and branch-tested. |
| 74 | 1008:0002 | FUN_1008_0002 | Code2 | 33 | verified | tdkpin_play_sound_if_not_tilted | reconstructed/tdkpin_sound.c | disassembly 1008:0002-0022; verified 1008:1131 dependency; DGROUP game-tilted byte 07c6 and sound-enabled byte 43f2; reconstructed/tests/test_sound.c | Exact Tilted==0 then Enabled!=0 short-circuit order, unchanged sound-number argument, ignored player result, two-byte Pascal cleanup, and all gate combinations are branch-tested. |
| 75 | 1008:0023 | FUN_1008_0023 | Code2 | 191 | verified | tdkpin_realize_nocollapse_palette | reconstructed/tdkpin_palette.c | disassembly 1008:0023-00e1; exact LOGPALETTE256 layout; verified Borland allocation/free; GDI palette/DC APIs; reconstructed/tests/test_palette_gdi.c | Exact null-allocation early return, 1028-byte palette, version 0300/count 256, 256 zero RGB entries with flag 4, GetDC/Create/Select(false)/Realize/Select(previous,true)/Delete/Release ordering, ignored API returns, free, and RETF 2 are branch-tested. |
| 76 | 1008:00e2 | FUN_1008_00e2 | Code2 | 86 | verified | tdkpin_drain_messages_except_input | reconstructed/tdkpin_message_pump.c | disassembly 1008:00e2-0137; exact MSG16 and USER Peek/Translate/Dispatch calls; seven internal/export callers; reconstructed/tests/test_message_pump.c | Exact PeekMessage HWND/min/max=0x32/PM_REMOVE arguments, loop-to-empty behavior, suppression of 0x0580/0x0100/0x0101, translation/dispatch of all other returned messages, and far return are represented and tested. |
| 77 | 1008:0138 | FUN_1008_0138 | Code2 | 1615 | verified | tdkpin_initialize_collision_record | reconstructed/tdkpin_collision_records.c | disassembly 1008:0138-0786; 177 call sites in 1000:0270; OBJECTS.tsv live original dump; reconstructed/tests/test_collision_records.c | Exact 40-word ABI, index 0..175 gate, 83-byte packed layout, type/subtype/active truncation, radius geometry selection, absolute Y-20 and relative continuation modes, signed int32 bound ordering, modulo-2^32 scale/add/subtract, +/-5000 and fallback corrections, Real48 radius conversion, four Real48 copies, all scalar fields, continuation globals, slot-0 aliases, and slot-175/word-table overlap are represented and branch-tested; rows 1 and 4 match live original geometry. |
| 78 | 1008:0787 | FUN_1008_0787 | Code2 | 47 | verified | tdkpin_set_word_quad | reconstructed/tdkpin_tables.c | disassembly 1008:0787-07b5; twenty direct setup calls with indices 1..20; reconstructed/tests/test_tables.c | Exact uint16 index*8 offset, DGROUP base 4263, reversed Pascal argument-to-field order, four word stores, ten-byte cleanup, and first/last written records are represented and tested. |
| 79 | 1008:07b6 | FUN_1008_07b6 | Code2 | 129 | verified | tdkpin_blit_bitmap_to_background | reconstructed/tdkpin_render.c | disassembly 1008:07b6-0836; background bitmap 085b; two compatible DCs; reconstructed/tests/test_render.c | Exact supplied-bitmap origin to background (x,y,width,height) SRCCOPY, selections/restorations, bitmap/source DC roles, deletion order, 12-byte cleanup, and ignored API results are tested. |
| 80 | 1008:0837 | FUN_1008_0837 | Code2 | 132 | verified | tdkpin_restore_background_region_a | reconstructed/tdkpin_render.c | disassembly 1008:0837-08ba; bitmaps 085b/085f; reconstructed/tests/test_render.c | Exact same-coordinate rectangle copy from overlay A into background, dual compatible DC lifecycle, object restoration, deletion order, ten-byte cleanup, and SRCCOPY are tested. |
| 81 | 1008:08bb | FUN_1008_08bb | Code2 | 132 | verified | tdkpin_restore_background_region_b | reconstructed/tdkpin_render.c | disassembly 1008:08bb-093e; bitmaps 085b/085d; reconstructed/tests/test_render.c | Byte-identical second rectangle restore with overlay B's exact global slot, argument order, DC/object lifecycle, and ten-byte cleanup is independently tested. |
| 82 | 1008:093f | FUN_1008_093f | Code2 | 87 | verified | tdkpin_present_background_region | reconstructed/tdkpin_render.c | disassembly 1008:093f-0995; background bitmap 085b; reconstructed/tests/test_render.c | Exact background-to-destination same-coordinate SRCCOPY, single compatible DC/select/restore/delete lifecycle, ten-byte cleanup, and ignored BOOL results are represented and tested. |
| 83 | 1008:0996 | FUN_1008_0996 | Code2 | 520 | verified | tdkpin_draw_score | reconstructed/tdkpin_render.c | disassembly 1008:0996-0b9d; verified 08e6 and blit dependencies; player-score table 0982-0991; digit bitmap 0861; reconstructed/tests/test_score_render.c | Exact one-based player-score selection, destination-x cases, 40x150 temporary surface, 40x130 background capture at y478, duplicated signed divide-by-10 calls, low-byte remainder digit, eight positions, leading-zero suppression, digit SRCAND coordinates, final SRCCOPY, selections/deletions, six-byte cleanup, and 16-bit coordinates are represented and tested. |
| 84 | 1008:0b9e | FUN_1008_0b9e | Code2 | 543 | verified | tdkpin_update_status_display | reconstructed/tdkpin_status_render.c | disassembly 1008:0b9e-0dbc; player/score/status/bitmap DGROUP objects; verified four blit primitives; reconstructed/tests/test_status_render.c | Exact current-player/sentinel/1..4 gates, strict score thresholds 2000/140000/650000/1300000, unchanged-level skip, level bitmap one-based lookup, main 146x142 region at 380,69, five reversed-x 11x11 indicators at y544, active A/inactive B selection, player-zero full reset, sentinel 99, four-byte cleanup, and state publication are branch-tested. |
| 85 | 1008:0dbd | FUN_1008_0dbd | Code2 | 75 | verified | tdkpin_draw_item_status | reconstructed/tdkpin_status_render.c | disassembly 1008:0dbd-0e07; item bitmap base 4321; verified blit/restore/present primitives; reconstructed/tests/test_status_render.c | Exact signed item-zero branch, one-based HBITMAP lookup for nonzero values, binary argument order height61,width68,y300,x123, background-B restoration, bitmap-to-background blit, unconditional presentation, four-byte cleanup, and ignored returns are represented and tested. |
| 86 | 1008:0e08 | FUN_1008_0e08 | Code2 | 287 | verified | tdkpin_draw_claw_frame | reconstructed/tdkpin_claw_render.c | disassembly 1008:0e08-0f26; verified background primitives; DAT900 bitmap 0863; reconstructed/tests/test_claw_render.c | Exact frame-zero restore/present, byte alternate gate, frame>9 subtract/switch, unsigned (frame-1)*100 source-x, source-y banks 0/74/148/222, fixed destination height74,width100,y47,x238, duplicate SRCCOPY to background and destination, select/restore/delete order, six-byte cleanup, and representative frames 1/10/18 are tested. |
| 87 | 1008:0f27 | FUN_1008_0f27 | Code2 | 5 | verified | tdkpin_initialize_unit_ordinal_72 | reconstructed/tdkpin_initialization.c | disassembly 1008:0f27-0f2b; NE entry 72; direct startup call at 1000:fda8 | Binary body is exactly PUSH BP; MOV BP,SP; LEAVE; RETF and therefore has no state or side effects beyond ordinary call-frame mechanics. |
| 88 | 1008:0f2e | FUN_1008_0f2e | Code2 | 437 | verified | tdkpin_initialize_sounds | reconstructed/tdkpin_sound.c | disassembly 1008:0f2e-10e2; exact DGROUP data and 48-byte WAVEOUTCAPS16 layout; verified Borland ParamStr/string/move/global-memory dependencies; 16 extracted WAV payload lengths; reconstructed/tests/test_sound.c | Exact entry resets, two-call ParamStr path construction, INI default/gate, device count/capability failures, volume-support rounding, one-based 1..22 traversal, absent-resource skips, Find/Load/allocate/Lock/Move/Unlock/Free ordering, state publication, and lack of failure checks are branch-tested. |
| 89 | 1008:10e3 | FUN_1008_10e3 | Code2 | 78 | verified | tdkpin_unload_sounds | reconstructed/tdkpin_sound.c | disassembly 1008:10e3-1130; sndPlaySound and verified global-memory release; exact DGROUP address model; reconstructed/tests/test_sound.c | Exact device-count gate, optional stop, inclusive slots 1..22 release order, no pointer/count/enabled clearing, Playing-byte clear, disabled no-op, and far return are branch-tested. |
| 90 | 1008:1131 | FUN_1008_1131 | Code2 | 94 | verified | tdkpin_play_sound | reconstructed/tdkpin_sound.c | disassembly 1008:1131-118e; resource-size table at conceptual base 03e6; sound-pointer base 43f2; MMSYSTEM sndPlaySound; reconstructed/tests/test_sound.c | Exact device-count/Enabled/nonzero-resource-size gates, prior-sound stop, selected far pointer, flags 5, BOOL-to-Playing publication, failure clear, no range check with 16-bit wrapped indexing, uninitialized word return, and all ordinary gate branches are tested. |
| 91 | 1008:118f | FUN_1008_118f | Code2 | 41 | verified | tdkpin_stop_sound_if_active | reconstructed/tdkpin_sound.c | disassembly 1008:118f-11b7; MMSYSTEM sndPlaySound; DGROUP device count 43ee and Playing 43f3; reconstructed/tests/test_sound.c | Exact device-count-word and playing-byte conjunction, sndPlaySound(NULL,0), ignored BOOL16 return, unchanged playing flag, uninitialized uint16 result, and all gate combinations are tested. |
| 92 | 1008:11b8 | FUN_1008_11b8 | Code2 | 5 | verified | tdkpin_initialize_unit_ordinal_86 | reconstructed/tdkpin_initialization.c | disassembly 1008:11b8-11bc; NE entry 86; direct startup call at 1000:fda3 | Binary body is exactly PUSH BP; MOV BP,SP; LEAVE; RETF and therefore has no state or side effects beyond ordinary call-frame mechanics. |
| 93 | 1008:11c5 | FUN_1008_11c5 | Code2 | 345 | verified | tdkpin_create_palette_from_rgb_table | reconstructed/tdkpin_palette.c | disassembly 1008:11c5-131d; exact LOGPALETTE256 layout; DGROUP RGB table 4450-474f; verified Borland allocation/range/free dependencies; GDI CreatePalette; reconstructed/tests/test_palette.c | Exact 1028-byte allocation, version 0300/count 256, index*3 RGB to index*4 PALETTEENTRY copy, zero flags, 32-bit loop shape, palette handle publication, 0..65535 descriptor check, temporary free, and far return are represented and tested. |
| 94 | 1008:1326 | FUN_1008_1326 | Code2 | 130 | verified | tdkpin_load_palette_resource | reconstructed/tdkpin_palette.c | disassembly 1008:1326-13a7; PAL resource call frame; range descriptor 131e; reconstructed/tests/test_palette.c | Exact current-instance/resource-name/custom-type FindResource, Load/Lock chain, inclusive indices 0..767, two compiler range checks per byte, far source/destination copy, GlobalUnlock-only cleanup, lack of failure checks, RETF 0x0a, and resource 999 call shape are represented and tested. |
| 95 | 1008:13a8 | FUN_1008_13a8 | Code2 | 245 | verified | tdkpin_fill_bitmap_info_palette | reconstructed/tdkpin_palette.c | disassembly 1008:13a8-149c; exact BITMAPINFOHEADER/RGBQUAD offsets; verified 32-bit multiply helper equivalence; reconstructed/tests/test_palette.c | Exact bit-count shift and dead wrapped allocation-tail arithmetic, inclusive 0..255 loop, source index*3, destination index*4+40, RGB-to-BGR reversal, reserved-zero store, unaligned far accesses, and four-byte cleanup are represented and tested. |
| 96 | 1008:15c2 | FUN_1008_15c2 | Code2 | 5 | verified | tdkpin_initialize_unit_ordinal_91 | reconstructed/tdkpin_initialization.c | disassembly 1008:15c2-15c6; NE entry 91; direct startup call at 1000:fd9e | Binary body is exactly PUSH BP; MOV BP,SP; LEAVE; RETF and therefore has no state or side effects beyond ordinary call-frame mechanics. |
| 97 | 1008:15c7 | FUN_1008_15c7 | Code2 | 32 | verified | tdkpin_global_allocate_locked | reconstructed/tdkpin_global_memory.c | disassembly 1008:15c7-15e6; NE entry 96; Win16 KERNEL ordinals 15 and 18; reconstructed/tests/test_global_memory.c | Exact UINT16 flags, uint32 byte count, GlobalAlloc handle flow, unconditional GlobalLock, and far-pointer result are represented and tested. |
| 98 | 1008:15e7 | FUN_1008_15e7 | Code2 | 32 | verified | tdkpin_global_unlock_and_free | reconstructed/tdkpin_global_memory.c | disassembly 1008:15e7-1606; NE entry 97; Win16 KERNEL ordinals 21, 19, and 17; reconstructed/tests/test_global_memory.c | Exact selector-only GlobalHandle lookup, retained handle, GlobalUnlock-before-GlobalFree order, ignored pointer offset, and ignored API returns are represented and tested. |
| 99 | 1008:1607 | FUN_1008_1607 | Code2 | 135 | verified | object_windows_text_dialog_construct | reconstructed/tdkpin_dialog.c | disassembly 1008:1607-168d; verified 1008:2996; reconstructed/tests/test_dialog.c | Exact hidden-VMT constructor gate, 066a template choice 7f02/7f05, base integer-resource constructor, unaligned caption/label/text far fields +26/+2a/+2e, signed control id +32, parent propagation, suppressed-construction return, and 24-byte cleanup are represented and tested. |
| 100 | 1008:168e | FUN_1008_168e | Code2 | 48 | verified | object_windows_dialog_read_text | reconstructed/tdkpin_dialog.c | disassembly 1008:168e-16bd; USER GetDlgItemText ordinal 93; object fields +4/+0x2e/+0x32; reconstructed/tests/test_dialog.c | Exact HWND, signed control id, unaligned far buffer, maximum 0x65, ignored character count, fixed AL=1 return, and four-byte cleanup are represented and tested. |
| 101 | 1008:16be | FUN_1008_16be | Code2 | 113 | verified | object_windows_dialog_setup_text_fields | reconstructed/tdkpin_dialog.c | disassembly 1008:16be-172e; verified 1018:0d9b; reconstructed/tests/test_dialog.c | Exact prepare ordering, HWND caption, control 100 label, control 101 text, EM_LIMITTEXT 0415 to control 101, uint16 capacity-minus-one wrap, zero lParam, ignored USER results, and four-byte cleanup are represented and tested. |
| 102 | 1008:172f | FUN_1008_172f | Code2 | 37 | verified | tpwincrt_min_i16 | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:172f-1753 | Exact signed comparison, branch values, 16-bit result, and four-byte near-Pascal cleanup represented in C. |
| 103 | 1008:1754 | FUN_1008_1754 | Code2 | 37 | verified | tpwincrt_max_i16 | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:1754-1778 | Exact signed comparison, branch values, 16-bit result, and four-byte near-Pascal cleanup represented in C. |
| 104 | 1008:1779 | FUN_1008_1779 | Code2 | 105 | verified | tpwincrt_begin_drawing | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:1779-17e1; Wine 11.15 USER/GDI prototypes; fixed PAINTSTRUCT address | Exact BeginPaint/GetDC selection, stock-font selection/save, system foreground/background colors, argument order, stores, and ignored return values represented in C. |
| 105 | 1008:17e2 | FUN_1008_17e2 | Code2 | 54 | verified | tpwincrt_end_drawing | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:17e2-1817; matching drawing acquisition at 1008:1779 | Exact previous-font restoration and EndPaint/ReleaseDC branch with HWND/DC/PAINTSTRUCT arguments represented in C. |
| 106 | 1008:1818 | FUN_1008_1818 | Code2 | 67 | verified | tpwincrt_create_caret | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:1818-185a; four USER import call sites reviewed | Exact control flow, argument order, unsigned 16-bit coordinate wrap, ignored results, and address-linked globals represented in C. |
| 107 | 1008:185b | FUN_1008_185b | Code2 | 10 | verified | tpwincrt_destroy_caret | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:185b-1864; DestroyCaret16 call site reviewed | Exact no-argument call, ignored BOOL16 result, and return represented in C. |
| 108 | 1008:1865 | FUN_1008_1865 | Code2 | 107 | verified | tpwincrt_update_scrollbars | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:1865-18cf; verified max helper; all SetScrollRange16/SetScrollPos16 call sites reviewed | Exact bar ids, redraw flags, signed max clamp, positions, ignored results, and call order represented in C. |
| 109 | 1008:18d0 | FUN_1008_18d0 | Code2 | 30 | verified | tpwincrt_abort_on_ctrl_c | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:18d0-18ed; verified RuntimeExit 1020:0061; reconstructed/tests/test_runtime_input.c | Exact focus-and-caret conjunction, conditional DestroyCaret-before-exit order, ignored BOOL16 result, fixed uint16 status 0xff, and all focus/caret combinations are tested. |
| 110 | 1008:18ee | FUN_1008_18ee | Code2 | 201 | verified | tpwincrt_scroll_to | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:18ee-19b6; verified signed min/max helpers; this function's SetScrollPos16/ScrollWindow16/UpdateWindow16 calls reviewed | Exact clamping, conditional scrollbar updates, low-word MUL deltas, signed API interpretation, viewport-store order, repaint call, and inactive-window early return represented in C. |
| 111 | 1008:19b7 | FUN_1008_19b7 | Code2 | 65 | verified | tpwincrt_scroll_cursor_into_view | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:19b7-19f7; verified signed min/max and scroll dependencies | Exact 16-bit subtraction/increment wrap, nested bounds selection, argument order, and far-call return behavior represented in C. |
| 112 | 1008:19f8 | FUN_1008_19f8 | Code2 | 65 | verified | tpwincrt_cell_pointer | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:19f8-1a38 | Exact signed one-wrap row test, unsigned MUL low word, offset-only 16-bit wrap, and unchanged selector represented in C. |
| 113 | 1008:1a39 | FUN_1008_1a39 | Code2 | 73 | verified | tpwincrt_draw_row_range | reconstructed/tdkpin_tpwincrt_text.c | disassembly 1008:1a39-1a81; reconstructed/tests/test_tpwincrt_text.c | Exact signed empty-range gate, 16-bit pixel products, circular-buffer pointer, TextOut count, and matched drawing-context lifetime are represented and tested. |
| 114 | 1008:1a82 | FUN_1008_1a82 | Code2 | 143 | verified | tpwincrt_advance_line | reconstructed/tdkpin_tpwincrt_text.c | disassembly 1008:1a82-1b10; caller-frame alias mapped to explicit changed-range pointers; reconstructed/tests/test_tpwincrt_text.c | Exact pending-row draw, local-range clears, CR column reset, row advance, bottom-row retention, ring-origin wrap, row clearing, negative-height ScrollWindow, and UpdateWindow are represented and tested. |
| 115 | 1008:1b11 | FUN_1008_1b11 | Code2 | 216 | verified | tpwincrt_write_bytes | reconstructed/tdkpin_tpwincrt_text.c | disassembly 1008:1b11-1be8; reconstructed/tests/test_tpwincrt_text.c | Exact lazy-window call, printable/CR/BS/BEL dispatch, signed dirty-range tracking, 16-bit cursor wrap behavior, circular-screen writes, final draw, and optional cursor scroll are represented and tested. |
| 116 | 1008:1be9 | FUN_1008_1be9 | Code2 | 26 | verified | tpwincrt_write_character | reconstructed/tdkpin_tpwincrt_text.c | disassembly 1008:1be9-1c02; reconstructed/tests/test_tpwincrt_text.c | Exact single-byte SS-backed wrapper into the bulk TPWinCrt writer and six-byte far-Pascal cleanup semantics are represented through line-edit echo tests. |
| 117 | 1008:1c03 | FUN_1008_1c03 | Code2 | 92 | verified | tpwincrt_poll_input | reconstructed/tdkpin_tpwincrt_text.c | disassembly 1008:1c03-1c5e; reconstructed/tests/test_tpwincrt_text.c | Exact lazy-window creation, PeekMessage remove flag 1, full queue drain, WM_QUIT abort, Translate/Dispatch ordering, and signed-positive input-count result are represented and tested. |
| 118 | 1008:1c5f | FUN_1008_1c5f | Code2 | 103 | verified | tpwincrt_read_character | reconstructed/tdkpin_tpwincrt_text.c | disassembly 1008:1c5f-1cc5; reconstructed/tests/test_tpwincrt_text.c | Exact pre-read cursor scroll, nonblocking poll, WaitMessage loop, focus-conditional caret ownership, queue decrement, first-byte return, and overlap-safe tail shift are represented and tested. |
| 119 | 1008:1cc6 | FUN_1008_1cc6 | Code2 | 177 | verified | tpwincrt_read_line | reconstructed/tdkpin_tpwincrt_text.c | disassembly 1008:1cc6-1d76; reconstructed/tests/test_tpwincrt_text.c | Exact backspace editing, unsigned capacity-minus-two gate, printable echo, CR or optional Ctrl-Z termination, retained terminator, CRLF expansion, final cursor scroll, and returned byte count are represented and tested. |
| 120 | 1008:1d77 | FUN_1008_1d77 | Code2 | 85 | verified | tpwincrt_on_create | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:1d77-1dcb; verified GetMem/fill; reconstructed/tests/test_runtime_lifecycle.c | Exact created flag, low-word columns*rows wrap, allocation/store, space fill, BreakCheck gate, GetSystemMenu/EnableMenuItem arguments and order, ignored results, and both menu branches are tested. |
| 121 | 1008:1dcc | FUN_1008_1dcc | Code2 | 190 | verified | tpwincrt_on_paint | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:1dcc-1e89; PAINTSTRUCT16 layout; verified draw-context, min/max, and cell-pointer dependencies | Exact paint flag lifetime, signed clipping math, 16-bit rounded bounds, signed row loop, low-word pixel coordinates, circular text pointer, TextOut16 arguments, and cleanup represented in C. |
| 122 | 1008:1e8a | FUN_1008_1e8a | Code2 | 130 | verified | tpwincrt_apply_scroll_command | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:1e8a-1f0b; caller-frame layout from 1008:1f0c | Exact BP+4/BP+6 aliasing, all eight command/default paths, signed values, and 16-bit arithmetic wrap represented in C. |
| 123 | 1008:1f0c | FUN_1008_1f0c | Code2 | 92 | verified | tpwincrt_handle_scroll | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:1f0c-1f67; verified 1008:1e8a and 1008:18ee dependencies | Exact caller-frame handoff, horizontal half-page versus vertical full-page sizing, axis selection, unchanged-axis behavior, and common scroll call represented in C. |
| 124 | 1008:1f68 | FUN_1008_1f68 | Code2 | 128 | verified | tpwincrt_on_size | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:1f68-1fe7; verified caret, min/max, and scrollbar dependencies | Exact WM_SIZE width/height order, signed IDIV, 16-bit subtraction wrap, viewport clamps, scrollbar update, and caret teardown/recreation ordering represented in C. |
| 125 | 1008:1fe8 | FUN_1008_1fe8 | Code2 | 306 | verified | tpwincrt_fill_minmax_info | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:1fe8-2119; exact TEXTMETRIC16/MINMAXINFO16; reconstructed/tests/test_runtime_minmax.c | Host stack bound as emulated SS verifies local far TEXTMETRIC writes, drawing acquire/release, metric stores, every SystemMetrics-derived expression, signed screen clamp, low-word arithmetic, six exact target words, and untouched fields. |
| 126 | 1008:211a | FUN_1008_211a | Code2 | 45 | verified | tpwincrt_queue_character | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:211a-2146; verified abort path; reconstructed/tests/test_runtime_input.c | Exact BreakCheck/character-3 termination-before-append, ordinary byte append, uint16 count increment, signed count capacity comparison at 64, disabled-BreakCheck character 3, and full-queue no-op are branch-tested. |
| 127 | 1008:2147 | FUN_1008_2147 | Code2 | 115 | verified | tpwincrt_handle_keydown | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:2147-21b9; verified key table/RuntimeExit/scroll path; reconstructed/tests/test_runtime_input.c | Exact Ctrl-C termination, signed GetKeyState control bit, ordered first-match table scan, horizontal LineUp, Ctrl-PageUp, vertical LineUp, no-match no-op, and resulting viewport/API effects are branch-tested. |
| 128 | 1008:21ba | FUN_1008_21ba | Code2 | 20 | verified | tpwincrt_on_set_focus | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:21ba-21cd; verified 1008:1818 dependency | Exact store-before-conditional-caret-create ordering represented in C. |
| 129 | 1008:21ce | FUN_1008_21ce | Code2 | 20 | verified | tpwincrt_on_kill_focus | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:21ce-21e1; verified 1008:185b dependency | Exact conditional-caret-destroy-before-focus-clear ordering represented in C. |
| 130 | 1008:21e2 | FUN_1008_21e2 | Code2 | 55 | verified | tpwincrt_on_destroy | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:21e2-2218; verified FreeMem; reconstructed/tests/test_runtime_lifecycle.c | Exact low-word columns*rows release size, far buffer, cursor/view zeroing, PostQuitMessage(0), created-flag clear, ordering, and wrapped-size case are represented and tested. |
| 131 | 1008:2219 | FUN_1008_2219 | Code2 | 227 | verified | tpwincrt_window_proc | reconstructed/tdkpin_runtime_ui.c | disassembly 1008:2219-22f9; NE entry 119; exact WNDPROC16 ABI; every direct handler row verified | Exact process-window publication, eleven handled message ids/argument extractions, handled DX:AX zero return, default DefWindowProc16 frame/LRESULT preservation, and complete address-linked handler mapping are represented; every dispatched handler and dependency is independently verified. |
| 132 | 1008:22fc | FUN_1008_22fc | Code2 | 64 | verified | tpwincrt_text_write_buffer | reconstructed/tdkpin_tpwincrt_text.c | disassembly 1008:22fc-233b; reconstructed/tests/test_tpwincrt_text.c | Exact zero-count bypass, BufPtr/BufPos bulk write, post-write BufPos clear, input-message poll, ignored poll result, and AX=0 callback result are represented and tested. |
| 133 | 1008:233c | FUN_1008_233c | Code2 | 56 | verified | tpwincrt_text_read_buffer | reconstructed/tdkpin_tpwincrt_text.c | disassembly 1008:233c-2373; reconstructed/tests/test_tpwincrt_text.c | Exact BufSize/BufPtr line read, returned count publication to BufEnd, BufPos clear, and AX=0 callback result are represented and tested. |
| 134 | 1008:2374 | FUN_1008_2374 | Code2 | 23 | verified | tdkpin_file_close_noop | reconstructed/tdkpin_borland_files.c | disassembly 1008:2374-238a; stored FileProc relocation at 1008:23de/23e1; reconstructed/tests/test_borland_files.c | Exact ignored far FileRec receiver, local uint16 zero, AX return, four-byte Pascal cleanup, and callback role are represented and tested. |
| 135 | 1008:238b | FUN_1008_238b | Code2 | 114 | verified | tpwincrt_open_text_record | reconstructed/tdkpin_tpwincrt_text.c | disassembly 1008:238b-23fc; relocations to 1008:22fc/233c/2374; reconstructed/tests/test_tpwincrt_text.c | Exact input versus output mode transition and relocated InOut/Flush/Close callback table, including null input FlushFunc and shared output callbacks, are represented and tested. |
| 136 | 1008:23fd | FUN_1008_23fd | Code2 | 69 | verified | tpwincrt_initialize_text_record | reconstructed/tdkpin_tpwincrt_text.c | disassembly 1008:23fd-2441; relocation to 1008:238b; reconstructed/tests/test_tpwincrt_text.c | Exact ffff handle, closed sentinel, 128-byte buffer, embedded buffer pointer, OpenFunc, empty name, and deliberate preservation of all unwritten TextRec fields are represented and tested. |
| 137 | 1008:2442 | FUN_1008_2442 | Code2 | 99 | verified | tpwincrt_create_window | reconstructed/tdkpin_tpwincrt_lifecycle.c | disassembly 1008:2442-24a4; sole CreateWindow/ShowWindow/UpdateWindow call sites; reconstructed/tests/test_tpwincrt_lifecycle.c | Exact created gate, class/title far pointers, style 00ff0000, four 8000 defaults, null parent/menu/parameter, process instance, show command, HWND publication, and ignored API results are represented and tested. |
| 138 | 1008:24a5 | FUN_1008_24a5 | Code2 | 175 | verified | tpwincrt_shutdown_exit_proc | reconstructed/tdkpin_tpwincrt_lifecycle.c | disassembly 1008:24a5-2553; stored callback relocation from 1008:2554; reconstructed/tests/test_tpwincrt_lifecycle.c | Exact predecessor restoration before guards, clean/live-window gate, far-title wvsprintf argument, inactive caption, SC_CLOSE enable, break-check disable, and GetMessage/Translate/Dispatch shutdown loop are represented and tested. |
| 139 | 1008:2554 | FUN_1008_2554 | Code2 | 180 | verified | tpwincrt_initialize_runtime_unit | reconstructed/tdkpin_tpwincrt_lifecycle.c | disassembly 1008:2554-2607; relocations 274-286; reconstructed/tests/test_tpwincrt_lifecycle.c | Exact first-instance WNDCLASS completion/registration, shared icon/cursor integer resource, input/output TextRec Reset/Rewrite with IOResult checks, 80-byte module-title fetch, in-place OemToAnsi, and ExitProc predecessor/install sequence are represented and tested. |
| 140 | 1008:2608 | FUN_1008_2608 | Code2 | 59 | verified | borland_dos_get_file_attributes_ansi | reconstructed/tdkpin_multimedia_paths.c | disassembly 1008:2608-2642; KEYBOARD ordinal 5; DOS AX=4300h; reconstructed/tests/test_multimedia_paths.c | Exact 79-byte bounded copy, unconditional NUL, in-place AnsiToOem conversion, restored AX/CX register contract, DOS carry, returned attribute word, and overlength case are represented and tested. |
| 141 | 1008:2643 | FUN_1008_2643 | Code2 | 109 | verified | multimedia_search_file | reconstructed/tdkpin_multimedia_paths.c | disassembly 1008:2643-26af; verified 1008:2608; reconstructed/tests/test_multimedia_paths.c | Exact bare-name-first search, 79+NUL result capacity, semicolon component parser, empty component behavior, colon/backslash separator suppression, file attribute 18 mask, exhausted empty result, far-pointer return, and truncation are represented and tested. |
| 142 | 1008:26b0 | FUN_1008_26b0 | Code2 | 361 | verified | multimedia_split_path | reconstructed/tdkpin_multimedia_paths.c | disassembly 1008:26b0-2818; verified far string dependencies; reconstructed/tests/test_multimedia_paths.c | Exact last slash/colon base, first-dot extension, 67-byte prefix and 8-byte basename caps, fixed four-byte extension copy, optional outputs, overlap-safe in-place directory extraction, wildcard detection, and 8/4/2/1 flag word are represented and tested. |
| 143 | 1008:2819 | FUN_1008_2819 | Code2 | 138 | verified | multimedia_environment_value | reconstructed/tdkpin_multimedia_paths.c | disassembly 1008:2819-28a2; KERNEL GetDOSEnvironment ordinal 131; verified far strlen/strnicmp; reconstructed/tests/test_multimedia_paths.c | Exact double-NUL environment traversal, ASCII case-insensitive bounded name match, mandatory equals delimiter, empty value pointer, missing-name null return, and selector-preserving offset advance are represented and tested. |
| 144 | 1008:28a3 | FUN_1008_28a3 | Code2 | 99 | verified | tdkpin_system_timer_construct | reconstructed/tdkpin_system_timer.c | disassembly 1008:28a3-2905; verified Borland object helpers; reconstructed/tests/test_system_timer.c | Exact six-byte object layout, existing/new ownership, root construction, recipient/timer stores, start call, zero-id failure cleanup, and far-object return are represented and branch-tested. |
| 145 | 1008:2906 | FUN_1008_2906 | Code2 | 44 | verified | tdkpin_system_timer_destruct | reconstructed/tdkpin_system_timer.c | disassembly 1008:2906-2931; verified 1008:2932, 1008:2dcd, and 1020:0439; reconstructed/tests/test_system_timer.c | Exact stack check, timer cancellation, root destruction, hidden VMT ownership, and allocation release order are represented and tested. |
| 146 | 1008:2932 | FUN_1008_2932 | Code2 | 42 | verified | tdkpin_system_timer_stop | reconstructed/tdkpin_system_timer.c | disassembly 1008:2932-295b; MMSYSTEM timeKillEvent ordinal 603; reconstructed/tests/test_system_timer.c | Exact nonzero-id branch, imported cancellation call and ignored result, unconditional id clearing, and already-stopped path are represented and branch-tested. |
| 147 | 1008:295c | FUN_1008_295c | Code2 | 46 | verified | tdkpin_system_timer_start | reconstructed/tdkpin_system_timer.c | disassembly 1008:295c-2989; verified MMTIMER SystemTimerMake ordinal 1; reconstructed/tests/test_system_timer.c | Exact object recipient field, delay/resolution ordering, stack-check AX high byte retained across MOV AL, one-shot low byte, timer-id return, and 16-bit widths are represented and tested. |
| 148 | 1008:298a | FUN_1008_298a | Code2 | 12 | verified | tdkpin_initialize_stack_guard | reconstructed/tdkpin_stack.c | disassembly 1008:298a-2995; NE entry 132; direct startup call at 1000:fd8f; verified 1020:03cb; reconstructed/tests/test_stack.c | Exact AX=0 initialization call into the Borland stack guard is represented and tested against bound Win16 stack state. |
| 149 | 1008:2996 | FUN_1008_2996 | Code2 | 120 | verified | object_windows_dialog_construct | reconstructed/tdkpin_dialog.c | disassembly 1008:2996-2a0d; verified ObjectWindows/Borland/string dependencies; reconstructed/tests/test_dialog.c | Exact hidden-VMT gate, base object construction with VMT zero, flag-4 clear, selector-zero integer template retention, far-string duplication/ownership, unaligned template/init fields, modal clear, suppressed construction, return, and 14-byte cleanup are represented and tested. |
| 150 | 1008:2a0e | FUN_1008_2a0e | Code2 | 55 | verified | object_windows_dialog_destruct | reconstructed/tdkpin_dialog.c | disassembly 1008:2a0e-2a44; verified far string/base object/Borland destructor helpers; reconstructed/tests/test_dialog.c | Exact selector-word-only string guard at unaligned +0x1d/+0x1f, optional dispose, base destructor hidden VMT zero, caller-owned final frame, call order, and six-byte cleanup are branch-tested. |
| 151 | 1008:2a45 | FUN_1008_2a45 | Code2 | 158 | verified | object_windows_create_modeless_dialog | reconstructed/tdkpin_dialog.c | disassembly 1008:2a45-2ae2; DGROUP CreateDialogParam pointer 0652; callback ledger; reconstructed/tests/test_dialog.c | Exact status gate, flag clear/set, modal clear, null/parent HWND selection, instance/template/bound-proc/init arguments, HWND publication, zero-handle status ffff, retained AH plus Boolean AL return, indeterminate skipped-path AH, and four-byte cleanup are represented and tested. |
| 152 | 1008:2ae3 | FUN_1008_2ae3 | Code2 | 206 | verified | object_windows_execute_modal_dialog | reconstructed/tdkpin_dialog.c | disassembly 1008:2ae3-2bb0; DGROUP DialogBoxParam pointer 0656; callback ledger; reconstructed/tests/test_dialog.c | Exact status short-circuit, flag clear/set, modal set, parent HWND, application active-dialog save/restore around the indirect call, all five API arguments, -1 status propagation, HWND clear, returned INT16 result, and four-byte cleanup are represented and tested. |
| 153 | 1008:2bb1 | FUN_1008_2bb1 | Code2 | 32 | verified | object_windows_dialog_mark_child | reconstructed/tdkpin_dialog.c | disassembly 1008:2bb1-2bd0; callback relocation at 1008:2be1/2be4; verified flag helper; reconstructed/tests/test_dialog.c | Exact ignored static-link word, child far pointer, HWND +4 zero gate, flag-4 set, six-byte cleanup, and ForEach callback role are represented and tested. |
| 154 | 1008:2bd1 | FUN_1008_2bd1 | Code2 | 55 | verified | object_windows_end_modal_dialog | reconstructed/tdkpin_dialog.c | disassembly 1008:2bd1-2c07; modal byte +0x25; verified child iteration callback; USER EndDialog; reconstructed/tests/test_dialog.c | Exact inactive no-op, child marking before EndDialog, HWND +4/result ordering, ignored BOOL16 return, six-byte cleanup, and active/inactive branches are represented and tested. |
| 155 | 1008:2c08 | FUN_1008_2c08 | Code2 | 23 | verified | object_windows_call_slot_38 | reconstructed/tdkpin_window_messages.c | disassembly 1008:2c08-2c1e; VMT relocation at 1028:06e2; reconstructed/tests/test_window_messages.c | Exact receiver/event far arguments, ignored event, receiver-only VMT +0x38 call, and eight-byte Pascal cleanup are represented and tested. |
| 156 | 1008:2c1f | FUN_1008_2c1f | Code2 | 100 | verified | object_windows_query_end_session_result | reconstructed/tdkpin_window_messages.c | disassembly 1008:2c1f-2c82; application MainWindow +8; VMT slots +44/+3c; reconstructed/tests/test_object_windows_handlers.c | Exact far MainWindow comparison, Application-versus-Window CanClose receiver selection, AL Boolean inversion, CBW/CWD 32-bit result publication at message +0a, and both approval/rejection branches are represented and tested. |
| 157 | 1008:2c83 | FUN_1008_2c83 | Code2 | 86 | verified | object_windows_focus_message | reconstructed/tdkpin_window_messages.c | disassembly 1008:2c83-2cd8; USER SetFocus ordinal 22; verified 1018:0097; reconstructed/tests/test_object_windows_handlers.c | Exact message wParam focus request, ignored SetFocus result, HWND-to-object recovery, null branches, unaligned attached far pointer +43, attached VMT +0c receiver call, and unconditional marker store are represented and tested. |
| 158 | 1008:2cd9 | FUN_1008_2cd9 | Code2 | 25 | verified | object_windows_zero_message_result | reconstructed/tdkpin_window_messages.c | disassembly 1008:2cd9-2cf1; dialog VMT relocation at 1028:01da slot +0x0c; reconstructed/tests/test_window_messages.c | Exact ignored receiver, event far pointer, two zero word stores at +0x0a/+0x0c, 32-bit LRESULT zero, and eight-byte cleanup are represented and tested. |
| 159 | 1008:2cf2 | FUN_1008_2cf2 | Code2 | 72 | verified | object_windows_dialog_validate_and_close | reconstructed/tdkpin_dialog.c | disassembly 1008:2cf2-2d39; verified 1018:0f38; VMT slots +3c/+44/+50; reconstructed/tests/test_object_windows_handlers.c | Exact modal-byte gate, nonmodal close-if-allowed path, modal CanClose rejection, approved +44(object,1) then +50(object,1) ordering, ignored event, and eight-byte cleanup are represented and tested. |
| 160 | 1008:2d3a | FUN_1008_2d3a | Code2 | 44 | verified | object_windows_dialog_close | reconstructed/tdkpin_dialog.c | disassembly 1008:2d3a-2d65; modal byte +0x25; verified close helper; VMT +0x50; reconstructed/tests/test_dialog.c | Exact ignored event far pointer, nonmodal close-if-allowed path, modal receiver/argument 2 virtual call, branch ordering, and eight-byte cleanup are represented and tested. |
| 161 | 1008:2d66 | FUN_1008_2d66 | Code2 | 33 | verified | borland_dispatch_method_8002 | reconstructed/tdkpin_dispatch.c | disassembly 1008:2d66-2d86; VMT relocation at 1028:06ea; verified dynamic dispatcher; reconstructed/tests/test_dispatch.c | Exact receiver/argument far-pointer copies, receiver VMT load, dynamic id 0x8002, far target invocation, and eight-byte Pascal cleanup are represented and tested. |
| 162 | 1008:2d87 | FUN_1008_2d87 | Code2 | 18 | verified | borland_abstract_method_error | reconstructed/tdkpin_borland_objects.c | disassembly 1008:2d87-2d98; NE entry 238; reconstructed/tests/test_borland_objects.c | Exact no-return Runtime Error 211 abstract-virtual trap is represented and tested. |
| 163 | 1008:2d99 | FUN_1008_2d99 | Code2 | 26 | verified | borland_default_object_constructor | reconstructed/tdkpin_borland_objects.c | disassembly 1008:2d99-2db2; NE entry 235; verified 1020:03ef; reconstructed/tests/test_borland_objects.c | Exact hidden object/VMT frame, DI=0 VMT-field offset, unchanged far-object return, and constructor allocation path are represented and tested. |
| 164 | 1008:2db3 | FUN_1008_2db3 | Code2 | 26 | verified | borland_dispose_object | reconstructed/tdkpin_borland_objects.c | disassembly 1008:2db3-2dcc; NE entry 236; reconstructed/tests/test_borland_objects.c | Exact object VMT lookup, far virtual destructor slot +8, object argument, and hidden dispose mode 1 are represented and tested. |
| 165 | 1008:2dcd | FUN_1008_2dcd | Code2 | 19 | verified | borland_default_object_destructor | reconstructed/tdkpin_borland_objects.c | disassembly 1008:2dcd-2ddf; NE entry 237; verified 1020:0439; reconstructed/tests/test_borland_objects.c | Exact DI=0 destructor cleanup call and hidden object/VMT argument behavior are represented and tested. |
| 166 | 1008:2de0 | FUN_1008_2de0 | Code2 | 31 | verified | borland_heap_reserve_is_unallocated | reconstructed/tdkpin_borland_runtime.c | disassembly 1008:2de0-2dfe | Exact far-pointer OR, AL boolean normalization, and ignored residual AH represented by a C bool result. |
| 167 | 1008:2dff | FUN_1008_2dff | Code2 | 35 | verified | borland_ensure_heap_reserve | reconstructed/tdkpin_borland_runtime.c | disassembly 1008:2dff-2e21; null/existing reserve tests with mocked GetMem | Exact null guard, configured-size allocation, no-reallocation path, and far-pointer store verified; allocator internals remain a separate function row. |
| 168 | 1008:2e22 | FUN_1008_2e22 | Code2 | 84 | verified | borland_release_heap_reserve_on_oom | reconstructed/tdkpin_borland_runtime.c | disassembly 1008:2e22-2e75; complete branch/status/free tests | Exact zero/nonzero contract, disabled/null/reserve branches, FreeMem arguments, pointer clear, 0/1/2 statuses, and explicit indeterminate result verified. |
| 169 | 1008:2e76 | FUN_1008_2e76 | Code2 | 28 | verified | borland_initialize_heap_reserve | reconstructed/tdkpin_borland_runtime.c | disassembly 1008:2e76-2e91; NE segment relocation binding test | Exact ensure call and segment-2 offset 2e22 handler publication verified. |
| 170 | 1008:2e92 | FUN_1008_2e92 | Code2 | 23 | verified | borland_far_strlen | reconstructed/tdkpin_strings.c | disassembly 1008:2e92-2ea8; selector-backed boundary tests | Exact CX=ffff REPNE scan, ordinary NUL, and no-NUL fffe result verified against the portable 16:16 memory model. |
| 171 | 1008:2ea9 | FUN_1008_2ea9 | Code2 | 23 | verified | borland_far_strend | reconstructed/tdkpin_strings.c | disassembly 1008:2ea9-2ebf; selector-backed boundary tests | Exact bounded scan, terminator pointer, and no-NUL offset fffe verified. |
| 172 | 1008:2ec0 | FUN_1008_2ec0 | Code2 | 37 | verified | borland_far_memmove | reconstructed/tdkpin_strings.c | disassembly 1008:2ec0-2ee4; overlap and cross-selector tests | Exact unsigned offset-only direction decision, backward overlap, cross-selector transfer, and destination return verified. |
| 173 | 1008:2ee5 | FUN_1008_2ee5 | Code2 | 34 | verified | borland_far_strcpy | reconstructed/tdkpin_strings.c | disassembly 1008:2ee5-2f06; selector-backed copy tests | Exact bounded NUL-inclusive copy and destination return verified. |
| 174 | 1008:2f07 | FUN_1008_2f07 | Code2 | 40 | verified | borland_far_strncpy | reconstructed/tdkpin_strings.c | disassembly 1008:2f07-2f2e; in-bound/out-of-bound NUL tests | Exact copied-count arithmetic and unconditional extra NUL, including the double-NUL case, verified. |
| 175 | 1008:2f2f | FUN_1008_2f2f | Code2 | 30 | verified | borland_short_to_c_string | reconstructed/tdkpin_strings.c | disassembly 1008:2f2f-2f4c; short-string conversion test | Exact uint8 length, payload copy, appended NUL, and destination return verified. |
| 176 | 1008:2f4d | FUN_1008_2f4d | Code2 | 35 | verified | borland_far_strcat | reconstructed/tdkpin_strings.c | disassembly 1008:2f4d-2f6f; verified dependencies and concatenation test | Exact end lookup, append including NUL, and original destination return verified. |
| 177 | 1008:2f70 | FUN_1008_2f70 | Code2 | 75 | verified | borland_far_strnicmp | reconstructed/tdkpin_strings.c | disassembly 1008:2f70-2fba; bounded ASCII case-fold tests | Exact comparison bound, NUL participation, REPE continuation, ASCII-only fold, and signed difference verified. |
| 178 | 1008:2fbb | FUN_1008_2fbb | Code2 | 40 | verified | borland_far_strchr | reconstructed/tdkpin_strings.c | disassembly 1008:2fbb-2fe2; found/NUL tests | Exact NUL-inclusive forward search, pointer result, and null result verified. |
| 179 | 1008:2fe3 | FUN_1008_2fe3 | Code2 | 39 | verified | borland_far_strrchr | reconstructed/tdkpin_strings.c | disassembly 1008:2fe3-3009; last/NUL/missing tests | Exact NUL-inclusive reverse search, last-match pointer, and null result verified. |
| 180 | 1008:300a | FUN_1008_300a | Code2 | 34 | verified | borland_c_to_short_string | reconstructed/tdkpin_strings.c | disassembly 1008:300a-302b; ordinary and 260-byte truncation tests | Exact full 16-bit copy count with low-byte Pascal length truncation and overflow behavior verified. |
| 181 | 1008:302c | FUN_1008_302c | Code2 | 109 | verified | borland_far_strdup | reconstructed/tdkpin_strings.c | disassembly 1008:302c-3098; verified checked allocator and far copy; reconstructed/tests/test_strings.c | Exact null/empty rejection, uint16 length+1, allocation bytes, null allocation result, NUL-inclusive copy, far return, and Pascal cleanup are branch-tested. |
| 182 | 1008:3099 | FUN_1008_3099 | Code2 | 44 | verified | borland_far_strdispose | reconstructed/tdkpin_strings.c | disassembly 1008:3099-30c4; verified strlen and checked FreeMem; reconstructed/tests/test_strings.c | Exact null no-op, far strlen, uint16 length+1 including NUL, block/size release, and four-byte cleanup are represented and tested. |
| 183 | 1010:0002 | FUN_1010_0002 | Code3 | 119 | verified | multimedia_unload | reconstructed/tdkpin_multimedia.c | disassembly 1010:0002-0078; eleven exact far slots; sole FreeLibrary16 call reviewed | Exact >=32 module guard, ignored FreeLibrary result, initialized-flag clear, eleven offset/selector clears, and retained module word represented in C. |
| 184 | 1010:0079 | FUN_1010_0079 | Code3 | 41 | verified | multimedia_finalize_current_task | reconstructed/tdkpin_multimedia.c | disassembly 1010:0079-00a1; guarded dynamic-call and cleanup tests | Exact initialized/proc guards, GetCurrentTask argument, dynamic far call target/result discard, conditional unload, and no-op paths verified. |
| 185 | 1010:00a2 | FUN_1010_00a2 | Code3 | 288 | verified | multimedia_locate_library | reconstructed/tdkpin_multimedia.c | disassembly 1010:00a2-01c1; verified 1008:2643/26b0/2819; KERNEL directory/module calls; reconstructed/tests/test_multimedia.c and test_multimedia_paths.c | Exact bare, Windows, System, caller-module-directory, and PATH search order; 256/80/9/5-byte stack objects; in-place module-directory split; no synthetic null-PATH bypass; and every first-hit/all-fail stop point are represented and tested. |
| 186 | 1010:01c2 | FUN_1010_01c2 | Code3 | 493 | verified | multimedia_initialize | reconstructed/tdkpin_multimedia.c | disassembly 1010:01c2-03ae; eleven CTL3D names 1028:0470-0521; reviewed KERNEL loader imports; reconstructed/tests/test_multimedia.c | Exact already-initialized return, modern error-mode load, legacy locator/load, module >=32 gate, ordered procedure resolution with legacy slot 8 zero, task registration, GetVer >=9, Enabled gate, cleanup, argument stores, optional AutoSubclass, and all failure/success branches are represented and tested. |
| 187 | 1010:03af | FUN_1010_03af | Code3 | 49 | verified | multimedia_initialize_export | reconstructed/tdkpin_multimedia.c | disassembly 1010:03af-03df; verified 1010:01c2; exact ten-byte Pascal frame; reconstructed/tests/test_multimedia.c | Byte arguments in word slots, two uint16 arguments, verified loader call, AL result, unconditional pending-byte clear, and return are represented and tested. |
| 188 | 1010:03e0 | FUN_1010_03e0 | Code3 | 37 | verified | multimedia_application_destruct | reconstructed/tdkpin_multimedia.c | disassembly 1010:03e0-0404; verified 1010:0079, 1018:1b08, and 1020:0439 semantics; reconstructed/tests/test_multimedia.c | Exact multimedia-finalize first, application destructor hidden VMT zero, owned-allocation frame with caller VMT, object far pointer, and binary call order are represented and tested. |
| 189 | 1010:0405 | FUN_1010_0405 | Code3 | 107 | verified | multimedia_short_file_exists | reconstructed/tdkpin_multimedia_startup.c | disassembly 1010:0405-046f; verified Borland file/runtime dependencies; reconstructed/tests/test_multimedia_startup.c | Exact 255-byte ShortString copy, local FileRec assignment, one-byte generic open, destructive IOResult read, false-on-open-error, success close, close-error RuntimeError gate, and Boolean return are represented and tested. |
| 190 | 1010:0472 | FUN_1010_0472 | Code3 | 378 | verified | multimedia_initialize_runtime_unit | reconstructed/tdkpin_multimedia_startup.c | disassembly 1010:0472-05eb; code data 1010:0470-0471; reconstructed/tests/test_multimedia_startup.c | Exact 200-byte system-directory fetch, ShortString slash/name concatenation, two 256-byte full paths, V2/classic existence fallback policy, eleven far-slot clears, GetVersion low-word policy, Windows 3.0 legacy test, and all seven scalar reset stores are represented and branch-tested. |
| 191 | 1018:0002 | FUN_1018_0002 | Code4 | 67 | verified | object_windows_resolve_message_handler | reconstructed/tdkpin_object_windows.c | disassembly 1018:0002-0044; synthetic derived/parent/cache/miss tables in reconstructed/tests/test_message_dispatch.c | Exact VMT +4 table, most-derived cache, inherited linear search, four-byte handler stride, parent traversal, cache-on-parent-hit, and VMT fallback-slot behavior are represented and branch-tested. |
| 192 | 1018:0045 | FUN_1018_0045 | Code4 | 44 | verified | object_windows_bind_window | reconstructed/tdkpin_object_windows.c | disassembly 1018:0045-006e; DGROUP strings OW1 at 067a and OW2 at 067e; SetProp16 calls reviewed | Exact selector/offset split, property order, ignored BOOL16 results, and six-byte far-Pascal cleanup represented in C. |
| 193 | 1018:0071 | FUN_1018_0071 | Code4 | 38 | verified | object_windows_unbind_window | reconstructed/tdkpin_object_windows.c | disassembly 1018:0071-0096; verified OW1/OW2 data objects | Exact RemoveProp16 order, HWND/name arguments, ignored results, and far-Pascal cleanup represented in C. |
| 194 | 1018:0097 | FUN_1018_0097 | Code4 | 108 | verified | object_windows_object_from_window | reconstructed/tdkpin_object_windows.c | disassembly 1018:0097-0102; selector-backed generated-thunk, OW1/OW2 fallback, and invalid-HWND tests | Exact IsWindow guard, GWL_WNDPROC lookup, E8/self-relative/2e5b validation, embedded object pointer, property fallback order, selector/offset reconstruction, and null result verified. |
| 195 | 1018:0103 | FUN_1018_0103 | Code4 | 44 | verified | object_windows_call_message_hook | reconstructed/tdkpin_object_windows.c | disassembly 1018:0103-012e; exact seven-argument hook frame; reconstructed/tests/test_message_dispatch.c | Exact bound object, selected far handler, HWND/message/WPARAM/LPARAM word ordering, global hook target, ignored hook return, and nonmutation of the original record are represented and tested. |
| 196 | 1018:0133 | FUN_1018_0133 | Code4 | 88 | verified | object_dispatch_window_or_dialog_proc | reconstructed/tdkpin_object_windows.c | disassembly 1018:0133-018a; NE entry 210; generated thunk call frame; reconstructed/tests/test_message_dispatch.c | Exact ES:BX object binding, HWND store, 14-byte stack message record, signed-message fallback, dynamic resolution, selector-word hook gate, indirect handler call, mutable initial result 1, and returned LRESULT16 are represented and branch-tested. |
| 197 | 1018:018b | FUN_1018_018b | Code4 | 81 | verified | object_window_bootstrap_proc | reconstructed/tdkpin_object_windows.c | disassembly 1018:018b-01d9; WNDCLASS relocation 1018:12e1/12e4 -> NE entry 211; reconstructed/tests/test_object_windows.c | Exact creating-object read, object +0x12 far thunk, GWL_WNDPROC replacement, OW1/OW2 binding, unchanged HWND/message/WPARAM/LPARAM dispatch frame, and returned LRESULT are represented and transition-tested. |
| 198 | 1018:01dc | FUN_1018_01dc | Code4 | 286 | verified | object_windows_allocate_bound_thunk | reconstructed/tdkpin_object_windows.c | disassembly 1018:01dc-02f9; verified 1020:16a5; reviewed KERNEL selector APIs; reconstructed/tests/test_bound_thunks.c | Exact 256-byte pool, header/template/dispatch target, 35 seven-byte CALL thunks, displacement arithmetic, LIFO list, selector conversion/aliasing, object patch, and returned code pointer are represented and branch-tested. |
| 199 | 1018:02fa | FUN_1018_02fa | Code4 | 71 | verified | object_windows_release_bound_thunk | reconstructed/tdkpin_object_windows.c | disassembly 1018:02fa-0340; reviewed AllocCStoDSAlias/FreeSelector calls; reconstructed/tests/test_bound_thunks.c | Exact code-selector alias, embedded next-pointer write, alias release, and global LIFO-head publication are represented and tested through release/reallocation. |
| 200 | 1018:0341 | FUN_1018_0341 | Code4 | 168 | verified | object_windows_object_construct | reconstructed/tdkpin_object_lifecycle.c | disassembly 1018:0341-03e8; verified Borland/root/parent/thunk/flag helpers; reconstructed/tests/test_object_lifecycle.c | Exact hidden VMT frame, suppressed-construction return, root initialization, HWND/status/field +0x17 zeros, parent +6/+8 and circular append, no-parent next zero, child/transfer far zeros, bound thunk +0x12, flag byte reset/set-4, return, and call order are branch-tested. |
| 201 | 1018:03e9 | FUN_1018_03e9 | Code4 | 22 | verified | object_windows_dispose_child_callback | reconstructed/tdkpin_object_list.c | disassembly 1018:03e9-03fe; callback relocation at 1018:0410/0413; verified virtual dispose helper; reconstructed/tests/test_object_list.c | Exact ignored static-link word, child far argument, virtual dispose mode 1 forwarding, six-byte Pascal cleanup, and callback role in 1018:03ff child iteration are represented and tested. |
| 202 | 1018:03ff | FUN_1018_03ff | Code4 | 103 | verified | object_windows_object_destruct | reconstructed/tdkpin_object_lifecycle.c | disassembly 1018:03ff-0465; verified VMT/list/parent/thunk/root/Borland helpers; reconstructed/tests/test_object_lifecycle.c | Exact VMT +0x24 teardown, child-dispose callback, optional parent unlink, bound thunk +0x12 release, root destructor hidden VMT zero, owned-allocation frame, and binary call order are represented and parent/no-parent tested. |
| 203 | 1018:0466 | FUN_1018_0466 | Code4 | 56 | verified | object_windows_child_group_matches | reconstructed/tdkpin_object_list.c | disassembly 1018:0466-049d; signed static-link group and unaligned child field +0x17; reconstructed/tests/test_child_validation.c | Exact negative-group rejection, uint16 equality, AL boolean result with inherited AH irrelevance, six-byte cleanup, and nested predicate role are represented and tested. |
| 204 | 1018:049e | FUN_1018_049e | Code4 | 134 | verified | object_windows_try_child_activation | reconstructed/tdkpin_object_list.c | disassembly 1018:049e-0523; flag 4/VMT +0x20; USER IsIconic/GetWindowText/SetWindowText; reconstructed/tests/test_child_validation.c | Exact flag/method inversion, 82-byte local buffer, maximum 81, minimized-window get/set-text side effect, AL result inversion, and six-byte callback cleanup are branch-tested. |
| 205 | 1018:0524 | FUN_1018_0524 | Code4 | 56 | verified | object_windows_unindexed_child_matches | reconstructed/tdkpin_object_list.c | disassembly 1018:0524-055b; child group +0x17 and verified 1018:049e; reconstructed/tests/test_child_validation.c | Exact group-zero gate, nested static-link forwarding, activation predicate, AL result, and six-byte cleanup are represented and tested. |
| 206 | 1018:055c | FUN_1018_055c | Code4 | 128 | verified | object_windows_validate_child_groups | reconstructed/tdkpin_object_list.c | disassembly 1018:055c-05db; callbacks 1018:0466/0524 and helper 049e; verified circular list; reconstructed/tests/test_child_validation.c | Exact signed group counter from 1, first-match scan, activation stop condition, missing-group transition, group-zero callback search, final far-null inversion, and empty/multi-group cases are represented and branch-tested. |
| 207 | 1018:05dc | FUN_1018_05dc | Code4 | 23 | verified | object_windows_zero_word_default | reconstructed/tdkpin_window_messages.c | disassembly 1018:05dc-05f2; reconstructed/tests/test_window_messages.c | Exact ignored receiver, local uint16 zero, AX return, and four-byte Pascal cleanup are represented and tested without assigning an unproved original virtual-method name. |
| 208 | 1018:05f3 | FUN_1018_05f3 | Code4 | 26 | verified | object_windows_set_flag_1 | reconstructed/tdkpin_window_messages.c | disassembly 1018:05f3-060c; verified 1018:0641; reconstructed/tests/test_window_messages.c | Exact receiver, set=true, mask=1 arguments and four-byte cleanup are represented and tested. |
| 209 | 1018:060d | FUN_1018_060d | Code4 | 26 | verified | object_windows_set_flag_4 | reconstructed/tdkpin_window_messages.c | disassembly 1018:060d-0626; verified 1018:0641; reconstructed/tests/test_window_messages.c | Exact receiver, set=true, mask=4 arguments and four-byte cleanup are represented and tested. |
| 210 | 1018:0627 | FUN_1018_0627 | Code4 | 26 | verified | object_windows_clear_flag_4 | reconstructed/tdkpin_window_messages.c | disassembly 1018:0627-0640; verified 1018:0641; reconstructed/tests/test_window_messages.c | Exact receiver, set=false, mask=4 arguments and four-byte cleanup are represented and tested. |
| 211 | 1018:0641 | FUN_1018_0641 | Code4 | 50 | verified | object_windows_update_flags | reconstructed/tdkpin_window_messages.c | disassembly 1018:0641-0672; object byte +0x16; reconstructed/tests/test_window_messages.c | Exact uint8 OR set path, complement-and-AND clear path, preservation of unrelated bits, boolean selector, mask width, and eight-byte cleanup are represented and branch-tested. |
| 212 | 1018:0673 | FUN_1018_0673 | Code4 | 39 | verified | object_windows_has_flags | reconstructed/tdkpin_window_messages.c | disassembly 1018:0673-0699; object flag byte +0x16; reconstructed/tests/test_window_messages.c | Exact uint8 mask, AND/compare all-bits-set rule, AL false/true result, inherited AH irrelevance at all callers, and six-byte Pascal cleanup are represented and tested. |
| 213 | 1018:069a | FUN_1018_069a | Code4 | 130 | verified | object_windows_append_child | reconstructed/tdkpin_object_list.c | disassembly 1018:069a-071b; container +0x0a/+0x0c and child +0x19/+0x1b far fields; reconstructed/tests/test_object_list.c | Exact null no-op, empty self-ring, tail->next insertion, new-tail publication, unaligned far fields, and eight-byte Pascal cleanup are represented and tested across three children. |
| 214 | 1018:071c | FUN_1018_071c | Code4 | 241 | verified | object_windows_remove_child | reconstructed/tdkpin_object_list.c | disassembly 1018:071c-080c; circular predecessor search; reconstructed/tests/test_object_list.c | Exact empty/missing/singleton/middle/tail cases, far equality, predecessor relink, tail replacement/zeroing, unaligned next fields, and eight-byte cleanup are represented and branch-tested. |
| 215 | 1018:080d | FUN_1018_080d | Code4 | 77 | verified | object_windows_find_child | reconstructed/tdkpin_object_list.c | disassembly 1018:080d-0859; Borland nested callback frame abstracted by explicit bridge; reconstructed/tests/test_object_list.c | Exact head-to-tail order from tail->next, first-match far return, full-cycle miss, empty result, callback AL gate, and eight-byte cleanup are represented and tested. |
| 216 | 1018:085a | FUN_1018_085a | Code4 | 82 | verified | object_windows_for_each_child | reconstructed/tdkpin_object_list.c | disassembly 1018:085a-08ab; reconstructed/tests/test_object_list.c | Exact head-to-tail visitation, next-pointer capture before callback, tail callback last, empty no-op, far procedure bridge, and eight-byte cleanup are represented and tested. |
| 217 | 1018:08ac | FUN_1018_08ac | Code4 | 23 | verified | object_windows_minus_one_default | reconstructed/tdkpin_object_list.c | disassembly 1018:08ac-08c2; reconstructed/tests/test_object_list.c | Exact ignored receiver, local uint16 0xffff, AX return, and four-byte Pascal cleanup are represented and tested without inventing an original virtual-method name. |
| 218 | 1018:08c3 | FUN_1018_08c3 | Code4 | 45 | verified | object_windows_dispatch_event | reconstructed/tdkpin_object_windows.c | disassembly 1018:08c3-08ef; eight internal call sites; verified resolver/hook; reconstructed/tests/test_message_dispatch.c | Exact DX fallback slot, AX method id, original far event/object arguments, VMT resolution, selector-word hook gate, event-field hook copy, and indirect far handler frame are represented and tested. |
| 219 | 1018:08f0 | FUN_1018_08f0 | Code4 | 405 | verified | object_windows_wm_command | reconstructed/tdkpin_window_messages.c | disassembly 1018:08f0-0a84; message table id 0x0111; reviewed GetDlgItem/SendMessage/GetFocus/GetParent calls; reconstructed/tests/test_window_command.c | Exact dialog-control synthesis via WM_GETDLGCODE mask 0x30, focus/parent object discovery, menu id minus 0x6000, control id minus 0x8000, notification minus 0x7000, child-object/high-word gates, VMT +0x0c/+0x14 defaults, and all dispatch targets are represented and branch-tested. |
| 220 | 1018:0a85 | FUN_1018_0a85 | Code4 | 160 | verified | object_windows_route_scroll_notification | reconstructed/tdkpin_window_messages.c | disassembly 1018:0a85-0b24; four VMT relocations at +0x48; verified object lookup/dispatcher; USER GetWindowWord GWW_ID; reconstructed/tests/test_window_command.c | Exact zero-control default, child-object notification minus 0x7000/fallback +0x18, native GWW_ID minus 0x8000/fallback +0x14, id 0x1000 direct VMT +0x14, original event frame, and all branches are represented and tested. |
| 221 | 1018:0b25 | FUN_1018_0b25 | Code4 | 71 | verified | object_windows_wm_vscroll | reconstructed/tdkpin_window_messages.c | disassembly 1018:0b25-0b6b; message table id 0x0115; USER GetWindowLong GWL_STYLE; reconstructed/tests/test_window_messages.c | Exact HWND +4, int32 style high word, WS_VSCROLL high mask 0x20, VMT +0x48 versus default +0x0c selection, unchanged event frame, and eight-byte cleanup are represented and branch-tested. |
| 222 | 1018:0b6c | FUN_1018_0b6c | Code4 | 71 | verified | object_windows_wm_hscroll | reconstructed/tdkpin_window_messages.c | disassembly 1018:0b6c-0bb2; message table id 0x0114; USER GetWindowLong GWL_STYLE; reconstructed/tests/test_window_messages.c | Exact HWND +4, int32 style high word, WS_HSCROLL high mask 0x10, VMT +0x48 versus default +0x0c selection, unchanged event frame, and eight-byte cleanup are represented and branch-tested. |
| 223 | 1018:0bb3 | FUN_1018_0bb3 | Code4 | 138 | verified | object_windows_route_command_target | reconstructed/tdkpin_window_messages.c | disassembly 1018:0bb3-0c3c; object HWND +4 and parent +6/+8; verified HWND lookup/dispatcher; reconstructed/tests/test_window_command.c | Exact self-HWND suppression, explicit-parent precedence, HWND property fallback, null default VMT +0x0c, WPARAM minus 0x6000/fallback +0x10 dispatch, and all far comparisons are represented and branch-tested. |
| 224 | 1018:0c3d | FUN_1018_0c3d | Code4 | 28 | verified | object_windows_forward_default | reconstructed/tdkpin_window_messages.c | disassembly 1018:0c3d-0c58; four VMT relocations at slot +0x14; reconstructed/tests/test_window_messages.c | Exact object/event far arguments, VMT +0x0c indirect call, unchanged frame, and eight-byte Pascal cleanup are represented and tested without assigning an unproved original method name. |
| 225 | 1018:0c59 | FUN_1018_0c59 | Code4 | 110 | verified | object_windows_forward_event_to_parent | reconstructed/tdkpin_window_messages.c | disassembly 1018:0c59-0cc6; parent +6/+8; WM_COMMAND 0x0111; USER GetWindowWord GWW_ID; reconstructed/tests/test_window_command.c | Exact null-parent no-op, WM_COMMAND WPARAM versus noncommand GWW_ID selection, uint16 id minus 0x8000, fallback +0x14, parent/object/event far frame, and eight-byte cleanup are represented and branch-tested. |
| 226 | 1018:0cc7 | FUN_1018_0cc7 | Code4 | 32 | verified | object_windows_set_flag_4_if_windowed | reconstructed/tdkpin_window_messages.c | disassembly 1018:0cc7-0ce6; relocation to verified 1018:060d; reconstructed/tests/test_window_messages.c | Exact ignored leading word, far object, field +4 zero gate, fixed flag-4 setter call, and six-byte Pascal cleanup are represented and branch-tested. |
| 227 | 1018:0ce7 | FUN_1018_0ce7 | Code4 | 131 | verified | object_windows_destroy_native_window | reconstructed/tdkpin_window_messages.c | disassembly 1018:0ce7-0d69; verified child iteration/flag helpers; parent VMT +0x30; USER SendMessage/DestroyWindow; reconstructed/tests/test_window_destroy.c | Exact HWND zero gate, child callback 1018:0cc7, flag-8 MDI branch, deliberate double client getter, client HWND WM_MDIDESTROY frame, normal DestroyWindow fallback, and all call ordering are represented and branch-tested. |
| 228 | 1018:0d6a | FUN_1018_0d6a | Code4 | 32 | verified | object_windows_turbo_window_class_name | reconstructed/tdkpin_window_messages.c | disassembly 1018:0d6a-0d89; four VMT relocations at slot +0x2c; DGROUP string 068c; reconstructed/tests/test_window_messages.c | Exact ignored receiver, DGROUP offset 068c, runtime DS selector in DX, far-pointer return, and four-byte Pascal cleanup are represented and tested. |
| 229 | 1018:0d8a | FUN_1018_0d8a | Code4 | 17 | verified | object_windows_abstract_method | reconstructed/tdkpin_borland_objects.c | disassembly 1018:0d8a-0d9a; relocation to NE entry 238 at 1008:2d87; reconstructed/tests/test_borland_objects.c | Exact ObjectWindows abstract-slot forwarding to the verified Borland Runtime Error 211 trap is represented and tested. |
| 230 | 1018:0d9b | FUN_1018_0d9b | Code4 | 50 | verified | object_windows_prepare_window | reconstructed/tdkpin_object_list.c | disassembly 1018:0d9b-0dcc; verified 1018:055c; object status +2 and VMT +0x44; reconstructed/tests/test_child_validation.c | Exact validation AL gate, failure status -4, success receiver/argument 2 virtual call, four-byte cleanup, and both branches are represented and tested. |
| 231 | 1018:0dcd | FUN_1018_0dcd | Code4 | 61 | verified | object_windows_transfer_child_callback | reconstructed/tdkpin_object_list.c | disassembly 1018:0dcd-0e09; flag 0x10, VMT +0x40, outer static-link cursor/direction; reconstructed/tests/test_child_validation.c | Exact participant gate, child/direction/far-cursor frame, uint16 AX consumption, offset-only wrapped cursor advance, selector preservation, ignored static mechanics, and six-byte callback cleanup are represented and tested. |
| 232 | 1018:0e0a | FUN_1018_0e0a | Code4 | 60 | verified | object_windows_transfer_child_data | reconstructed/tdkpin_object_list.c | disassembly 1018:0e0a-0e45; object transfer pointer +0x0e/+0x10; callback relocation to 1018:0dcd; verified circular list; reconstructed/tests/test_child_validation.c | Exact null transfer-pointer gate, local far cursor, direction word, head-to-tail callback traversal with next capture, nonparticipant skip, cumulative offsets, and six-byte Pascal cleanup are represented and branch-tested. |
| 233 | 1018:0e46 | FUN_1018_0e46 | Code4 | 88 | verified | object_windows_register_class | reconstructed/tdkpin_window_messages.c | disassembly 1018:0e46-0e9d; VMT +0x2c/+0x34; exact WNDCLASS16; USER GetClassInfo/RegisterClass; reconstructed/tests/test_class_registration.c | Exact current HINSTANCE, far class name, existing-class early success, 26-byte builder frame, RegisterClass zero/nonzero normalization, and four-byte cleanup are represented and branch-tested. |
| 234 | 1018:0e9e | FUN_1018_0e9e | Code4 | 34 | verified | object_windows_show | reconstructed/tdkpin_application.c | disassembly 1018:0e9e-0ebf; USER ShowWindow ordinal 42; three internal call sites; reconstructed/tests/test_application.c | Exact object HWND +4 zero gate, HWND/INT16 command arguments, ignored BOOL16 return, and six-byte Pascal cleanup are represented and branch-tested. |
| 235 | 1018:0ec0 | FUN_1018_0ec0 | Code4 | 52 | verified | object_windows_child_blocks_close | reconstructed/tdkpin_object_list.c | disassembly 1018:0ec0-0ef3; child HWND +4 and VMT +0x3c; reconstructed/tests/test_object_list.c | Exact ignored leading word, window-handle gate, virtual CanClose inversion, AL predicate result, and six-byte Pascal cleanup are represented and zero/allow/block tested. |
| 236 | 1018:0ef4 | FUN_1018_0ef4 | Code4 | 46 | verified | object_windows_all_children_can_close | reconstructed/tdkpin_object_list.c | disassembly 1018:0ef4-0f21; relocation to predicate NE entry 151 at 1018:0ec0; verified ring search; reconstructed/tests/test_object_list.c | Exact nested predicate pointer, first-blocker far result, selector-or-offset null test, AL true only on no blocker, and four-byte cleanup are represented and branch-tested. |
| 237 | 1018:0f22 | FUN_1018_0f22 | Code4 | 22 | verified | object_windows_wm_close | reconstructed/tdkpin_window_messages.c | disassembly 1018:0f22-0f37; message table 1028:05cc id 0x0010; verified 1018:0f38; reconstructed/tests/test_window_messages.c | Exact object argument forwarding, ignored message record, close-if-allowed call, and eight-byte Pascal cleanup are represented and branch-tested through main/nonmain windows. |
| 238 | 1018:0f38 | FUN_1018_0f38 | Code4 | 85 | verified | object_windows_close_if_allowed | reconstructed/tdkpin_window_messages.c | disassembly 1018:0f38-0f8c; application MainWindow +8; VMT +0x44/+0x3c; reconstructed/tests/test_window_messages.c | Exact main-window far comparison, application-versus-window CanClose receiver/slot, AL gate, virtual dispose mode 1, and rejected-close path are represented and branch-tested. |
| 239 | 1018:0f8d | FUN_1018_0f8d | Code4 | 63 | verified | object_windows_wm_destroy | reconstructed/tdkpin_window_messages.c | disassembly 1018:0f8d-0fcb; message table id 0x0002; USER PostQuitMessage ordinal 6; reconstructed/tests/test_window_messages.c | Exact main-window comparison, HWND +4 PostQuitMessage argument, nonmain skip, default VMT +0x0c event call, and eight-byte Pascal cleanup are represented and tested. |
| 240 | 1018:0fcc | FUN_1018_0fcc | Code4 | 49 | verified | object_windows_wm_nc_destroy | reconstructed/tdkpin_window_messages.c | disassembly 1018:0fcc-0ffc; message table id 0x0082; verified OW1/OW2 unbind helper; reconstructed/tests/test_window_messages.c | Exact HWND property-unbind-before-default order, VMT +0x0c event frame, post-handler HWND zeroing, and eight-byte cleanup are represented and tested. |
| 241 | 1018:0ffd | FUN_1018_0ffd | Code4 | 87 | verified | object_windows_wm_activate | reconstructed/tdkpin_window_messages.c | disassembly 1018:0ffd-1053; message table id 0x0006; verified flag/set-active-dialog helpers; reconstructed/tests/test_window_messages.c | Exact default-handler-first order, event WPARAM +4 zero gate, flag bit 1 test, window/null active-dialog publication, and eight-byte cleanup are represented and branch-tested. |
| 242 | 1018:1054 | FUN_1018_1054 | Code4 | 86 | verified | object_windows_wm_query_end_session | reconstructed/tdkpin_window_messages.c | disassembly 1018:1054-10a9; message table id 0x0011; MainWindow/VMT +0x44 and window VMT +0x3c; reconstructed/tests/test_window_messages.c | Exact main/nonmain CanClose selection, CBW/CWD-compatible boolean result at message record +0x0a/+0x0c, and eight-byte cleanup are represented and true/false tested. |
| 243 | 1018:10aa | FUN_1018_10aa | Code4 | 63 | verified | object_windows_message_0014 | reconstructed/tdkpin_window_messages.c | disassembly 1018:10aa-10e8; message table id 0x0014; verified 1018:0f38; reconstructed/tests/test_window_messages.c | Exact numeric message id retained without speculative OWL naming; main windows use close-if-allowed, nonmain windows receive VMT +0x10 with the unchanged event far frame; both branches tested. |
| 244 | 1018:10e9 | FUN_1018_10e9 | Code4 | 29 | verified | object_windows_window_get_mdi_client_default | reconstructed/tdkpin_application.c | disassembly 1018:10e9-1105; four VMT relocations at slot +0x30; verified MDI accelerator consumer 1018:1d64; reconstructed/tests/test_application_loop.c | Exact receiver far argument, local null far pointer, DX:AX zero return, and four-byte Pascal cleanup are represented and tested; non-MDI window classes inherit this default. |
| 245 | 1018:1106 | FUN_1018_1106 | Code4 | 277 | verified | object_windows_window_construct | reconstructed/tdkpin_window_placement.c | disassembly 1018:1106-121a; verified Borland/ObjectWindows/string dependencies; USER ordinal relocations 107/447; reconstructed/tests/test_window_creation.c | Exact hidden-VMT gate, base object/parent, owned title duplicate, DefWindowProc default, root/ordinary-child/MDI-child styles, parent VMT +30 MDI detection, flag 08 set, DefMDIChildProc substitution, all extended-style/placement/menu/parameter/attachment/focus initializers, suppressed construction, and 14-byte cleanup are represented and tested. |
| 246 | 1018:121b | FUN_1018_121b | Code4 | 89 | verified | object_windows_window_destruct | reconstructed/tdkpin_window_lifecycle.c | disassembly 1018:121b-1273; verified far-string/base-object/Borland destructor dependencies; attached VMT+8 Dispose semantics; reconstructed/tests/test_window_lifecycle.c | Exact unconditionally tolerant title disposal, optional attached-object Dispose(mode 1), +3b far-pointer clear, base destruction with hidden VMT zero, derived ownership finish, six-byte cleanup, and ordering are represented and tested. |
| 247 | 1018:1274 | FUN_1018_1274 | Code4 | 129 | verified | object_windows_build_window_class | reconstructed/tdkpin_window_messages.c | disassembly 1018:1274-12f4; exact WNDCLASS16; bootstrap relocation 1018:018b; VMT +0x2c; reconstructed/tests/test_class_registration.c | Exact style 3, bootstrap far proc, zero extras, current instance, application icon/arrow cursor, background brush 6, null menu, virtual class-name far pointer, field offsets, and eight-byte cleanup are tested. |
| 248 | 1018:12f5 | FUN_1018_12f5 | Code4 | 28 | verified | object_windows_get_field_35 | reconstructed/tdkpin_window_messages.c | disassembly 1018:12f5-1310; three VMT relocations at slot +0x28; reconstructed/tests/test_window_messages.c | Exact receiver far pointer, unaligned uint16 read at +0x35, AX return, and four-byte Pascal cleanup are represented and tested without assigning an unproved source field name. |
| 249 | 1018:1311 | FUN_1018_1311 | Code4 | 62 | verified | object_windows_call_original_window_proc | reconstructed/tdkpin_window_messages.c | disassembly 1018:1311-134e; USER CallWindowProc ordinal 122; object fields +4/+0x37; reconstructed/tests/test_window_messages.c | Exact unaligned far procedure, HWND, message, WPARAM, LPARAM low/high ordering, 14-byte Pascal import frame, DX:AX result store at record +0x0a/+0x0c, and eight-byte cleanup are represented and tested. |
| 250 | 1018:134f | FUN_1018_134f | Code4 | 504 | verified | object_windows_create_native_window | reconstructed/tdkpin_window_placement.c | disassembly 1018:134f-1546; relocations 113-121; reconstructed/tests/test_window_creation.c | Exact status gate, flag clear, parent HWND, flag-02 GetDlgItem path, VMT +1c registration, creating-object publication, VMT +2c class, flag-08 CreateWindowEx versus WM_MDICREATE paths, packed 26-byte MDICREATESTRUCT16, all creation arguments, zero-handle status ffff, existing-object bypass, bind/SetWindowLong GWL_WNDPROC/original-proc store, VMT +38 callback, indeterminate AH preservation, Boolean AL, and four-byte cleanup are represented and branch-tested. |
| 251 | 1018:1547 | FUN_1018_1547 | Code4 | 63 | verified | object_windows_restore_child_focus | reconstructed/tdkpin_window_messages.c | disassembly 1018:1547-1585; saved HWND +0x3f; USER IsWindow/IsIconic/SetFocus; reconstructed/tests/test_window_messages.c | Exact zero-saved skip, validity gate, owner HWND +4 iconic gate, SetFocus argument, ignored return, and all three suppression/success paths are tested. |
| 252 | 1018:1586 | FUN_1018_1586 | Code4 | 58 | verified | object_windows_remember_child_focus | reconstructed/tdkpin_window_messages.c | disassembly 1018:1586-15bf; USER GetFocus/IsChild; object HWND +4 and unaligned saved focus +0x3f; reconstructed/tests/test_window_messages.c | Exact zero-focus skip, IsChild(parent HWND, focus) ordering, BOOL gate, unaligned HWND store, and four-byte cleanup are represented and branch-tested. |
| 253 | 1018:15c0 | FUN_1018_15c0 | Code4 | 221 | verified | object_windows_capture_normal_placement | reconstructed/tdkpin_window_placement.c | disassembly 1018:15c0-169c; exact RECT16 and object offsets; verified flag/far-virtual-call dependencies; USER IsIconic/IsZoomed/GetWindowRect/ScreenToClient; reconstructed/tests/test_window_placement.c | Exact minimized/maximized early exits, width/height capture, parent VMT+30 client lookup, flag-08 client conversion, attribute-40000000 parent conversion, screen-coordinate fallback, ignored BOOL results, unaligned saved fields 29/2b/2d/2f, and four-byte cleanup are branch-tested. |
| 254 | 1018:169d | FUN_1018_169d | Code4 | 78 | verified | object_windows_wm_activate_with_focus | reconstructed/tdkpin_window_messages.c | disassembly 1018:169d-16ea; verified WM_ACTIVATE/flag/focus helpers; VMT relocation 1028:0626; reconstructed/tests/test_window_messages.c | Exact base-activate-first order, flag-1 gate, WPARAM zero save versus nonzero restore selection, unchanged event frame, and both branches are tested. |
| 255 | 1018:16eb | FUN_1018_16eb | Code4 | 33 | verified | borland_dispatch_method_0006 | reconstructed/tdkpin_dispatch.c | disassembly 1018:16eb-170b; VMT relocation at 1028:062a; verified dynamic dispatcher; reconstructed/tests/test_dispatch.c | Exact receiver/argument far-pointer copies, receiver VMT load, dynamic id 0x0006, far target invocation, and eight-byte Pascal cleanup are represented and tested. |
| 256 | 1018:170c | FUN_1018_170c | Code4 | 85 | verified | object_windows_setup_window | reconstructed/tdkpin_window_placement.c | disassembly 1018:170c-1760; verified 1018:0d9b/0673/15c0 dependencies; USER SetFocus; reconstructed/tests/test_window_placement.c | Exact prepare, flag-08 focus, optional far object at +3b VMT+10 setup, placement-capture ordering, native HWND use, null-attached branch, and four-byte cleanup are represented and tested. |
| 257 | 1018:1761 | FUN_1018_1761 | Code4 | 39 | verified | object_windows_call_slot_38_then_default | reconstructed/tdkpin_window_messages.c | disassembly 1018:1761-1787; VMT relocation at 1028:062e; reconstructed/tests/test_window_messages.c | Exact receiver-only VMT +0x38 call followed by object/event VMT +0x0c call, ordering, far frames, and eight-byte cleanup are represented and tested. |
| 258 | 1018:1788 | FUN_1018_1788 | Code4 | 112 | verified | object_windows_wm_hscroll_attached | reconstructed/tdkpin_window_messages.c | disassembly 1018:1788-17f7; USER GetWindowLong ordinal 135; VMT +48/+20/+0c; reconstructed/tests/test_window_advanced_handlers.c | Exact HWND/GWL_STYLE -16 call, high-word WS_HSCROLL bit 10 test, style-absent window +48 forwarding, unaligned attached +3b null/default path, attached +20 position/command order, ignored API result, and eight-byte cleanup are represented and tested. |
| 259 | 1018:17f8 | FUN_1018_17f8 | Code4 | 112 | verified | object_windows_wm_vscroll_attached | reconstructed/tdkpin_window_messages.c | disassembly 1018:17f8-1867; USER GetWindowLong ordinal 135; VMT +48/+1c/+0c; reconstructed/tests/test_window_advanced_handlers.c | Exact HWND/GWL_STYLE -16 call, high-word WS_VSCROLL bit 20 test, style-absent window +48 forwarding, unaligned attached +3b null/default path, attached +1c position/command order, ignored API result, and eight-byte cleanup are represented and tested. |
| 260 | 1018:1868 | FUN_1018_1868 | Code4 | 129 | verified | object_windows_wm_paint_attached | reconstructed/tdkpin_window_messages.c | disassembly 1018:1868-18e8; USER BeginPaint/EndPaint; VMT +14/+4c/+18; reconstructed/tests/test_window_advanced_handlers.c | Exact 32-byte stack PAINTSTRUCT16, HWND Begin/End lifetime, optional attached before-paint +14(paint,dc), window paint +4c(paint,dc), optional attached after-paint +18, shared DC, ordering, ignored results, and eight-byte cleanup are represented and tested. |
| 261 | 1018:18e9 | FUN_1018_18e9 | Code4 | 119 | verified | object_windows_wm_size_attached | reconstructed/tdkpin_window_messages.c | disassembly 1018:18e9-195f; USER GetWindowRect ordinal 32; VMT +0c; reconstructed/tests/test_window_advanced_handlers.c | Exact attached notification except SIZE_MINIMIZED=1, restored/default forwarding, SIZE_RESTORED=0 rectangle query, signed right-left/bottom-top 16-bit differences, unaligned width/height stores +2d/+2f, call ordering, and eight-byte cleanup are represented and tested. |
| 262 | 1018:1960 | FUN_1018_1960 | Code4 | 38 | verified | object_windows_remember_focus_then_default | reconstructed/tdkpin_window_messages.c | disassembly 1018:1960-1985; verified 1018:1586; VMT relocation at 1028:0642; reconstructed/tests/test_window_messages.c | Exact child-focus capture before unchanged default event dispatch, receiver/event frames, call ordering, and eight-byte cleanup are represented and tested. |
| 263 | 1018:1986 | FUN_1018_1986 | Code4 | 136 | verified | object_windows_track_mouse_until_button_up | reconstructed/tdkpin_window_messages.c | disassembly 1018:1986-1a0d; USER SetCapture/PeekMessage/Translate/Dispatch/ReleaseCapture; attached VMT +24; reconstructed/tests/test_window_advanced_handlers.c | Exact attached/null and byte +22 gates, HWND capture, remove-mode nonblocking pump, retained/explicitly indeterminate MSG when empty, per-iteration attached +24(HWND), inclusive WM_LBUTTONUP iteration, release ordering, final default handler, and eight-byte cleanup are represented and tested. |
| 264 | 1018:1a0e | FUN_1018_1a0e | Code4 | 83 | verified | object_windows_wm_syscommand_focus | reconstructed/tdkpin_window_messages.c | disassembly 1018:1a0e-1a60; flag 1; SC_MINIMIZE f020/SC_RESTORE f120; VMT relocation 1028:064a; reconstructed/tests/test_window_messages.c | Exact flag gate, minimize save, restore focus, other-command no-op, mandatory default-handler-after-focus order, event frame, and all command branches are tested. |
| 265 | 1018:1a61 | FUN_1018_1a61 | Code4 | 167 | verified | object_windows_application_construct | reconstructed/tdkpin_application.c | disassembly 1018:1a61-1b07; verified Borland object/reserve helpers; KERNEL MakeProcInstance ordinal 51; reconstructed/tests/test_application.c | Exact object fields, global publication, relocated 1018:0133 procedure instance, heap reserve setup, previous-instance gate, status-word gate, VMT +0x10/+0x14 calls, and far return are represented and branch-tested. |
| 266 | 1018:1b08 | FUN_1018_1b08 | Code4 | 45 | verified | object_windows_application_destruct | reconstructed/tdkpin_application.c | disassembly 1018:1b08-1b34; KERNEL FreeProcInstance ordinal 52; verified root/destructor helpers; reconstructed/tests/test_application.c | Exact shared proc-instance release, root destructor call with hidden VMT zero, owned-allocation cleanup, and object-size recovery are represented and tested. |
| 267 | 1018:1b35 | FUN_1018_1b35 | Code4 | 22 | verified | object_windows_application_idle_default | reconstructed/tdkpin_application.c | disassembly 1018:1b35-1b4a; TApplication VMT +0x0c at 1028:0030; message-loop call at 1018:1c21; reconstructed/tests/test_application.c | Exact receiver far argument, local uint8 false value, AL return, and four-byte Pascal cleanup are represented and tested; this default causes WaitMessage when the queue is empty. |
| 268 | 1018:1b4b | FUN_1018_1b4b | Code4 | 12 | verified | object_windows_application_init_application_default | reconstructed/tdkpin_application.c | disassembly 1018:1b4b-1b56; TApplication VMT +0x10 at 1028:0034; verified constructor first-instance gate | Exact no-op virtual InitApplication method with receiver far argument and four-byte Pascal cleanup is represented; application-specific subclasses may override the slot. |
| 269 | 1018:1b57 | FUN_1018_1b57 | Code4 | 89 | verified | object_windows_application_initialize | reconstructed/tdkpin_application.c | disassembly 1018:1b57-1baf; TApplication VMT +0x18/+0x34; verified 1018:0e9e; reconstructed/tests/test_application.c | Exact setup/creator virtual order, far MainWindow +8 publication, null result status -5, startup show command, HWND gate, and nonnull ShowWindow path are represented and branch-tested. |
| 270 | 1018:1bb0 | FUN_1018_1bb0 | Code4 | 47 | verified | object_windows_application_run | reconstructed/tdkpin_application.c | disassembly 1018:1bb0-1bde; TApplication VMT +0x20/+0x40; reconstructed/tests/test_application_loop.c | Exact status +2 branch, zero-status receiver-only Run call, nonzero-status receiver-plus-uint16 Error call, virtual far slots, and four-byte Pascal cleanup are represented and branch-tested. |
| 271 | 1018:1bdf | FUN_1018_1bdf | Code4 | 29 | verified | object_windows_application_set_active_dialog | reconstructed/tdkpin_application.c | disassembly 1018:1bdf-1bfb; call sites 1018:1037/1048; message-loop consumer 1018:1cd6; reconstructed/tests/test_application.c | Exact application/dialog far arguments, offset +0x0e/+0x10 stores, and eight-byte Pascal cleanup are represented and tested; the pointer feeds modal-dialog preservation and IsDialogMessage routing. |
| 272 | 1018:1bfc | FUN_1018_1bfc | Code4 | 131 | verified | object_windows_application_message_loop | reconstructed/tdkpin_application.c | disassembly 1018:1bfc-1c7e; exact 18-byte MSG16; reviewed USER calls; reconstructed/tests/test_application_loop.c | Exact PM_REMOVE loop, empty-queue IdleAction/WaitMessage repetition, WM_QUIT-only termination, VMT +0x24 prefilter, conditional Translate/Dispatch, and quit-WPARAM status store are represented and path-tested. |
| 273 | 1018:1c7f | FUN_1018_1c7f | Code4 | 87 | verified | object_windows_application_preprocess_message | reconstructed/tdkpin_application.c | disassembly 1018:1c7f-1cd5; TApplication VMT slots +0x28/+0x30/+0x2c; reconstructed/tests/test_application_loop.c | Exact dialog-then-MDI-then-ordinary-accelerator order, first-true short circuit, receiver/MSG arguments, AL boolean interpretation, and all-false result are represented and branch-tested. |
| 274 | 1018:1cd6 | FUN_1018_1cd6 | Code4 | 76 | verified | object_windows_application_process_dialog_message | reconstructed/tdkpin_application.c | disassembly 1018:1cd6-1d21; USER IsDialogMessage ordinal 90; reconstructed/tests/test_application_loop.c | Exact active-dialog far pointer, dialog HWND +4 gate, MSG argument, NEG AX/SBB AL/NEG AL normalization with preserved AH, zero paths, and uint16 result are represented and tested. |
| 275 | 1018:1d22 | FUN_1018_1d22 | Code4 | 66 | verified | object_windows_application_process_accelerator | reconstructed/tdkpin_application.c | disassembly 1018:1d22-1d63; USER TranslateAccelerator ordinal 178; reconstructed/tests/test_application_loop.c | Exact HACCEL +0x0c gate, main-window far pointer +8, HWND +4, MSG argument, API result booleanization, and zero-table path are represented and tested. |
| 276 | 1018:1d64 | FUN_1018_1d64 | Code4 | 77 | verified | object_windows_application_process_mdi_accelerator | reconstructed/tdkpin_application.c | disassembly 1018:1d64-1db0; USER TranslateMDISysAccel ordinal 451; reconstructed/tests/test_application_loop.c | Exact main-window +8 lookup, virtual client getter +0x30, null client path, client HWND +4, MSG argument, and API result booleanization are represented and branch-tested. |
| 277 | 1018:1db1 | FUN_1018_1db1 | Code4 | 136 | verified | object_windows_application_validate_window | reconstructed/tdkpin_application.c | disassembly 1018:1db1-1e38; verified Borland reserve/dispose helpers; reconstructed/tests/test_application_windows.c | Exact null candidate, reserve-missing error -2/dispose/reprovision order, object-status error/dispose path, VMT +0x40 error arguments, successful far return, and null failure return are represented and branch-tested. |
| 278 | 1018:1e39 | FUN_1018_1e39 | Code4 | 119 | verified | object_windows_application_make_window | reconstructed/tdkpin_application.c | disassembly 1018:1e39-1eaf; TApplication VMT +0x3c/+0x40 and window VMT +0x20/+0x08; reconstructed/tests/test_application_windows.c | Exact null/validator gates, Create virtual boolean, successful original far return, status-word error report, virtual dispose mode 1, and null failure result are represented and branch-tested. |
| 279 | 1018:1eb0 | FUN_1018_1eb0 | Code4 | 100 | verified | object_windows_application_exec_dialog | reconstructed/tdkpin_application.c | disassembly 1018:1eb0-1f13; TApplication VMT +0x3c/+0x40 and dialog VMT +0x4c/+0x08; reconstructed/tests/test_application_windows.c | Exact default result 2, validator gate, signed dialog result, negative-result error report/fallback, nonnegative result, unconditional post-execution dispose, and all return paths are represented and branch-tested. |
| 280 | 1018:1f14 | FUN_1018_1f14 | Code4 | 66 | verified | object_windows_application_error | reconstructed/tdkpin_application.c | disassembly 1018:1f14-1f55; USER wvsprintf ordinal 421; DGROUP MessageBox pointer 0666; strings 0698/06b3; reconstructed/tests/test_application_windows.c | Exact 32-byte buffer, caller error-word argument list, signed %d formatting, indirect MessageBox owner/text/caption/type, IDNO 7 branch, and full uint16 runtime-exit status are represented and branch-tested. |
| 281 | 1018:1f56 | FUN_1018_1f56 | Code4 | 36 | verified | object_windows_application_can_close | reconstructed/tdkpin_application.c | disassembly 1018:1f56-1f79; TApplication MainWindow +8 and window VMT +0x3c; reconstructed/tests/test_application_loop.c | Exact far MainWindow/VMT lookup, CanClose virtual receiver call, AL boolean result, and four-byte Pascal cleanup are represented and true/false tested. |
| 282 | 1020:0002 | FUN_1020_0002 | Code5 | 91 | verified | borland_initialize_win16_runtime | reconstructed/tdkpin_borland_startup.c | disassembly 1020:0002-005c; entry call at 1000:fd8a; relocations to KERNEL WaitEvent/GetWinFlags/__AHINCR and USER InitApp; reconstructed/tests/test_borland_startup.c | Exact AX fatal gate, SI/DI/DX/ES:BX loader-register capture, WaitEvent(0), InitApp failure, low-AL CPU classification, __AHINCR equate publication, normal far return, and INT 21h/AH=4c status ff termination are represented and branch-tested. |
| 283 | 1020:005d | FUN_1020_005d | Code5 | 4 | verified | borland_runtime_error | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:005d-0060 plus shared 0065 path; reconstructed/tests/test_heap_reserve.c | Exact current far return address, ffff selector special case, normal selector:0 logical segment translation, uint16 error code, stored offset/segment, and DOS termination are represented and tested through Runtime Errors 203/204. |
| 284 | 1020:0061 | FUN_1020_0061 | Code5 | 113 | verified | borland_runtime_exit | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:0061-00d1; Runtime error template; MessageBox relocation; reconstructed/tests/test_heap_reserve.c | Exact full uint16 exit word, cleared error location, Windows-mode ExitProc gate, mutable chain, decimal/hex backward formatting, MessageBox flags 0x1010, DOS low-byte status, and no-dialog/dialog termination paths are tested. |
| 285 | 1020:00d2 | FUN_1020_00d2 | Code5 | 30 | verified | borland_run_exit_procedures | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:00d2-00ef; reconstructed/tests/test_heap_reserve.c | Exact mutable far ExitProc capture, clear-before-call, IOResult zero before every callback, callback-installed successor, two-entry order, and final null head are represented and tested. |
| 286 | 1020:00f0 | FUN_1020_00f0 | Code5 | 23 | verified | borland_prepend_unsigned | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:00f0-0106 | Exact unsigned DIV loop, uppercase digit mapping, pre-decrement destination write, and zero-value single-digit behavior represented in C. |
| 287 | 1020:012d | FUN_1020_012d | Code5 | 26 | verified | borland_get_mem | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:012d-0146; verified 1020:01ca/005d; reconstructed/tests/test_heap_reserve.c | Exact uint16 size, far allocation result, success return, failure/carry Runtime Error 203, ffff caller location, and termination are represented and branch-tested. |
| 288 | 1020:0147 | FUN_1020_0147 | Code5 | 32 | verified | borland_free_mem | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:0147-0166; verified 1020:02d7/005d; reconstructed/tests/test_heap_reserve.c | Exact far block/uint16 size, successful release, failure Runtime Error 204, normal selector logical segment tag, caller offset, and termination are represented and branch-tested. |
| 289 | 1020:0167 | FUN_1020_0167 | Code5 | 46 | verified | borland_heap_free_space | reconstructed/tdkpin_heap.c | disassembly 1020:0167-0194; local/global sum test | Exact GetFreeSpace16(0x1000), circular segment traversal, uint16 local-free additions with 32-bit carry, and total result verified. |
| 290 | 1020:0195 | runtime_1020_0195 | Code5 | 53 | verified | borland_heap_largest_block | reconstructed/tdkpin_heap.c | disassembly 1020:0195-01c9; low/high GlobalCompact and local maximum tests | Exact GlobalCompact16(0), high-word short circuit, circular local free-byte maximum, and uint32 result verified. |
| 291 | 1020:01ca | FUN_1020_01ca | Code5 | 88 | verified | borland_try_get_mem | reconstructed/tdkpin_heap.c | disassembly 1020:01ca-0221; reconstructed/tests/test_heap_core.c; reconstructed/tests/test_heap_paths.c | Zero, local-first, global-first, cross-heap fallback, and HeapError actions 0, 1, and 2 including retry are represented and branch-tested. |
| 292 | 1020:0222 | FUN_1020_0222 | Code5 | 26 | verified | borland_global_allocate | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:0222-023b; zero/nonzero GlobalAlloc16 mock tests | Exact configured flags, zero-extended uint16 size, handle-zero failure, conditional GlobalLock16, and far-pointer result verified. |
| 293 | 1020:023c | FUN_1020_023c | Code5 | 46 | verified | borland_try_local_allocation | reconstructed/tdkpin_heap.c | disassembly 1020:023c-0269; reconstructed/tests/test_heap_core.c; reconstructed/tests/test_heap_paths.c | Exact 4-byte alignment, circular scan, new-segment insertion/fallback, successful-head update, failure, and far-pointer result are represented and branch-tested across two segments. |
| 294 | 1020:026a | FUN_1020_026a | Code5 | 60 | verified | borland_create_local_heap_segment | reconstructed/tdkpin_heap.c | disassembly 1020:026a-02a5; initialized header/ring test | Exact 0x5054 header, free-list offsets/sizes, free-byte count, circular ring insertion, segment-size allocation, and selector result verified. |
| 295 | 1020:02a6 | FUN_1020_02a6 | Code5 | 49 | verified | borland_local_allocate_in_segment | reconstructed/tdkpin_heap.c | disassembly 1020:02a6-02d6; sequential allocation/split/free-byte tests | Exact first-fit traversal, unsigned size test, exact-fit unlink, remainder split, previous-link update, free-byte subtraction, offset result, and failure represented and verified. |
| 296 | 1020:02d7 | FUN_1020_02d7 | Code5 | 150 | verified | borland_try_free_mem | reconstructed/tdkpin_heap.c | disassembly 1020:02d7-0387; reconstructed/tests/test_heap_core.c; reconstructed/tests/test_heap_paths.c | Zero-size, global/local split, validation failures, ordered insertion, accounting, both merges, circular-ring unlink, single/multi-segment release, and GlobalHandle/Unlock/Free behavior are represented and branch-tested. |
| 297 | 1020:0327 | FUN_1020_0327 | Code5 | 27 | verified | borland_local_merge_next | reconstructed/tdkpin_heap.c | disassembly 1020:0327-0341; adjacent/nonadjacent behavior exercised by heap-core tests | Exact offset+size adjacency check, link bypass, and uint16 size merge represented and verified. |
| 298 | 1020:0388 | FUN_1020_0388 | Code5 | 7 | verified | borland_take_io_result | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:0388-038e | Exact sequentially consistent 16-bit atomic exchange-to-zero and returned prior value represented in C. |
| 299 | 1020:038f | FUN_1020_038f | Code5 | 14 | verified | borland_require_io_success | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:038f-039c; verified runtime-error path; reconstructed/tests/test_heap_reserve.c | Exact atomic IOResult read, zero return, nonzero unchanged code transfer, caller location, and DOS termination are branch-tested. |
| 300 | 1020:039d | FUN_1020_039d | Code5 | 40 | verified | borland_check_int32_range | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:039d-03c4; verified Runtime Error 201; reconstructed/tests/test_heap_reserve.c | Exact inclusive int32 minimum/maximum, boundary success, below/above failure, signed-high/unsigned-low-equivalent semantics, and error termination are tested. |
| 301 | 1020:03c5 | runtime_1020_03c5 | Code5 | 6 | verified | borland_runtime_error_215 | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:03c5-03ca; verified runtime-error path; reconstructed/tests/test_heap_reserve.c | Exact fixed uint16 code 215 transfer, caller-location handling, and DOS termination are represented and tested. |
| 302 | 1020:03cb | FUN_1020_03cb | Code5 | 36 | verified | borland_check_stack | reconstructed/tdkpin_stack.c | disassembly 1020:03cb-03ee; SS:000a/000e accesses; reconstructed/tests/test_stack.c; reconstructed/tests/test_system_timer.c | Exact uint16 request plus 0x400 safety margin, carry/collision/lower-limit errors, low-water update, equality boundary, returned remaining-byte AX value, and Runtime Error 202 are explicitly represented and branch-tested. |
| 303 | 1020:03ef | FUN_1020_03ef | Code5 | 74 | verified | borland_enter_object_constructor | reconstructed/tdkpin_borland_objects.c | disassembly 1020:03ef-0438; verified 1020:01ca; reconstructed/tests/test_borland_objects.c | VMT-zero no-op, existing-object ownership mutation, DGROUP VMT size, allocation success/null/failure, caller object update, VMT-field offset, and Runtime Error 203 are explicitly represented and branch-tested. |
| 304 | 1020:0439 | FUN_1020_0439 | Code5 | 51 | verified | borland_finish_object_destructor | reconstructed/tdkpin_borland_objects.c | disassembly 1020:0439-046b; verified 1020:02d7; reconstructed/tests/test_borland_objects.c | Hidden ownership marker, installed-VMT size recovery, arbitrary VMT-field offset, release success/failure, caller object clearing, and Runtime Error 204 are explicitly represented and branch-tested. |
| 305 | 1020:046c | runtime_1020_046c | Code5 | 35 | verified | borland_copy_typed_record | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:046c-048e; reconstructed/tests/test_heap_reserve.c | Exact far source/destination, embedded near descriptor pointer, DGROUP length lookup, always-forward copy, descriptor restoration, 16-bit offsets, and zero-length behavior are represented and branch-tested. |
| 306 | 1020:048f | runtime_1020_048f | Code5 | 16 | verified | borland_validate_vmt_descriptor | reconstructed/tdkpin_borland_records.c | disassembly 1020:048f-049e; Borland Runtime Error 210; reconstructed/tests/test_borland_records.c | Exact nonzero size, uint16 size+negative-size zero invariant, valid return, invalid descriptor error transfer, and VMT field widths are represented and branch-tested. |
| 307 | 1020:049f | runtime_1020_049f | Code5 | 93 | verified | borland_assign_text_c; borland_assign_text_short | reconstructed/tdkpin_borland_records.c | disassembly 1020:049f-04fb; shared overlapping entry 1020:04a0; relocation to 1020:0be9; reconstructed/tests/test_borland_records.c | Exact 128-byte TextRec header, buffer/open far pointers, 14 cleared words, 79-byte name cap, C-string and ShortString entries, embedded-NUL stop, NUL append, in-place AnsiToOem, and eight-byte cleanup are represented and tested. |
| 308 | 1020:04fc | runtime_1020_04fc | Code5 | 43 | verified | borland_initialize_file_record | reconstructed/tdkpin_borland_records.c | disassembly 1020:04fc-0526; reconstructed/tests/test_borland_records.c | Exact far record argument, fields +4/+0c/+0e, zero stores +8/+0a, three uint16 inputs, ten-byte Pascal cleanup, and untouched surrounding bytes are represented and tested. |
| 309 | 1020:0527 | FUN_1020_0527 | Code5 | 5 | verified | borland_reset_file | reconstructed/tdkpin_borland_files.c | disassembly 1020:0527-052b; mode DX=0xd7b1 tail entry; reconstructed/tests/test_borland_files.c | Exact input-mode selector and common open dispatcher behavior are represented and tested. |
| 310 | 1020:052c | FUN_1020_052c | Code5 | 5 | verified | borland_rewrite_file | reconstructed/tdkpin_borland_files.c | disassembly 1020:052c-0530; mode DX=0xd7b2 tail entry; reconstructed/tests/test_borland_files.c | Exact output-mode selector and common open dispatcher behavior are represented and tested. |
| 311 | 1020:0534 | FUN_1020_0534 | Code5 | 78 | verified | borland_open_file | reconstructed/tdkpin_borland_files.c | disassembly 1020:0534-0581; mode sentinels and FileProc +0x10; reconstructed/tests/test_borland_files.c | Exact existing input/output close, invalid-mode IOResult 0x66, desired-mode preservation, buffer position/end zeroing, open call, error rollback to closed, and all paths are branch-tested. |
| 312 | 1020:0586 | FUN_1020_0586 | Code5 | 65 | verified | borland_close_file | reconstructed/tdkpin_borland_files.c | disassembly 1020:0586-05c6; FileProc +0x14/+0x1c; reconstructed/tests/test_borland_files.c | Exact input close-only, output flush-then-close even on flush error, invalid-mode IOResult 0x67, closed sentinel store, and FileProc order are branch-tested. |
| 313 | 1020:05c7 | FUN_1020_05c7 | Code5 | 17 | verified | borland_call_file_procedure | reconstructed/tdkpin_borland_files.c | disassembly 1020:05c7-05d7; reconstructed/tests/test_borland_files.c | Exact far FileProc slot lookup, preserved ES:DI record argument, uint16 AX return, nonzero-only atomic IOResult publication, and near return are represented and tested. |
| 314 | 1020:05d8 | FUN_1020_05d8 | Code5 | 48 | verified | borland_file_read_buffer | reconstructed/tdkpin_borland_files.c | disassembly 1020:05d8-0607; DOS INT21 AH=3f; reconstructed/tests/test_borland_files.c | Exact handle +0, count +4, buffer far +0x0c, carry/error AX, bytes-read +0x0a, position +8 zero, success zero return, and error paths are tested. |
| 315 | 1020:0608 | FUN_1020_0608 | Code5 | 37 | verified | borland_file_flush_buffer | reconstructed/tdkpin_borland_files.c | disassembly 1020:0608-062c; atomic XCHG and DOS INT21 AH=40; reconstructed/tests/test_borland_files.c | Exact atomic pending-count read/zero, handle/buffer/count frame, carry error, full-write zero, short-write error 0x65, and all returns are branch-tested. |
| 316 | 1020:062d | FUN_1020_062d | Code5 | 32 | verified | borland_file_write_buffer | reconstructed/tdkpin_borland_files.c | disassembly 1020:062d-064c; atomic XCHG and DOS INT21 AH=40; reconstructed/tests/test_borland_files.c | Exact pending-count exchange, DOS write frame, carry-only error semantics, intentional short-write acceptance, and success/error returns are tested. |
| 317 | 1020:064d | FUN_1020_064d | Code5 | 25 | verified | borland_file_close_handle | reconstructed/tdkpin_borland_files.c | disassembly 1020:064d-0666; DOS INT21 AH=3e; reconstructed/tests/test_borland_files.c | Exact handle <=4 preservation, >4 DOS close, carry AX error, zero success, no-call standard-handle path, and four-byte cleanup are branch-tested. |
| 318 | 1020:0667 | FUN_1020_0667 | Code5 | 68 | verified | borland_assign_file_short | reconstructed/tdkpin_borland_records.c | disassembly 1020:0667-06aa; generic FileRec layout; KEYBOARD AnsiToOem; reconstructed/tests/test_borland_records.c | Exact handle/mode words, 22 cleared runtime words, 80-byte name field, ShortString cap 79, embedded-NUL stop, NUL append, in-place ANSI-to-OEM call, and eight-byte cleanup are represented and tested. |
| 319 | 1020:06ab | FUN_1020_06ab | Code5 | 95 | verified | borland_open_generic_file; borland_create_generic_file | reconstructed/tdkpin_borland_files.c | disassembly 1020:06ab-070f; shared Create entry 1020:06b4; DOS AH=3d/3c; reconstructed/tests/test_borland_files.c | Exact global access mode 2, create attributes zero, current-open close, invalid-mode 0x66, empty-name handles 0/1, named DOS carry error, handle/open sentinel/record-size stores, and both overlapping entries are branch-tested. |
| 320 | 1020:0710 | runtime_1020_0710 | Code5 | 28 | verified | borland_truncate_file | reconstructed/tdkpin_borland_files.c | disassembly 1020:0710-072b; verified open validator; DOS AH=40/CX=0; reconstructed/tests/test_borland_files.c | Exact invalid-mode skip, handle, zero count, indeterminate DS:DX preservation model, carry-only IOResult publication, success no-op, and four-byte cleanup are branch-tested. |
| 321 | 1020:072c | FUN_1020_072c | Code5 | 37 | verified | borland_close_generic_file | reconstructed/tdkpin_borland_files.c | disassembly 1020:072c-0750; verified open validator; DOS AH=3e; reconstructed/tests/test_borland_files.c | Exact invalid-mode no-change, handle <=4 skip, larger-handle close, carry IOResult, closed sentinel despite close error, and four-byte cleanup are branch-tested. |
| 322 | 1020:0751 | FUN_1020_0751 | Code5 | 15 | verified | borland_validate_open_file | reconstructed/tdkpin_borland_files.c | disassembly 1020:0751-075f; reconstructed/tests/test_borland_files.c | Exact mode 0xd7b3 equality/ZF contract, valid no-op, invalid IOResult 0x67, and near return are represented and tested. |
| 323 | 1020:0760 | runtime_1020_0760 | Code5 | 49 | verified | borland_file_read_record; borland_file_write_record | reconstructed/tdkpin_borland_files.c | disassembly 1020:0760-0795; shared write entry 1020:0765; DOS AH=3f/40; reconstructed/tests/test_borland_files.c | Exact open validation, record-size count, far buffer, read/write selector, carry AX, full-transfer success, short-transfer errors 0x64/0x65, and both shared entries are branch-tested. |
| 324 | 1020:0796 | runtime_1020_0796 | Code5 | 99 | verified | borland_file_block_read; borland_file_block_write | reconstructed/tdkpin_borland_files.c | disassembly 1020:0796-07fd; shared write entry 1020:079b; reconstructed/tests/test_borland_files.c | Exact requested*record-size low-word byte count, DOS read/write, carry IOResult, bytes/record-size quotient, optional far result count, no-result short-transfer errors, validation-failure zero publication, and both entries are tested. |
| 325 | 1020:07fe | FUN_1020_07fe | Code5 | 48 | verified | borland_file_seek_record | reconstructed/tdkpin_borland_files.c | disassembly 1020:07fe-082d; DOS AH=42 origin zero; reconstructed/tests/test_borland_files.c | Exact open validation, uint32 record index times uint16 record size modulo 2^32, CX:DX offset, handle, origin zero, carry-only IOResult, and eight-byte cleanup are represented and tested. |
| 326 | 1020:082e | FUN_1020_082e | Code5 | 56 | verified | borland_parameter_string | reconstructed/tdkpin_command_line.c | disassembly 1020:082e-0865; verified scanner; KERNEL GetModuleFileName; reconstructed/tests/test_command_line.c | Exact hidden far result, index-zero module filename, max 0xff, low-byte returned length, indexed token scan, full uint16 copy despite byte-length wrap, missing token, and two-byte explicit-argument cleanup are tested. |
| 327 | 1020:0866 | runtime_1020_0866 | Code5 | 11 | verified | borland_parameter_count | reconstructed/tdkpin_command_line.c | disassembly 1020:0866-0870; CX=0 underflow token-count test | Exact zero-index scan, XCHG, two's-complement negation, and returned uint16 parameter count verified. |
| 328 | 1020:0871 | FUN_1020_0871 | Code5 | 32 | verified | borland_scan_command_token | reconstructed/tdkpin_command_line.c | disassembly 1020:0871-0890; selector-backed whitespace/token/missing-index tests | Exact <=space skipping, token extent, zero-length termination, LOOP decrement/wrap, far pointer, length, and residual CX represented and verified. |
| 329 | 1020:0891 | FUN_1020_0891 | Code5 | 24 | verified | borland_far_copy | reconstructed/tdkpin_strings.c | disassembly 1020:0891-08a8; cross-selector copy test | Exact full 16-bit count, forward CLD behavior, selector-preserving offsets, and byte order verified. |
| 330 | 1020:08a9 | FUN_1020_08a9 | Code5 | 61 | verified | borland_multiply_i32 | reconstructed/tdkpin_arithmetic.c | disassembly 1020:08a9-08e5; 286 partial-product/386 IMUL equivalence tests | Exact low 32 bits of signed DX:AX*BX:CX represented without C signed-overflow UB and verified on positive, negative, and overflow cases. |
| 331 | 1020:08e6 | FUN_1020_08e6 | Code5 | 166 | verified | borland_divide_i32 | reconstructed/tdkpin_arithmetic.c | disassembly 1020:08e6-098b; reconstructed/tests/test_arithmetic.c | Exact signs/remainders, divisor-zero Runtime Error 200, INT32_MIN/-1 286 wrap result, 386 divide fault, and ordinary signed combinations are represented and branch-tested. |
| 332 | 1020:098c | runtime_1020_098c | Code5 | 35 | verified | borland_shift_right_u32 | reconstructed/tdkpin_shortstrings.c | disassembly 1020:098c-09ae; loop/386-path equivalence; masked-count tests | Exact logical DX:AX right shift with count&31 represented and verified across zero, ordinary, and wrapped counts. |
| 333 | 1020:09af | runtime_1020_09af | Code5 | 35 | verified | borland_shift_left_u32 | reconstructed/tdkpin_shortstrings.c | disassembly 1020:09af-09d1; loop/386-path equivalence; masked-count tests | Exact DX:AX left shift with count&31 represented and verified across zero, ordinary, and wrapped counts. |
| 334 | 1020:09d2 | runtime_1020_09d2 | Code5 | 26 | verified | borland_short_assign | reconstructed/tdkpin_shortstrings.c | disassembly 1020:09d2-09eb; selector-backed assignment test | Exact length-byte and payload copy across far selectors verified. |
| 335 | 1020:09ec | FUN_1020_09ec | Code5 | 36 | verified | borland_short_assign_truncated | reconstructed/tdkpin_shortstrings.c | disassembly 1020:09ec-0a0f; truncation test | Exact uint8 minimum length, stored length, and far payload copy verified. |
| 336 | 1020:0a10 | FUN_1020_0a10 | Code5 | 65 | verified | borland_short_substring | reconstructed/tdkpin_shortstrings.c | disassembly 1020:0a10-0a50; positive and negative bounds tests | Exact one-based index clamp, signed negative count clamp, available/count minimum, and payload source offset verified. |
| 337 | 1020:0a51 | FUN_1020_0a51 | Code5 | 44 | verified | borland_short_concat | reconstructed/tdkpin_shortstrings.c | disassembly 1020:0a51-0a7c; normal and 255-byte overflow tests | Exact length-byte carry, saturation to 255, complement copy count, append offset, and far transfer verified. |
| 338 | 1020:0a7d | FUN_1020_0a7d | Code5 | 70 | verified | borland_short_position | reconstructed/tdkpin_shortstrings.c | disassembly 1020:0a7d-0ac2; found/empty tests | Exact one-based first-match search, empty/oversized rejection, first-byte scan, remaining-byte compare, and zero result verified. |
| 339 | 1020:0ac3 | FUN_1020_0ac3 | Code5 | 43 | verified | borland_short_compare | reconstructed/tdkpin_shortstrings.c | disassembly 1020:0ac3-0aed; selector-backed ordering tests; sole caller 1000:aa04 immediately uses JNZ | Payload-byte comparison followed by length comparison is materialized as a signed C result; zero/nonzero exactly preserves the sole caller's equality branch. |
| 340 | 1020:0aee | runtime_1020_0aee | Code5 | 18 | verified | borland_character_to_short | reconstructed/tdkpin_shortstrings.c | disassembly 1020:0aee-0aff; character conversion test | Exact length 1 and payload-byte stores verified. |
| 341 | 1020:0b00 | FUN_1020_0b00 | Code5 | 27 | verified | borland_bytes_to_short | reconstructed/tdkpin_shortstrings.c | disassembly 1020:0b00-0b1a; byte-array conversion test | Exact low-byte length truncation and full 16-bit REP MOVSB count represented and verified. |
| 342 | 1020:0b1b | FUN_1020_0b1b | Code5 | 95 | verified | borland_short_insert | reconstructed/tdkpin_shortstrings.c | disassembly 1020:0b1b-0b79; prefix/insert/suffix and max-length tests | Exact index clamp, two temporary ShortString composition, saturation to destination maximum, append-beyond-end behavior, and in-place result verified. |
| 343 | 1020:0b7a | FUN_1020_0b7a | Code5 | 111 | verified | borland_short_delete | reconstructed/tdkpin_shortstrings.c | disassembly 1020:0b7a-0be8; valid/invalid deletion tests | Exact positive index/count gates, index clamp to 255, prefix/suffix composition, unchanged invalid input, and in-place result verified. |
| 344 | 1020:0be9 | FUN_1020_0be9 | Code5 | 141 | verified | borland_open_text_record | reconstructed/tdkpin_borland_files.c | disassembly 1020:0be9-0c75; relocations 18-25 to 1020:05d8/0608/062d/064d; reconstructed/tests/test_borland_files.c | Exact Reset/Rewrite/Append DOS open/create selection, empty-name handles 0/1, ignored IOCTL carry with device bit in DL, relocated InOut/Flush/Close callbacks, output-mode transition, and DOS-error AX return are represented and tested. |
| 345 | 1020:0c76 | FUN_1020_0c76 | Code5 | 90 | verified | borland_text_truncate_at_ctrl_z | reconstructed/tdkpin_borland_files.c | disassembly 1020:0c76-0ccf; reconstructed/tests/test_borland_files.c | Exact last-128-byte scan, 32-bit DX:AX seek arithmetic, first Ctrl-Z selection, FFFF:(index-read-count) relative EOF seek, zero-byte truncating write, DS:DX residue, and deliberately ignored DOS errors are represented and tested. |
| 346 | 1020:0cd0 | FUN_1020_0cd0 | Code5 | 4 | verified | borland_real48_subtract_registers | reconstructed/tdkpin_real48.c | disassembly 1020:0cd0-0cd3 sign-bit XOR followed by shared 0cd4 body; original-byte DOSBox arithmetic probe; reconstructed/tests/test_real48.c | Exact second-operand sign toggle and shared add/sub normalization are represented, including ignored operands beyond exponent distance 40, cancellation, guard-byte rounding, underflow zero, and overflow carry. |
| 347 | 1020:0cd4 | FUN_1020_0cd4 | Code5 | 195 | verified | borland_real48_add_registers | reconstructed/tdkpin_real48.c | disassembly 1020:0cd4-0d96; 48-bit internal significands with eight guard bits; original-byte DOSBox arithmetic probe; reconstructed/tests/test_real48.c | Exact exponent ordering/alignment, same-sign carry normalization, opposite-sign magnitude selection and renormalization, add-0x80 rounding, sign/exponent packing, zero/underflow, and overflow carry match the unmodified 16-bit routine. |
| 348 | 1020:0d97 | FUN_1020_0d97 | Code5 | 251 | verified | borland_real48_multiply_registers | reconstructed/tdkpin_real48.c | disassembly 1020:0d97-0e91 plus alignment NOP 0e92; exact 40x40 product projection; original-byte DOSBox arithmetic probe; reconstructed/tests/test_real48.c | Exact zero short-circuit, sign XOR, 80-bit product, top-bit normalization, exponent bias, eight guard bits, add-0x80 rounding, underflow zero, and overflow carry are represented without host floating point. |
| 349 | 1020:0e93 | FUN_1020_0e93 | Code5 | 7 | verified | borland_real48_zero_registers | reconstructed/tdkpin_real48.c | disassembly 1020:0e93-0e99; shared underflow targets from 0cd4 and 0d97; reconstructed/tests/test_real48.c | Exact AX=BX=DX=0 canonical Real48 zero result and near return are represented; no hidden state or memory effect exists. |
| 350 | 1020:0e9a | FUN_1020_0e9a | Code5 | 119 | verified | borland_real48_divide_registers | reconstructed/tdkpin_real48.c | disassembly 1020:0e9a-0f10; restoring quotient loop; original-byte DOSBox arithmetic probe; reconstructed/tests/test_real48.c | Exact numerator-zero result, normalized 48-bit quotient generation, exponent difference/bias, sign XOR, guard-byte rounding, underflow zero, and overflow flag are represented; denominator-zero classification is exposed for the far wrapper's Error 200 path. |
| 351 | 1020:0f11 | FUN_1020_0f11 | Code5 | 23 | verified | borland_real48_compare_registers | reconstructed/tdkpin_real48.c | disassembly 1020:0f11-0f27; verified magnitude core 0f28; reconstructed/tests/test_real48.c | Exact sign-difference carry, positive magnitude order, negative-order reversal, equality preservation, and FLAGS result materialized as signed -1/0/1 are branch-tested. |
| 352 | 1020:0f28 | FUN_1020_0f28 | Code5 | 19 | verified | borland_real48_compare_magnitude_registers | reconstructed/tdkpin_real48.c | disassembly 1020:0f28-0f3a; AL/CL exponent then DX/DI, BX/SI, AH/CH comparison order; reconstructed/tests/test_real48.c | Exact unsigned lexicographic magnitude order and exponent-zero early equality that ignores noncanonical payload bytes are represented and tested. |
| 353 | 1020:0f3b | FUN_1020_0f3b | Code5 | 60 | verified | borland_i32_to_real48_registers | reconstructed/tdkpin_real48.c | disassembly 1020:0f3b-0f76; exact exponent/significand derivation; original-byte DOSBox probe tools/probes/real48_reference.asm; reconstructed/tests/test_real48.c | Exact signed DX:AX two's-complement magnitude, normalization, exponent bias 129, sign bit, canonical zero, and all int32 endpoints are represented; eight vectors match the unmodified 16-bit routine byte-for-byte. |
| 354 | 1020:0f77 | FUN_1020_0f77 | Code5 | 110 | verified | borland_real48_to_i32_registers | reconstructed/tdkpin_real48.c | disassembly 1020:0f77-0fe4; CH truncate/round modes; original-byte DOSBox probe; reconstructed/tests/test_real48.c | Exact exponent-derived shift, implicit significand, CH-controlled first-discarded-bit addition, halves-away-from-zero behavior, signed negation, overflow candidate and carry semantics, canonical zero, and int32 endpoints match the unmodified 16-bit core. |
| 355 | 1020:0fe5 | FUN_1020_0fe5 | Code5 | 6 | verified | borland_real48_add | reconstructed/tdkpin_real48.c | disassembly 1020:0fe5-0fea; verified 0cd4; shared Error 205 target 1025; DOSBox probe and sanitizer harness | Exact far Add entry, successful RETF, and arithmetic-overflow Runtime Error 205 path are represented. |
| 356 | 1020:0feb | FUN_1020_0feb | Code5 | 6 | verified | borland_real48_subtract | reconstructed/tdkpin_real48.c | disassembly 1020:0feb-0ff0; verified 0cd0; shared Error 205 target 1025; DOSBox probe and sanitizer harness | Exact far Subtract entry, successful RETF, sign-toggle semantics, and arithmetic-overflow Runtime Error 205 path are represented. |
| 357 | 1020:0ff1 | FUN_1020_0ff1 | Code5 | 6 | verified | borland_real48_square | reconstructed/tdkpin_real48.c | disassembly 1020:0ff1-0ff6 copies AX/BX/DX to CX/SI/DI and falls through into 0ff7; verified multiply core; reconstructed/tests/test_real48.c | Exact shared-entry square operation and overflow behavior are represented rather than treating the six-byte staging prefix as an independent opaque wrapper. |
| 358 | 1020:0ff7 | FUN_1020_0ff7 | Code5 | 6 | verified | borland_real48_multiply | reconstructed/tdkpin_real48.c | disassembly 1020:0ff7-0ffc; verified 0d97; shared Error 205 target; DOSBox probe and sanitizer harness | Exact far Multiply entry, successful RETF, and arithmetic-overflow Runtime Error 205 path are represented. |
| 359 | 1020:0ffd | FUN_1020_0ffd | Code5 | 22 | verified | borland_real48_divide | reconstructed/tdkpin_real48.c | disassembly 1020:0ffd-1006 plus shared error targets 1025/102b; verified 0e9a; DOSBox probe and sanitizer harness | Exact denominator exponent-zero Runtime Error 200 path, successful far Divide, overflow Runtime Error 205 path, and unchanged operand order are represented and branch-tested. |
| 360 | 1020:1007 | FUN_1020_1007 | Code5 | 4 | verified | borland_real48_compare | reconstructed/tdkpin_real48.c | disassembly 1020:1007-100a; verified near core 0f11; reconstructed/tests/test_real48.c | Exact far comparison entry consists solely of near comparison and RETF; the readable signed result preserves every caller-visible equality/ordering condition. |
| 361 | 1020:100b | FUN_1020_100b | Code5 | 4 | verified | borland_i32_to_real48 | reconstructed/tdkpin_real48.c | disassembly 1020:100b-100e; verified near core 0f3b; original-byte DOSBox probe | Exact far integer-conversion entry and register result are represented without replacing the six-byte Real48 format by host floating point. |
| 362 | 1020:1017 | FUN_1020_1017 | Code5 | 14 | verified | borland_real48_round_to_i32 | reconstructed/tdkpin_real48.c | disassembly 1020:1017-1024; CH=1; shared Runtime Error 207 tail with entry 100f; original-byte DOSBox probe; reconstructed/tests/test_real48.c | Exact Round mode, candidate DX:AX, overflow carry, Runtime Error 207 path, halves-away-from-zero behavior, and shared-tail control flow are represented and tested. |
| 363 | 1020:1031 | FUN_1020_1031 | Code5 | 10 | verified | borland_real48_add_preserving_right | reconstructed/tdkpin_real48.c | disassembly 1020:1031-103a; verified 0cd4; reconstructed/tests/test_real48.c | Exact PUSH DI/SI/CX, Add core, POP CX/SI/DI, RET sequence is represented as by-value right operand preservation with identical result/error flags. |
| 364 | 1020:103b | runtime_1020_103b | Code5 | 10 | verified | borland_real48_subtract_preserving_right | reconstructed/tdkpin_real48.c | disassembly 1020:103b-1044; verified 0cd0; reconstructed/tests/test_real48.c | Exact PUSH DI/SI/CX, Subtract core, POP CX/SI/DI, RET sequence and preserved secondary operand are represented. |
| 365 | 1020:1045 | runtime_1020_1045 | Code5 | 10 | verified | borland_real48_multiply_preserving_right | reconstructed/tdkpin_real48.c | disassembly 1020:1045-104e; verified 0d97; reconstructed/tests/test_real48.c | Exact PUSH DI/SI/CX, Multiply core, POP CX/SI/DI, RET sequence and preserved secondary operand are represented. |
| 366 | 1020:104f | FUN_1020_104f | Code5 | 10 | verified | borland_real48_divide_preserving_right | reconstructed/tdkpin_real48.c | disassembly 1020:104f-1058; verified 0e9a; reconstructed/tests/test_real48.c | Exact PUSH DI/SI/CX, Divide core, POP CX/SI/DI, RET sequence and preserved secondary operand are represented. |
| 367 | 1020:1059 | runtime_1020_1059 | Code5 | 81 | verified | borland_real48_integer_part | reconstructed/tdkpin_real48.c | disassembly 1020:1059-10a9; exponent-derived mask construction; original-byte DOSBox Int/Frac probe; reconstructed/tests/test_real48.c | Exact Pascal Int semantics are represented: exponent >=168 unchanged, magnitude below one becomes canonical zero, otherwise only fractional significand bits are cleared toward zero while exponent and sign remain unchanged. |
| 368 | 1020:10aa | runtime_1020_10aa | Code5 | 20 | verified | borland_real48_fractional_part | reconstructed/tdkpin_real48.c | disassembly 1020:10aa-10bd; verified 1059 and 0cd0; original-byte DOSBox Int/Frac probe; reconstructed/tests/test_real48.c | Exact Pascal Frac register choreography and value-minus-Int(value) semantics are represented, including signed fractions, magnitudes below one, wholly integral values, and far return. |
| 369 | 1020:10be | FUN_1020_10be | Code5 | 95 | verified | borland_real48_sqrt | reconstructed/tdkpin_real48.c | disassembly 1020:10be-111c; verified Real48 divide/add/subtract preserving cores; original-byte DOSBox Sqrt probe; ASan/UBSan reconstructed/tests/test_real48.c | Exact zero identity, negative Runtime Error 207, signed-byte initial exponent transform with retained mantissa, Newton quotient-plus-guess/2 iteration, exponent-of-difference convergence threshold, and bit-exact outputs for 1, 2, 4, and 1.5 match the unmodified routine. |
| 370 | 1020:111d | runtime_1020_111d | Code5 | 116 | verified | borland_real48_cos | reconstructed/tdkpin_real48.c | disassembly 1020:111d-1190; shared Sin entry 1130; 2pi/pi reductions and table 1191-11ba; original-offset DOSBox Sin/Cos probe; ASan/UBSan tests | Exact pi/2-x Cos prelude, modulo-2pi via Frac, negative remainder correction, pi/pi2 quadrant folding, exponent-6c small-argument bypass, seven-term odd Sin polynomial, half-cycle sign, and far return match original bytes for zero, pi/6, pi/2, pi, 2pi, -pi/2, and one. |
| 371 | 1020:11bb | runtime_1020_11bb | Code5 | 133 | verified | borland_real48_ln | reconstructed/tdkpin_real48.c | disassembly 1020:11bb-123f; coefficient table 1240-1263; sqrt(1/2), ln(2)/2, ln(2) constants; original-offset DOSBox Ln probe; ASan/UBSan tests | Exact positive-domain Runtime Error 207, exponent displacement, normalized mantissa times sqrt(1/2), (m-1)/(m+1), six-term odd atanh series, doubling, ln(2)/2 correction, exponent*ln(2) addition, exponent-67 flush, and outputs for 0.5,1,1.5,2,10 match original bytes. |
| 372 | 1020:1264 | runtime_1020_1264 | Code5 | 115 | verified | borland_real48_exp | reconstructed/tdkpin_real48.c | disassembly 1020:1264-12d6; coefficient table 12d7-1306; verified conversion/arithmetic primitives; original-offset DOSBox Exp probe; ASan/UBSan tests | Exact absolute-value reduction by ln(2), exponent-88 overflow gate, Round(2q), q-n/2 remainder, eight-term polynomial, odd sqrt(2) factor, exponent-byte scaling/carry Error 205, negative reciprocal, and outputs for -2,-1,-0.5,0,0.5,1,2,10 match original bytes. |
| 373 | 1020:1307 | runtime_1020_1307 | Code5 | 225 | verified | borland_real48_arctan | reconstructed/tdkpin_real48.c | disassembly 1020:1307-13e7; reduction table 13e8-1417; verified 1436/143c/1455; original-offset DOSBox ArcTan probe; ASan/UBSan tests | Exact sign capture, >=1 reciprocal, direct threshold, tan(pi/12)/tan(pi/6)/1 reductions with angle additions, pi/2 reciprocal correction, final sign, zero path, and outputs for 0,0.125,0.5,1,2,-1 match original bytes. |
| 374 | 1020:1436 | runtime_1020_1436 | Code5 | 6 | verified | borland_real48_arctan_series | reconstructed/tdkpin_real48.c | disassembly 1020:1436-143b loads table 1418/count 5 then falls through 143c; exact coefficient bytes; original-offset DOSBox probe; reconstructed/tests/test_real48.c | Exact fixed ArcTan odd-series entry and fallthrough are represented; zero, 0.25, 0.5, and tan(pi/8) outputs match the original bytes exactly. |
| 375 | 1020:143c | FUN_1020_143c | Code5 | 25 | verified | borland_real48_odd_polynomial | reconstructed/tdkpin_real48.c | disassembly 1020:143c-1454; verified multiply core and 1455 evaluator; reconstructed/tests/test_real48.c | Exact x*x staging, caller-supplied CS table/count, polynomial evaluation, restored x, and tail multiply producing x*P(x*x) are represented without host floating point. |
| 376 | 1020:1455 | FUN_1020_1455 | Code5 | 79 | verified | borland_real48_polynomial_plus_one | reconstructed/tdkpin_real48.c | disassembly 1020:1455-14a3; exact local input save, CS coefficient order, multiply-before-advance loop, add/multiply sequence, final +1; DOSBox probe | Exact Horner order result=1+x*(c[n-1]+x*(...+x*c[0])), Real48 rounding after every primitive, table stride six, and count-controlled loop are represented and differentially exercised through ArcTan. |
| 377 | 1020:14a4 | FUN_1020_14a4 | Code5 | 29 | verified | borland_random_below | reconstructed/tdkpin_random.c | disassembly 1020:14a4-14c0; verified LCG; high-product tests | Exact seed advance and high 32 bits of unsigned seed*uint16 bound represented and verified, including bound zero. |
| 378 | 1020:14c1 | FUN_1020_14c1 | Code5 | 29 | verified | borland_random_exponent | reconstructed/tdkpin_random.c | disassembly 1020:14c1-14dd; leading-bit test | Exact seed advance, zero special case, 32-step MSB search, and signed int8 exponent sequence verified. |
| 379 | 1020:14de | runtime_1020_14de | Code5 | 29 | verified | borland_random_unit_interval | reconstructed/tdkpin_random.c | disassembly 1020:14de-14fa; embedded IEEE single 2^31 at 14fb and signed scale -32 at 14ff; verified 1501 dependency; reconstructed/tests/test_random.c | Exact next-seed call, signed FILD plus 2^31 unsigned correction, FSCALE by -32, x87 stack cleanup, and [0,1) result are represented; binary64 is exact for every uint32/2^32 output. |
| 380 | 1020:1501 | FUN_1020_1501 | Code5 | 54 | verified | borland_next_random | reconstructed/tdkpin_random.c | disassembly 1020:1501-1536; embedded multiplier word 1537; independent LCG tests | Word-level multiply/add sequence is exactly equivalent to modulo-2^32 seed*0x08088405+1 and verified across chained calls. |
| 381 | 1020:1539 | runtime_1020_1539 | Code5 | 13 | verified | borland_seed_random_from_dos_time | reconstructed/tdkpin_random.c | disassembly 1020:1539-1545; DOS int21 AH=2c register contract; bound DOS-time word test | Exact CX low word and DX high word assignment to RandSeed represented and verified. |
| 382 | 1020:1546 | FUN_1020_1546 | Code5 | 28 | verified | borland_format_i32_decimal_backward | reconstructed/tdkpin_numeric.c | disassembly 1020:1546-1561; negative/ordinary formatting tests | Exact signed high-word test, two's-complement magnitude, base 10 handoff, prefix minus store, start pointer, and length increment verified. |
| 383 | 1020:1562 | FUN_1020_1562 | Code5 | 32 | verified | borland_format_u32_backward | reconstructed/tdkpin_numeric.c | disassembly 1020:1562-1581; decimal/hex backward-format tests | Exact two-word unsigned division loop, uppercase digit mapping, pre-decrement far writes, zero representation, start pointer, and length verified. |
| 384 | 1020:1582 | FUN_1020_1582 | Code5 | 167 | verified | borland_parse_i32_span | reconstructed/tdkpin_numeric.c | disassembly 1020:1582-1628; signed/hex/overflow/trailing tests | Exact optional sign, decimal and $-hex grammars, lowercase fold, shift/multiply overflow gates, full-hex signed exception, cursor/remaining words, carry failure, and int32 result verified. |
| 385 | 1020:1629 | FUN_1020_1629 | Code5 | 75 | verified | borland_format_i32_short_string | reconstructed/tdkpin_numeric.c | disassembly 1020:1629-1673; verified backward formatter 1546; exact 32-byte local workspace and 12-byte Pascal frame; reconstructed/tests/test_numeric.c | Exact signed maximum/field-width clamps, formatted-length clamp, width promotion, low-byte ShortString length, left space padding, leading-byte truncation, forward copy, DS restoration semantics, and RETF 0x0c are represented and tested. |
| 386 | 1020:1674 | FUN_1020_1674 | Code5 | 49 | verified | borland_val_i32_short_string | reconstructed/tdkpin_numeric.c | disassembly 1020:1674-16a4; leading-space/success/error-position tests | Exact ShortString length, leading-space skip, parser span, trailing/carry failure, one-based error position, zero-on-error, and value return verified. |
| 387 | 1020:16a5 | FUN_1020_16a5 | Code5 | 36 | verified | borland_move_bytes | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:16a5-16c8; NE entry 282; reconstructed/tests/test_heap_reserve.c | Exact far source/destination selectors, uint16 count, offset-only direction choice, CLD/STD overlap behavior, 16-bit offset arithmetic, and zero count are represented and branch-tested. |
| 388 | 1020:16c9 | FUN_1020_16c9 | Code5 | 20 | verified | borland_fill_bytes | reconstructed/tdkpin_borland_runtime.c | disassembly 1020:16c9-16dc; selector-backed fill test | Exact destination far pointer, full 16-bit count, low-byte value, forward CLD semantics, and repeated stores verified. |
| 389 | 1020:16dd | runtime_1020_16dd | Code5 | 4 | verified | borland_find_dynamic_method | reconstructed/tdkpin_dispatch.c | disassembly 1020:16dd-16e0; verified 1020:16e6; reconstructed/tests/test_dispatch.c | Exact public lookup entry and returned DGROUP address of the selected far-procedure slot are represented and tested. |
| 390 | 1020:16e1 | FUN_1020_16e1 | Code5 | 5 | verified | borland_dispatch_dynamic_method | reconstructed/tdkpin_dispatch.c | disassembly 1020:16e1-16e5; verified 1020:16e6; call sites 1008:2d66 and 1018:16eb; reconstructed/tests/test_dispatch.c | Exact lookup followed by FF /5 far-indirect dispatch through the four-byte procedure slot is represented and tested. |
| 391 | 1020:16e6 | FUN_1020_16e6 | Code5 | 61 | verified | borland_resolve_dynamic_method_slot | reconstructed/tdkpin_dispatch.c | disassembly 1020:16e6-1722; synthetic table branch tests in reconstructed/tests/test_dispatch.c | Exact VMT +4 table pointer, mutable id/slot cache, uint16 id scan, target-slot stride, parent chain, cache update, and Runtime Error 210 miss path are represented and branch-tested. |