Ben oui : ce qui est bien sur nos TIs, c'est que l'accès à une adresse inexistante ne provoque pas d'erreur... du coup on choisit un port existant sur HW1 mais pas sur HW2, qui contient à coup sûr une valeur différente de zéro

On peut par exemple choisir celui dans lequel est inscrite l'adresse de la mémoire vidéo.
S'il est à zéro cela signifie qu'il a été modifié par un programme bogué, donc que l'utilisateur ne voit plus rien sur son écran (enfin il voit la table des vecteurs d'interruption et le sommet de la pile

Voici donc la fonction de détection hardware la plus rapide et la plus petite qui n'ait jamais existée :
GX_DetectHardware: ; char GX_DetectHardware(void) // renvoie 1 si la calculatrice est une HW1, ou 2 si c'est une HW2 tst.w $600010 sne d0 addq.b #2,d0 rts
Si vous n'êtes pas convaincu, testez : http://alineasofts.free.fr/extern/hwtest3instructions.zip
