Nan mais j'ai vérifié, c'est *probablement* à l'utilisateur de les sauver, parce que les jeux ont du code comme ça:
0040 jp $0469 ; VBLANK INT handler
0469 push af
[...]
0572 pop af
0573 reti ; retour d'interruption (enable interrupts + return)
En fait quand une interruption se produit, seul le PC est sauvé sur la pile, et il prend la valeur du vecteur correspondant (40, 48, ... suivant l'interruption), les interruptions sont désactivées, le halt éventuellement levé et là quelques cycles sont consommés (je cherche justement à savoir combien

).
Peut être qu'un code C te sera plus parlant, même si j'en doute
// Interruptions en attente?
if ((IME || halted) && (REG(IF) & REG(IE))) {
unsigned i;
// Teste les bits actifs
for (i = 0; i < INT_LAST; i++) {
if (REG(IF) & REG(IE) & BIT(i)) {
// Désactive les interruptions pour éviter les IRQ multiples,
// désactive le flag dans IF et saute à l'interruption
REG(IF) &= ~BIT(i);
IME = 0;
call(0x40 + 8 * i);
halted = 0;
return 4; // cycles consommés
}
}
}