feat(reconstruction): complete binary-backed C recovery
Replace the partial mechanics transcriptions with a separate, readable C11 reconstruction of the complete Win16 image while preserving the original raw Ghidra export as immutable evidence. Cover all ordinary and overlapping entry points, Borland runtime behavior, Win16 imports, segmented data, callbacks, resources, indirect control flow, physics, rendering, persistence, and startup/shutdown lifecycles. Add deterministic extraction and audit tooling plus address-linked ledgers for functions, imports, DGROUP ranges and objects, relocations, resources, and callbacks. The final gate records zero raw, partial, restored, unknown, blocked, or unclassified required units. Keep the semantic-fidelity boundary explicit: the portable C is not claimed to reproduce a byte-identical Borland NE build. Add strict focused harnesses for every reconstructed C unit, exact resource round-trip checks, and a 16-bit Borland Real48 reference probe. No Rust source or Cargo metadata is changed in this phase. Test Plan: - `bash original/tools/test_reconstructed_c.sh` -- passed - `bash original/tools/probe_real48_reference.sh` -- passed bit-for-bit - `python3 original/tools/audit_reconstruction.py --require-complete` -- passed - `git diff --cached --check` -- passed - `git diff HEAD -- '*.rs' Cargo.toml Cargo.lock` -- empty
This commit is contained in:
@@ -0,0 +1,392 @@
|
||||
address raw_name segment body_bytes status reconstructed_name module evidence notes
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
1000:531e FUN_1000_531e Code1 114 verified tdkpin_draw_loading_stage reconstructed/tdkpin_game_assets.c disassembly 1000:531e-538f; exact caller-BP/SS offsets; GDI compatible-DC/select/BitBlt/DeleteObject; reconstructed/tests/test_game_assets.c Exact BP-0c/-04/-02/+0e shared frame contract, byte-stage zero extension, 16-bit (stage-1)*7 wrap, fixed destination 13/y and 328x202 SRCCOPY, select/restore, intentional DeleteObject-on-HDC, four-byte cleanup, and scratch writes are branch-tested.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
1000:c79c FUN_1000_c79c Code1 8981 verified tdkpin_simulate_ball_and_dispatch_collision reconstructed/tdkpin_physics.c disassembly 1000:c79c-eab0 and rz-ghidra stack-offset view; packed 83-byte records and exact 52-byte candidate layout; all integer/Real48/gameplay/GDI dependencies verified; reconstructed/tests/test_physics.c Exact RETF-2 caller-frame ABI, simulation-call counter, snapshotted ball count and substep word, multiball load/save, gravity and two ordered speed clamps, previous/predicted coordinates, board-loss/layer gates, 175-record broadphase, types 1 circle, 2 segment, 3 capture/pocket, and 4 stateful trigger, subtype normal reversal, signed cross/end-point tests, contact-state sentinels, claw/target-set/sprite/score special paths, trigger 0x4000 lifecycle and random bounce, packed nearest-candidate copies, event/score dispatch, Real48 normal/tangent/spin/response/kick transform including deliberately zeroed intermediate, ball-to-ball impulse transfer, record 25/2 terminal paths, ordered velocity/position publication, dynamic-record update, swept rendering, 32-bit wrap, and Borland divide/error behavior are represented. Free integration, exact 3-4-5 clamp, circle/segment responses, four trigger/capture modes, distinct response/event/score paths, out-of-bounds, and zero-substep multiball are tested.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
1008:149d FUN_1008_149d Code2 293 verified tdkpin_load_bitmap_resource reconstructed/tdkpin_palette.c disassembly 1008:149d-15c1; exact BITMAPINFOHEADER16/CreateDIBitmap frame; verified 13a8 and resource dependencies; reconstructed/tests/test_bitmap_loader.c Exact DAT Find/Load/Lock, 40-byte stack-header copy, resource bits +40, wrapped color-table allocation size, leaked BITMAPINFO ownership, full BGR0 fill, CreateDC("Display"), palette select/unrealize/realize, CBM_INIT CreateDIBitmap arguments, palette restore, DeleteDC, Unlock/FreeResource, returned HBITMAP, and RETF 6 are represented and tested.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
|
Can't render this file because it contains an unexpected character in line 96 and column 423.
|
Reference in New Issue
Block a user