Windows 3.x High-Speed Communications Library and Tools.
Find a file
Scott Duensing 5dd464eb18 Fix hang on second COM port open: CLI deadlock, MOVEABLE buffers, stale UART
setque (called by USER.EXE after every inicom) was running GlobalAlloc and
GlobalFree with interrupts disabled.  On the second open the global heap
could need compaction or DPMI selector work, deadlocking under CLI.
Restructured to allocate new buffers first, swap pointers under CLI, then
free old buffers after STI.

Ring buffers changed from GMEM_MOVEABLE to GMEM_FIXED so addresses are
inherently stable at interrupt time.  Added rxBufH/txBufH handle fields
to PortStateT, eliminating the fragile GlobalHandle(SELECTOROF()) recovery
in freeBuffers.

trmcom now resets FIFOs and drains all pending UART conditions (LSR, MSR,
RBR, IIR) before unhooking the ISR, leaving hardware clean for reopen.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 20:06:04 -06:00
delphi Remove render throttle and add smart blink dirty tracking 2026-02-28 18:55:28 -06:00
drivers Initial commit. 2026-02-23 20:53:02 -06:00
drv Fix hang on second COM port open: CLI deadlock, MOVEABLE buffers, stale UART 2026-02-28 20:06:04 -06:00
vbx VBX does not work. Moving to Delphi. 2026-02-25 22:06:08 -06:00
.gitattributes Initial commit. 2026-02-23 20:53:02 -06:00
.gitignore VBX does not work. Moving to Delphi. 2026-02-25 22:06:08 -06:00