C'est vrai qu'une solution moderne est préférable. Mais avant d'abandonner l'ancienne méthode, il faut toujours essayer de comprendre exactement pourquoi elle ne marchait pas. Puisque l'accès à tes interruptions a réussi, le reste ne devrait normalement pas poser de gros problèmes.
Comment getch() interfère-t-elle avec ta fontion dans l'interruption 09h? Normalement, une fonction d'interruption doit appeler la fonction de l'ancienne pour ne pas perturber le fonctionnement du système. Voici un petit exemple (non testé):
void interrupt (* ancien09h)();
void interrupt (mon09h)()
{
//....ici envoi des codes à ton automate
ancien09h();//Appel de la fonction originale
}
void main()
{
ancien09h=getvect(0x09);
setvect(0x09, &mon09h);
while(getch() != 27);
setvect(0x09, ancien09h);
return; //ou exit(0)
}
Ainsi, ça ne devrait pas interférer. Tu l'as déja essayé?