Il est horrible, ce code:
1. utilisation de
kbhit() et
ngetchx() dans un gestionnaire d'interruption,
2. utilisation de
exit() dans un gestionnaire d'interruption!!!

Normalement, ça devrait planter la calculatrice...
De plus, ta boucle vide est normalement complètement supprimée par GCC, et une grande partie de ton temps est passée dans
kbhit(), qui implique pas mal de matériel autre que le CPU (silent link en particulier).