19 : Le Compilateur AMOS

L'un des développements les plus passionnants depuis AMOS lui-même fut la sortie du package du compilateur, vous permettant de compiler vos programmes AMOS en un code machine presque parfait. Le prédécesseur d'AMOS (un programme sur l'Atari ST appelé STOS) disposait d'un excellent compilateur, et le compilateur AMOS a été attendu avec beaucoup d'impatience par la communauté Amiga dans son ensemble. Eh bien, il est arrivé, et au cas où vous n'auriez pas lu les anciennes critiques à son sujet, vous serez ravi de savoir qu'il est brillant.

Le compilateur lui-même existe sous la forme d'une commande CLI simple appelée acmp, que vous pouvez en fait simplement taper à l'invite CLI ou dans un shell et lui passer quelques paramètres (je vous en parlerai un peu plus bas). Ou vous pouvez démarrer un programme AMOS appelé Compiler.AMOS, qui est une interface graphique pour le compilateur, vous permettant de compiler vos programmes d'un simple clic de souris. (Voir la Figure 19.1.) Le tout est exécuté à partir d'une extension du langage AMOS de base et, comme toutes les extensions, il doit être installé avant de pouvoir être utilisé.

Les programmes compilés avec le compilateur AMOS peuvent être exécutés à partir du CLI, du Workbench, ou même depuis AMOS. Pourquoi voudriez-vous exécuter un programme compilé depuis AMOS ? Eh bien, vous pouvez exécuter des programmes AMOS depuis un programme AMOS, en chargeant et en exécutant un autre segment Une des évolutions les plus excitantes depuis AMOS fut la sortie du package du compilateur, permettant de compiler vos programmes AMOS en un code machine presque parfait. Comme le prédécesseur d'AMOS (un programme sur l'Atari ST appelé STOS) disposait d'un excellent compilateur, le compilateur AMOS a été très attendu par la communauté Amiga. Eh bien, il est arrivé, et au cas où vous n'auriez pas lu les critiques à son sujet, vous serez ravi de savoir qu'il est brillant.

Le compilateur lui-même existe sous la forme d'une commande CLI simple appelée acmp, que vous pouvez en fait simplement taper à l'invite CLI ou dans un shell et lui passer quelques paramètres (je vous en parlerai un peu plus bas). Ou vous pouvez démarrer un programme AMOS appelé Compiler.AMOS, qui est une interface graphique pour le compilateur, vous permettant de compiler vos programmes d'un simple clic de souris. (Voir la Figure 19.1.) Le tout est exécuté à partir d'une extension du langage AMOS de base et, comme toutes les extensions, il doit être installé avant de pouvoir être utilisé.

Les programmes compilés avec le compilateur AMOS peuvent être exécutés à partir du CLI, du Workbench, ou même depuis AMOS. Pourquoi voudriez-vous exécuter un programme compilé depuis AMOS ? Eh bien, vous pouvez exécuter des programmes AMOS depuis un programme AMOS, en chargeant et en exécutant un autre segment de votre jeu par exemple. Si ce segment de votre jeu est compilé (pour des raisons de vitesse ou de confidentialité), il sera bien plus rapide et sécurisé.

La beauté du compilateur est que vous n'avez pas besoin de connaissances expertes pour l'utiliser, et le résultat du compilateur améliore la performance de vos programmes par un facteur de trois à quatre. Quel est le piège ? Eh bien, le principal inconvénient est que les programmes compilés sont généralement beaucoup plus volumineux que leurs homologues AMOS. Il y a une certaine quantité de code d'exécution qui est définitivement incluse dans le programme lors de la compilation. Cela permet au programme de fonctionner de manière autonome, sans que le programme AMOS ou ses bibliothèques doivent être présents sur le disque.

Une chose que vous pouvez faire est de compresser le programme avec un programme PD appelé PowerPacker. Cela signifie que le programme est compressé par PowerPacker, puis il se décompresse automatiquement lorsqu'il est exécuté. PowerPacker est disponible dans votre bibliothèque PD locale.

Le compilateur vient avec deux disques, l'un étant un disque de mise à jour pour convertir votre disque maître AMOS (ou au moins une copie de sauvegarde de celui-ci) afin de vous fournir AMOS 1.34, car seules les versions 1.3 et supérieures d'AMOS peuvent exécuter le compilateur. L'autre disque est le compilateur, et bien qu'il fonctionne très bien sur un Amiga normal, il fonctionne encore mieux si l'Amiga dispose de plus de mémoire. Pour aider les utilisateurs de A500 non étendus, plusieurs méthodes d'économie de mémoire ont été mises en place, afin que vous puissiez compiler des programmes aussi grands que ceux d'un utilisateur de 2000 avec plus de mémoire.

Il existe quelques programmes PD et d'autres types d'exemples sur le disque. Le compilateur AMOS Assembler est également inclus sur les disques maîtres, au cas où vous n'auriez pas encore vu ce programme excellent. C'est une façon d'étendre la capacité d'AMOS en utilisant du code machine stocké dans les banques AMOS (si vous connaissez le code machine, bien sûr !). J'ai inclus une petite présentation de ce programme, le compilateur AMOS Assembler de Gary Symons, dans le Chapitre 18.

Utiliser le Compilateur

Le compilateur utilise plusieurs méthodes pour fonctionner. La première méthode à connaître est la commande COMPILE, qui peut être utilisée en mode direct. Commencez par fermer la fenêtre 0 en allant en mode direct et en tapant :

Screen Close O

Cette commande économise 32 Ko de mémoire et permet d'afficher les messages du compilateur dans la fenêtre du mode direct, plutôt que sur l'écran actuel. Ensuite, vous êtes libre de compiler vos programmes.

La compilation prend essentiellement votre code AMOS, réduit chaque commande à ses éléments essentiels, et interprète le code en langage d'assemblage avant de le transformer en code brut. Le fichier généré ne peut pas être lu dans AMOS, ni imprimé comme un fichier texte, car c'est un fichier exécutable, un programme en soi. Il peut être exécuté depuis le CLI ou le Workbench, comme tout autre programme Amiga, et est indistinguable d'un vrai programme.

Pour compiler vos programmes, tapez :

compile  [parameters]

Par exemple :

compile "nom_du_programme.AMOS -D11 -T3"

Les paramètres à la fin de la commande seront expliqués plus loin. L'autre option est de compiler le programme en utilisant l'interface graphique d'AMOS. Une interface graphique est la méthode la plus conviviale pour compiler vos programmes. Il vous suffit de charger Compiler.AMOS et de l'exécuter. L'écran vous indiquera ce que vous devez faire. Cliquez sur les boutons et compilez !

La troisième méthode est depuis le CLI dans AmigaDOS. Vous exécutez le programme ACMP comme suit :

acmp  [parameters]

Par exemple :

acmp "votre_programme.AMOS" -OMyProg

Dans ce cas, le fichier de sortie s'appelle MyProg, et c'est ce que vous tapez pour exécuter le programme.

Réglages fins du compilateur AMOS

Voici les détails sur le processus de compilation. Dans l'interface Compiler.AMOS, vous disposez d'une méthode simple pour exécuter le compilateur et définir les options. Mais un utilisateur avancé souhaitera probablement affiner le processus de compilation lui-même. Voici les paramètres que vous pouvez utiliser. Chaque option est choisie avec un tiret (-), suivi d'une seule lettre.

-O

Cela correspond au fichier OBJECT (sortie). Si vous omettez cette commande, le compilateur supprimera simplement l'extension .AMOS du nom du fichier d'entrée et l'utilisera comme nom de fichier de sortie. Dans la plupart des cas, cela suffit, mais parfois vous voudrez que le programme ait un nom différent de celui du fichier d'entrée. Cela arrive.

-D

L'option -D vous permet de spécifier la source et la destination de la compilation AMOS. Le 1 représente un disque, et le 0 représente le disque RAM, le premier chiffre étant la source et le second la destination. Voici les permutations possibles :

-Tn

L'option -T spécifie le type de programme que le fichier de sortie sera. Les types sont les suivants :

-Sn

n = 0 ou 1. AMOS créera toujours l'écran par défaut de couleur marron avec le curseur clignotant. Si vous ne voulez pas voir cela (ce qui est un indice que votre programme compilé est écrit en AMOS), vous devez activer le paramètre -S0. Si vous voulez réinitialiser cette fonctionnalité, utilisez le paramètre -S1.

-Wn

n = 0 ou 1. Cela empêche AMOS d'effacer l'écran du Workbench lorsque le programme compilé est exécuté. -W1 empêche l'affichage du programme AMOS jusqu'à ce que votre programme fasse un AMOS TO FRONT. Ou vous pouvez écrire une routine qui crée et écrit du texte dans une fenêtre CLI. -W0 est la configuration par défaut.

-L

Utilisé pour compiler de gros programmes.

Il existe d'autres options que vous pouvez configurer, mais elles sont disponibles dans le manuel du compilateur AMOS.

Utilisation de l'Interface Graphique

Le programme Compiler.AMOS est très utile pour compiler des programmes rapidement, sans avoir à gérer des aspects complexes. La fenêtre du programme spécifie la source, la destination et le type de programme, et propose également quelques options de configuration. Le programme exécute toutes les commandes en mode direct, donc la seule différence avec l'approche technique en mode direct ou CLI est qu'avec l'interface graphique, vous n'avez pas à vous soucier des détails.

Publication Commerciale

Il existe une note intéressante dans le manuel concernant la publication commerciale des programmes AMOS compilés. Évidemment, si vous compilez un programme écrit en AMOS, il ne pourra pas être distingué d'un programme machine standard sans examiner le fichier. La note dans le manuel précise que si vous créez un programme pour le PD ou le Shareware/Licenseware, vous devez mentionner que le programme de développement utilisé était AMOS. Si vous vendez le programme commercialement, vous devez en informer Europress, mais ils garderont cela confidentiel jusqu'à la sortie du programme. La raison en est que certains programmeurs constatent une réticence des éditeurs de logiciels à accepter des programmes écrits à l'aide de créateurs de jeux. Europress annoncera ensuite que le programme était basé sur AMOS deux mois après sa sortie. Très astucieux.

Bonnes Vibrations

J'aime beaucoup le compilateur, comme vous pouvez probablement le deviner, et il fait vraiment accélérer les programmes. Bien que la différence de vitesse ne soit pas aussi marquée que ce à quoi je m'attendais, elle fait une différence, surtout pour de nombreuses tâches fonctionnant en même temps, comme l'animation, la musique, et ainsi de suite. Là où certains programmes montraient un ralentissement notable du score musical lorsqu'il y avait beaucoup de choses à l'écran, vous verrez maintenant une amélioration évidente. C'est dans ce domaine que le compilateur est le plus utile, ainsi que la possibilité d'exécuter vos programmes sans avoir à utiliser le programme d'exécution RAMOS. Non seulement cela empêche les gens de lister votre programme et de voler vos idées, mais c'est aussi un excellent moyen d'optimiser vos applications.

Conseils et Astuces pour le Compilateur

Voici quelques points importants à connaître pour utiliser efficacement le compilateur. D'abord, vous remarquerez peut-être que certains mouvements graphiques clignotent un peu lorsque vous compilez un programme. Cela est entièrement dû à la vitesse du compilateur AMOS et n'est pas un problème. La boucle que vous avez configurée va trop vite, d'où le clignotement. La meilleure façon de la synchroniser avec la vitesse de l'écran est d'utiliser la commande WAIT VBL à la fin de chaque boucle. Si vous utilisez UPDATE, vous devez vous assurer qu'au moins un balayage vertical se produit entre deux UPDATES.

Si votre programme ne compile pas, c'est probablement parce que vous ne l'avez pas testé. Testez le programme, puis enregistrez-le sur disque ou sur le disque RAM (où vous voulez le sauvegarder), puis recompilez-le. Certaines extensions peuvent poser problème, mais uniquement si vous n'avez pas les dernières versions. (Contactez le AMOS Club pour plus de détails à ce sujet.) La commande PRUN n'est pas prise en charge par AMOS et doit être remplacée par RUN si vous avez l'intention de compiler votre programme.

Certains programmes ne se compileront pas parce que vous n'avez pas ouvert un écran au début, ce qui est particulièrement délicat si vous avez désactivé le bouton de l'écran par défaut dans les paramètres du compilateur. Il y a plusieurs raisons pour lesquelles vous pourriez faire cela, et l'une d'elles est de cacher que le programme est écrit en AMOS. Pour résoudre ce problème, soit vous réactivez l'écran par défaut, soit vous ouvrez un écran au début du programme. Pourquoi ne pas ouvrir un écran au début d'un programme ? Eh bien, certaines opérations ouvrent automatiquement un écran, comme :

Load Iff "filename",O

Ce qui charge un fichier IFF dans l'écran 0, ajustant automatiquement la taille pour s'adapter à celle de l'écran, ou :

Unpack 6 To O

Qui prend l'image compressée dans la banque 6 et la décompresse dans l'écran 0. Pour plus de conseils et d'astuces sur la compilation, rejoignez le AMOS Club et lisez leur newsletter (voir le Chapitre 23).

Plus de Dimensions

Le compilateur AMOS est une façon d'améliorer la performance de votre système AMOS, mais il existe une méthode beaucoup plus complexe pour transformer AMOS en quelque chose de totalement différent. AMOS 3D fait quelque chose que aucun autre langage BASIC ne peut faire : des graphiques 3D ! Si vous voulez en savoir plus sur AMOS 3D, tournez la page.

← Retour au sommaire