WinComm/drv
Scott Duensing c378abc9e5 Inline CSI parsing, ASM nibble table, cursor dedup, reccom block copy
Four performance optimizations targeting the hottest paths:

- Parse CSI params (P1/P2) as integers during scan-ahead loop,
  eliminating ParseParamBuf call from ExecuteCSI (~200 cycles/seq)
- Replace 16-iteration Pascal nibble table rebuild (64 branch+store)
  with 32 straight-line MOV word using precomputed BGBG/BGFG/FGBG/FGFG
- Integrate cursor FG/BG swap into main RenderRow column loop,
  removing duplicate nibble rebuild + ASM glyph expansion overlay pass
- Replace byte-at-a-time reccom loop with _fmemcpy block copy split
  at ring buffer wrap point, reducing far pointer overhead from O(n) to O(1)

Also includes previously uncommitted space fast-path in RenderRow and
inlined escape sequence handling in ParseDataBuf.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 18:20:51 -06:00
..
commdrv.c Inline CSI parsing, ASM nibble table, cursor dedup, reccom block copy 2026-03-02 18:20:51 -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