Avant d'attaquer les ramcalls en f-line ?
Bon, PpHd, on s'y prend comment ? Comme certains ramcalls sont des pseudo-constantes (KEY_*), d'autres des pointeurs vers des variables de 1 octet (CALCULATOR), d'autres des routines (kernel::*), ça parait pas simple de proposer une interface qui corresponde à tout ça.
Bien que le design de tes softs m'épate toujours et que ce soit vraiment pas mon fort, j'ai pensé à ça :
dc.w $F000 + #ramcall
ou encore :
dc.w $F000 + #ramcall x 2
Et ça renvoie dans a0 le pointeur vers le ramcall dans la table du kernel. Suffit d'avoir une table d'offsets de deux bytes à ajouter à l'adresse du premier ramcall. Le fait d'utiliser la seconde solution gagne en temps de calcul (mais c'est pas vraiment ce qu'on cherche quand on utilise ce vecteur), tandis que la première solution permet de ne pas trop empiéter sur la plage disponible du vecteur.
Après, l'utilisateur n'a qu'à faire un jsr (a0), tst.b (a0), cmp.w (a0),d0 etc... De toute façon, c'est bien à lui de savoir comment utiliser le ramcall dont il a besoin. Qui plus est, ça permet une implémentation très légère en taille.
Qu'en pensez-vous tous ?