Vous avez tout à fait raison. Bien vu !!
La confusion provient du comportement de HALT, mais qui doit être traité dans `cpu_cycle()` comme indiqué plus haut dans la donnée « Il reste dans cet état jusqu'à ce qu'une interruption dont le bit vaut 1 dans IE soit levée, même si IME est faux. » (c'est juste là que IME doit être ignoré ; il n'y a pas lieu de forcer sa remise à 1 (sauf instructions EI et RETI)).
Je viens de corriger la donnée.