Les détails :
Il faut d'abord s'avoir que sur les 89 HW1&2 et 92+ HW2, le CPU n'est pas alimenté par la pile bouton. Un changement de piles lorsque la calculatrice est éteinte réinitialise toujours le CPU ! Le boot est exécuté, puis AMS est appelé et des ports dont ceux gérant la limite matérielle ($700000-$700007) sont réinitialisés. Puis AMS détecte que la calculatrice était éteinte et elle termine son exécution à la fin de la routine trap #4.
Pourtant, trap #4 semble restaurer les ports $700000-$700007 à la fin, mais l'opération échoue parce que trap #B considère qu'elle n'a pas été correctement appelée et ne touche pas aux ports $700000-$700007.
En attendant que TI corrige ça, j'ai deux solutions :
- HW2Patch modifie d'autres zones de la flash, mais ça me fait ultra-chier...
- je laisse le boulot aux kernels (PreOS en fait) qui doivent seulement détourner trap #4 :
trap4: move.l a0,-(a7) move usp,a0 move.l a0,-(a7) sub a0,a0 move a0,usp bsr.s t4call move (a7)+,a0 move a0,usp move (a7)+,a0 rte t4call: move sr,-(a7) dc.w $4EF9 oldtrap4 dc.l 0