Je suis retombé sur un comportement bizarre, que je crois avoir déjà rencrontré il y a quelques années lorsque je travaillé sur du rescaling pour la version TI-89 de Sim.
Lorsqu'un handler d'auto-int 5 est "trop long" (peut-être lorsque qu'il met plus de temps à s'exécuter que l'inverse de la fréquence de l'AI5), la calc semble geler complètement, au milieu du code de cet handler. Bizarrement, lorsque l'auto-int 3 se déclenche pendant ce gèle (je fais les tests sur une Titanium, il suffit de provoquer une activité USB), tout continue normalement, et l'handler de l'auto-int5 reprend son execution.
Forcer SR à $2700 pour éviter de la réentrance dans l'handler (même si c'est inutile, le masque par défaut fixé par le 68k fait déjà ça) ne change rien. Et comment se fait-il que l'auto-int 3 débloque quelque chose, alors qu'il est lui aussi théoriquement masqué...
Ca m'embête bien tout ça. Des suggestions ou des idées de tests à faire on-calc pour tenter de comprendre ?
Marrant en effet.
Je suppose que ça a déjà été testé, mais est-ce qu'on est sûr que le masque du SR permet vraiment d'inhiber certaines interruptions lorsqu'on se trouve dans un état normal (c'est-à-dire non gelé comme dans ton expérience) ?
Je ne connais pas précisément le fonctionnement matériel du 68000, donc je ne sais pas s'il est possible de se débrouiller pour que matériellement cette histoire de masque/priorité saute.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Le 68k User's Manual indique simplement que "the processor priority level is set to the level of the interrupt being acknowledged" lorsqu'une interruption se déclenche. Je suppose que le système de masque continue de fonctionner comme normalement (mais je n'ai pas testé).
Et je viens de vérifier que l'auto-int 3 est bien une interruption masquable comme les autres en temps normal sur Titanium.
PpHd Le 11/09/2005 à 20:35 L'int 6 ne permet pas de debloquer ?
Non, il a pas l'air de changer quelque chose.
PpHd Le 12/09/2005 à 09:23 D'un autre cote, il fut un temps ou l'int 3 et l'int 5 partageaient du materiel en commun (Int 3 etait un timer).
Peut etre est-ce un reliquat ?
Juste pour me rappeler, c'est pas l'AI3 qui est chargée de se déclencher chaque seconde sur TI89 ? Comment fonctionne l'horloge sur TITI ?

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Sur HW2, AMS > 2.06 fonctionne comme ça.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
L'horloge et le système de transfert USB partage la même AI ?

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Je ne sais pas comment ça fonctionne sur HW3, ni où trouver de la doc dessus, mais il semble que l'USB utilise l'AI3.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
PpHd Le 13/09/2005 à 15:19 Sur titanium, l'horloge ne fonctionne plus avec l'ai3, mais avec un rtc hardware.
heu ça a un rapport avec le bug dont tu parles sur ton blog, ça?
me prends pas pour un *bip* je découvre rien!
relis 3-4 je crois que c'était pas 100% clair pour eux.
je croyais que c'etait l'inverse, que les AUTO_INT plus grand avaient plus de priorité que les plus faibles