Manuel Amos Professional Sommaire Index
Code Machine
- Lorsque la routine est appelée depuis AMOS Professional Basic, certains registres contiendront
des informations précieuses. Le registre A3 contiendra la liste des paramètres. Le registre A5 contiendra
la zone de données AMOS Professional, permettant l'accès à de nombreuses fonctions internes directement depuis le programme en code machine.
- Bien que les routines puissent modifier n'importe quel registre, la pile A7 doit rester inchangée. Notez également que
les registres A3 à A6 ne seront pas retournés dans les fonctions AREG.
Créer une procédure en langage machine
Les procédures en code machine sont installées en utilisant l'option [Inset Program] du menu
[Editor/Procedures]. Les étapes suivantes doivent être suivies :
- Créez une procédure factice depuis l'éditeur AMOS Professional, comme ceci :
X> Procedure _MACHINE[A,A$]
End Proc
Des procédures fermées existantes peuvent également être utilisées à cette fin, et il est parfaitement légal de mettre à jour une
routine après que le programme en code machine ait été ré-assemblé.
- Placez le curseur texte à l'intérieur de la procédure vide.
- Sélectionnez [Insert Program] dans le menu. Vous serez alors invité via un sélecteur de fichiers standard d'AMOS.
- Sélectionnez le programme en langage machine sur le disque. Il doit s'agir d'un programme assembleur
standard pouvant être exécuté sous CLI. Un programme Workbench ou un autre programme
commercial ne peut pas être inséré dans une procédure. Si ce conseil est ignoré, votre Amiga plantera lors
de l'exécution de ce programme ! Le code doit être PC relatif, car AMOS Professional ignorera toute information de relocalisation contenue dans le fichier. Le code doit n'utiliser qu'un seul segment,
car AMOS Professional ne chargera que le premier segment CODE en mémoire.
- AMOS Professional fermera alors la procédure et insérera la routine en langage machine sélectionnée en mémoire. Toute instruction Basic existante dans la procédure sera supprimée !
Une fois le code machine installé de cette manière, il sera appelé automatiquement à chaque fois que la
nouvelle procédure sera exécutée depuis AMOS Professional Basic.
Communiquer avec une procédure en code machine
Il existe deux méthodes pour échanger des informations avec une procédure en code machine.
Avec la première méthode, les valeurs sont chargées dans les registres d'adresse et de données appropriés, avant que la procédure ne soit appelée à l'aide des fonctions AREG et DREG. Par exemple :
X> Dreg(0)=1 : Dreg(1)=Varptr(A$) : _MACHINE
Procedure _MACHINE