#include #ifdef IDLE_INTERRUPT #define TYq_1NzsvV2GD 100 #endif void FASTCALL _evnt_keyloop(e2Bgdy) EVENTPTR e2Bgdy; { int key; int chIeuoFTblO3P3KK; int rj; #if IDLE_INTERRUPT int count = 0; VIDIO rlDl; #endif if (_keyloopfp) { if (_evnt_get(e2Bgdy)) { #ifndef NO_DEBUG_CODE if (_evq_oflow) VV_ERR = EVENT_OFLOW; #endif if (e2Bgdy->type == AC_KEYPRESS) _ki_last = (int) e2Bgdy->wmsg; } else { e2Bgdy->type = AC_KEYPRESS; _ki_last = (int) ki(); e2Bgdy->wmsg = _ki_last; } return; } e2Bgdy->type = AC_NULLEVENT; do { chIeuoFTblO3P3KK = FALSE; if (_keyloopfp && (rj = (*_keyloopfp)(KL_INIT))) { chIeuoFTblO3P3KK = TRUE; e2Bgdy->type = AC_KEYPRESS; e2Bgdy->wmsg = (USHORT) rj; e2Bgdy->when = 0L; } while (e2Bgdy->type == AC_NULLEVENT && !evnt_get(e2Bgdy)) { #if IDLE_INTERRUPT if (++count == TYq_1NzsvV2GD) { count = 0; _zVlurKb(0x28, &rlDl, &rlDl); } #endif if (_keyloopfp && (rj = (*_keyloopfp)(KL_WAIT))) { chIeuoFTblO3P3KK = TRUE; e2Bgdy->type = AC_KEYPRESS; e2Bgdy->wmsg = (USHORT) rj; e2Bgdy->when = 0L; } } if (_keyloopfp && (rj = (*_keyloopfp)(KL_DONE))) { chIeuoFTblO3P3KK = TRUE; e2Bgdy->type = AC_KEYPRESS; e2Bgdy->wmsg = (USHORT) rj; e2Bgdy->when = 0L; } if (chIeuoFTblO3P3KK && _keyfilterfp) { if (rj = (*_keyfilterfp)(e2Bgdy->wmsg)) e2Bgdy->wmsg = (USHORT) rj; else e2Bgdy->type = AC_NULLEVENT; } } while (e2Bgdy->type == AC_NULLEVENT); return; }