Map the software boundary
- Identify serial, USB, parallel/legacy interface or vendor-specific bus and driver.
- Inventory ActiveX controls, DLLs, SDKs, API declarations and registry configuration.
- Record polling intervals, events, callbacks, timeouts and thread assumptions.
- Capture known-good device transactions and operator sequences where safe.
- Separate transport errors from application protocol and machine-state errors.
Legacy API declarations may use types that are correct for 32-bit VB6 but unsafe when copied into a different host. Vendor DLL calling convention and buffer ownership must be documented before wrapping or replacing them.
Control replacement risk
| New PC | Verify slots, ports, drivers, dongles, COM identity and timing. |
|---|---|
| New device | Compare command/state behavior and safety interlocks, not just nominal interface. |
| USB adapter | Measure buffering, latency and control-line behavior. |
| Modern wrapper | Preserve retries, cancellation and error semantics explicitly. |
Barcode-specific focus and validation belong in VB6 scanner integration; COM-port code belongs in VB6 serial communication. Use control-PC replacement for the whole system and the VB6 pillar.