Une operation logique AND est effectuee entre ce masque de bits et le nombre aleatoire pour generer le resultat final, donc un masque de 255 retournera des valeurs entre 0 et 255.
Pour optimiser la vitesse, le nombre retourne n est pas veritablement aleatoire. Si vous avez besoin de valeurs vraiment aleatoires, utilisez l instruction Basic RND puis chargez le resultat dans un registre AMAL externe avec AMREG.
Un tutoriel sur les fonctions AMAL est disponible dans le fichier suivant :
LD> Load "AMOSPro Tutorial:Tutorials/AMAL/AMAL_3.AMOS"
Appeler un programme AMAL depuis AMOS Professional
AMAL
instruction : appelle un programme AMAL
Amal numero de canal,"chaine d instructions"
Amal numero de canal,numero du programme
Amal numero de canal,adresse du bank memoire
Amal numero de canal,"chaine d instructions" To adresse
La commande AMAL sert a assigner un programme AMAL a un canal d animation. Ce programme peut etre defini dans une chaine de caracteres ou provenir directement de la banque memoire AMAL. Dans tous les cas, le numero du canal doit etre compris entre 0 et 63.
Chaque canal peut etre affecte independamment a un Sprite, un Bob ou un ecran.
Seuls les 16 premiers programmes AMAL (canaux 0 a 15) peuvent etre executes via des interruptions. Les canaux 16 a 63 doivent etre executes depuis le Basic avec la commande SYNCHRO, qui est expliquee plus loin dans ce chapitre.
Une version avancee de la commande AMAL existe egalement. Avec celle-ci, les valeurs des registres X, Y et A sont copiees dans une zone memoire specifique. Cela permet a AMAL d etre utilise pour animer tout type d objet graphique, comme des blocs graphiques ou des caracteres. Voici le format a utiliser :
X> Amal numero de canal, A$ To adresse
L adresse doit etre paire et pointer vers une zone memoire securisee, de preference une chaine AMOS ou une banque memoire. Le programme AMAL s execute toutes les 1/50 de seconde, et les valeurs suivantes sont ecrites a l adresse specifiee :
Adresse Effet Adresse Bit 0 = 1 si le registre X a change Bit 1 = 1 si Y a change Bit 2 = 1 si l image (A) a change depuis la derniere interruption Adresse+2 Valeur courante de X Adresse+4 Valeur courante de Y Adresse+6 Valeur courante de A