* Pour NN=1 jusqu'au nombre d'enregistrements
Moves dc.w Nombre_De_Mouvements
* Pointeurs vers la liste des coordonnées X
REPT Nombre_De_Mouvements
dc.w (XMove_NN-Moves)/2 Offset vers les coordonnées X /2
Ou zéro si non définies
ENDR
* Emplacement des coordonnées Y
REPT Nombre_De_Mouvements
dc.w (YMove_NN-Moves)/2 Offset vers les coordonnées Y /2
Ou zéro si non définies
ENDR
* Stocke un nom de huit octets pour chaque table de mouvement
REPT Nombre_De_Mouvements
dc.b "MoveName" 8 octets par mouvement
ENDR
* Enfin, voici les définitions des mouvements eux-mêmes
*
REPT Nombre_De_Mouvements
XMove_NN dc.w Vitesse Vitesse d'enregistrement en 1/50 sec
dc.w Longueur_De_X_Move Longueur de la table en octets
dcb.b ... définition XMove ...
YMove_NN
dcb.b ... définition YMove ...
ENDR
Les mouvements sont stockés de la manière suivante. La table de mouvement utilise le même format pour les coordonnées X et Y. Elle commence et se termine par une valeur zéro, ce qui permet de terminer la liste aussi bien en lecture avant qu'en arrière.
%00000000 Fin du mouvement
%0ddddddd ddddddd contient la distance à déplacer en pixels,
signée sur 7 bits (-128 à +128)
Cette distance sera ajoutée à la coordonnée actuelle de l'objet
pour obtenir la nouvelle position à l'écran
%1wwwwwww spécifie le nombre de
périodes de 1/50 sec à attendre jusqu'au prochain
mouvement
Les programmes AMAL
Les chaînes de commandes AMAL sont stockées au format Ascii standard.
Progs dc.w Nombre_De_Programmes Contient le nombre de programmes AMAL
* Liste des offsets
REPT Nombre_De_Programmes
dc.w (Prog_NN-Progs)/2 Distance jusqu'au programme numéro NN