WinComm/drv
Scott Duensing ec0ec8f074 Replace event-driven WM_COMMNOTIFY architecture with polling main loop
The ISR still fills the ring buffer (mandatory for 115200 baud), but the
app now polls ReadComm directly via a PeekMessage loop instead of waiting
for WM_COMMNOTIFY.  Blink uses GetTickCount instead of WM_TIMER.  This
eliminates all Windows message overhead from the data path while keeping
the message loop alive for keyboard, paint, and scrollbar.

Removed from KPCOMM.PAS: NotifyWndProc, hidden notification window,
RegisterClass/CreateWindow, EnableCommNotification, SetCommEventMask,
DoCommEvent, Process*Notify methods, OnComm/CommEvent/RThreshold/
SThreshold properties, modem shadow state (CTS/DSR/CD).

Removed from KPANSI.PAS: WM_TIMER handler, SetTimer/KillTimer, replaced
with public TickBlink method using GetTickCount at 500ms intervals.

Removed from drv/isr.c: checkNotify function and its call from
isrDispatch.  Removed from drv/commdrv.c: pfnPostMessage, all
rxNotifySent/txNotifySent edge-trigger bookkeeping, gutted
enableNotification to a no-op API-compat stub.  Removed from
drv/commdrv.h: rxNotifySent/txNotifySent fields (shifts struct layout),
PostMessageProcT typedef, pfnPostMessage extern.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 19:01:40 -06:00
..
commdrv.c Replace event-driven WM_COMMNOTIFY architecture with polling main loop 2026-03-01 19:01:40 -06:00
commdrv.def Rename output from COMM.DRV to KPCOMM.DRV to avoid clashing with stock driver 2026-02-24 20:07:45 -06:00
commdrv.h Replace event-driven WM_COMMNOTIFY architecture with polling main loop 2026-03-01 19:01:40 -06:00
isr.c Replace event-driven WM_COMMNOTIFY architecture with polling main loop 2026-03-01 19:01:40 -06:00
makefile Rename output from COMM.DRV to KPCOMM.DRV to avoid clashing with stock driver 2026-02-24 20:07:45 -06:00