PpHd (./38) :
Kevin Kofler (./31) :
Ce qu'on fait dans gray.s (et que Julien Muchembled a fait dans son Universal OS), c'est qu'on teste si 0x70001D a flippé et si ce n'est pas le cas, on quitte avec un rte et attend tout simplement la prochaine AI1. (C'est ça la méthode "top secret" de Julien Muchembled qui a déclenché la fameuse flamewar à l'époque.)
Pour en avoir implanté, C'est "légèrement" plus compliqué.
Je veux bien que tu m'expliques ce qu'il y a de compliqué dans:
move.b 0x70001D,%d1 | get flipping bit
eor.b %d0,%d1
bpl __gray_to_oldint | not flipped yet -> proceed to previous
| installed int handler

Je connais ce code quasiment par cœur, j'ai travaillé dessus pour les niveaux de gris à 3 plans par exemple, et j'ai aussi travaillé sur ton implémentation pour TitaniK et Iceberg.