pen2>oui, évidemment, mais je n'utilise lâârgement pas ça dans mon code, j'appelle proprement des traps, et c'est tout.
Donc, y'a qc qui désactive le mode superviseur entre l'instruction TRAP et le code qui sauve USP.
Vu que le code c'est:
trap_0:
movem.l %d1-%d7/%a0-%a6, -(%sp) /*sauvegarder tous les registres */
move.l %usp, %a0 /*on a seulement le droit de faire usp<->an*/
move.l %a0, -(%sp) /*sauvegarder la pile utilisateur sur la pile systeme*/
...
move.l (%sp)+, %a0 /*restaurer la pile utilisateur*/
move.l %a0, %usp /*on a seulement le droit de faire usp<->an*/
movem.l (%sp)+, %d1-%d7/%a0-%a6 /*restaurer tous les registres*/
rte /*fin du trap zero*/
je vois pas ce qui désactive le mode superviseur en 2 instructions

je pense que mon bug est ailleurs.