Windows 3.x High-Speed Communications Library and Tools.
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> |
||
|---|---|---|
| delphi | ||
| drivers | ||
| drv | ||
| vbx | ||
| .gitattributes | ||
| .gitignore | ||