В программе требуется посмотреть есть ли в буфере нажатые клавиши. Если есть — обработать их, если нет — продолжать работу. getchar не подходит, так как останавливает программу на время ожидания ввода.
Всё, что нашёл в манах, относится к Allegro и Curses. Рекомендации в сети относятся к досу:
mov ah,1
int 16h ; проверяет нажимали ли клавишу
jne @@key_pressed
@@return:
ret ; Если нет — возврат
@@key_pressed:
xor ax,ax
int 16h ; если нажали — считать
cmp ah,1
jne @@return ; Если не ESC — тоже возврат
jmp EXIT ; если ESC — выйти из программы
Как это осуществить пользуясь только libc и системными вызовами?