Resolve GPFs in both USER.EXE and COMMTASK.DLL by correcting RETF sizes for SETCOM and GETDCB, confirmed by disassembling CyberCom.DRV. Add stock-compatible ComDEB structure so third-party code (ProComm COMMTASK.DLL) can safely access internal fields at known offsets per Microsoft KB Q101417. COMM.DRV changes: - SETCOM (ord 2): RETF 4, takes DCB FAR * only (not commId + DCB*) - GETDCB (ord 15): RETF 2, takes commId, returns DCB FAR * in DX:AX - Add 40-byte ComDebT matching stock COMM.DRV internal layout (evtWord at +0, MSR shadow at +35, queue counts at +8/+18) - cevt returns pointer to ComDebT for third-party compatibility - Sync ComDEB fields in ISR dispatch, reccom, sndcom, cflush, setque - Move WEP to ordinal 16, add ordinal 101 stub (match stock/CyberCom) - Default DBG_ENABLED to 0 (set to 1 to re-enable debug logging) VBX control fixes: - Fix SETBREAK/CLRBREAK constants (use numeric 8/9, not undefined macros) - Fix serialEnableNotify return type (BOOL, not int16_t) - Fix mscomm.h to work with RC compiler (#ifndef RC_INVOKED) - Fix vbapi.h USHORT typedef and MODEL.flWndStyle type - Add vbapi.lib dependency to makefile Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
29 lines
904 B
Modula-2
29 lines
904 B
Modula-2
LIBRARY COMM
|
|
DESCRIPTION 'High-Speed Serial Communications Driver'
|
|
EXETYPE WINDOWS
|
|
CODE PRELOAD FIXED
|
|
DATA PRELOAD FIXED SINGLE
|
|
HEAPSIZE 1024
|
|
EXPORTS
|
|
INICOM @1
|
|
SETCOM @2
|
|
SETQUE @3
|
|
RECCOM @4
|
|
SNDCOM @5
|
|
CTX @6
|
|
TRMCOM @7
|
|
STACOM @8
|
|
CEXTFCN @9
|
|
CFLUSH @10
|
|
CEVT @11
|
|
CEVTGET @12
|
|
CSETBRK @13
|
|
CCLRBRK @14
|
|
GETDCB @15
|
|
WEP @16 RESIDENTNAME
|
|
SUSPENDOPENCOMMPORTS @17
|
|
REACTIVATEOPENCOMMPORTS @18
|
|
COMMWRITESTRING @19
|
|
READCOMMSTRING @20
|
|
ENABLENOTIFICATION @100
|
|
COMMNOTIFYWNDPROC @101
|