Use the binary tangent velocity -(vx*normal_y + vy*normal_x)/length, then combine it with retained spin and the Real48 response coefficient. This single formula matches live outer/inner shooter walls, object 155, bumper 51, and the horizontal special-drain response; update C evidence and keep autoplay coverage on a target-reaching seed. Test Plan: - bash original/tools/test_reconstructed_c.sh - python3 original/tools/audit_reconstruction.py --require-complete - cargo test --all-targets - cargo clippy --all-targets --all-features -- -D warnings - original Wine traces: /tmp/original-outer-wall.csv /tmp/original-inner-wall.csv /tmp/original-circle155-after.csv /tmp/original-special-respawn.csv - git diff --check
162 KiB
162 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 width wrap, fixed destination (202,328), 13-pixel height, DAT994 source origin, 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 improving-distance copies with fixed first-slot response, event/score dispatch, Real48 normal/tangent/spin/response/kick transform including swapped-component tangent velocity `-(vx*ny+vy*nx)/length`, retained-spin contribution, and deliberately zeroed intermediate, capture-age-gated ball-to-ball transfer, record 25/2 terminal/special-respawn continuation 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, live line/circle tangent transitions, four trigger/capture modes, two-candidate first-slot behavior, 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. |