一般的にポーリングを避けるためには割り込みを使う。

割り込みを有効化した後HLTでCPU自体を止めて、
割り込み処理の中で割り込み無効化してHLT抜ける、とかいうのも定型文だっけ?

Windowsでその辺叩くのはDDKの領分だろうけど、普通のアプリケーションから
シリアル・パラレルポートを汎用IOとして使う場合はポーリングせざるを得ない…かも