Je veux que si c'est une fonction ca appelle la fonction, et sinon ca retourne la valeur
Sinon ca prend de la place dans le code utilisateur.
Ben, cette interface-là pour les RAM_CALLs peut elle aussi prendre plus de place dans le code utilisateur: j'ai donné un exemple en
./14 
Pour sauter entre trois morceaux de code différent, une table de sauts est plus lente qu'un double test. Mais sinon, je pense aussi que l'utilisation d'un tableau indiquant, pour chaque RAM_CALL, si c'est un type adresse, un type donnée ou un type routine, est inévitable, pour des raisons d'efficacité:
; table qui définit le type du RAM_CALL
ram_call_type_table:
dc.b -1, 0, 0, 1, -1, 1, ...
move.b d(pc,dn.w),dn
beq.s type0
blt.s type_minus1
; ici on traite le type1
...
rte
type0:
...
rte
type_minus1:
...
rte
Pour les RAM_CALLs de type adresse et données, on doit pouvoir s'en sortir en ne détruisant que d0 et a0. Spécifier que les RAM_CALLs en F-Line, même pour les types adresse et données, paraît excessif.