Obligement - L'Amiga au maximum

Samedi 18 novembre 2017 - 05:44  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Programmation : AmigaBasic - introduction (Intuition, son et graphisme)
(Article écrit par Christian Sager et extrait d'A-News (Amiga News) - décembre 1989)


Je disais précédemment que l'atout c'est la structure. Je vais préciser pour vous. Quand vous écrivez un programme, il n'est pas rare de voir apparaître sur la ligne de la fenêtre, un message d'erreur. Vous pouvez utiliser le mode TRACE ou STEP afin de suivre pas à pas votre programme et ainsi découvrir l'erreur. Ce BASIC est dit structuré car sans numéro de ligne mais aussi, des commandes qui vous permettent de visualiser correctement votre programme. A côté de la commande normale comme FOR-NEXT on trouve aussi IF-THEN-ELSE, END-IF et WHILE-WEND.

Une aide inestimable vous est apportée par ON ERROR GOTO pour intercepter et tester les erreurs, ON BREAK GOSUB qui lors d'une interruption du programme vous permet de faire appel à un sous-programme de même que les possibilités qu'offre ON TIMER(n) GOSUB toutes les "n" secondes fait appel à un sous-programme.

Intuition

Autant pour la réponse du bouton gauche de la souris (bouton de choix) que pour celui de droite (bouton du menu), le BASIC de l'Amiga tient des fonctions à votre disposition pour utiliser l'environnement d'Intuition. Les commandes MOUSE et MENU correspondent à cette définition. C'est grâce à ces instructions qu'il vous est possible d'utiliser avec des programmes BASIC cet environnement et de donner un aspect professionnel.

D'ailleurs, le voici ce listing tout simple et assez explicite. L'AmigaBasic, comme l'AmigaDOS, ne fait pas vraiment de différence entre fichiers et périphériques. C'est un réel avantage, car l'accès est possible avec la même syntaxe pour les entrées-sorties. Le BASIC a à sa disposition DF0, DF1, DF2, DF3 et RAM (disque virtuel). SER et COM1 pour la sortie série et PAR, PRT et LPT1 pour la sortie parallèle. Notez que la série a deux noms et la sortie parallèle en a même trois. La raison c'est que l'AmigaBasic utilise ces sorties indifféremment. Donc pour la sortie PRT de même que pour LPT1 vous ne pouvez transmettre que vers une imprimante choisie dans le menu "Preferences".

AmigaBasic

La raison provient d'une certaine compatibilité face à d'autres dialectes BASIC : dans son développement du BASIC, Microsoft a utilisé LPT1 pour définir la sortie imprimante (voir GW-Basic sous MS-DOS). La seule différence entre PRT et LPT1, c'est que LPT1 imprime immédiatement pendant que PRT utilise un tampon mémoire. Les raisons sont les mêmes que pour SER et COM1, ce dernier permet de fixer des paramètres (baud, parité, etc.).

Il existe deux possibilitées pour traiter des fichiers : le séquenciel et l'accès direct. Après l'ouverture du fichier avec son option ("0" écriture séquentielle, "A" ajouter à un fichier séquentiel, "I" lecture séquentielle et "R" accès direct en lecture/écriture) vous pouvez intervenir dans un fichier séquentiel avec WRITE #, PRINT # et INPUT #.

L'équivalent pour l'accès direct c'est GET #, PUT #, RSET et LSET. Mais cette fois-ci je ne céderais pas à l'envie de vous en dire plus et je ne poursuivrais donc pas ce domaine d'accès aux fichiers. Cela nous entraînerait bien trop loin.

Avec toutes ces premières instructions, il ne faut pas oublier les principales, à savoir les commandes de chargement et de sauvegarde des programmes que vous allez élaborer. Je vous signale qu'à partir du BASIC de l'Amiga on peut accéder à d'autres programmes BASIC qui ne sont pas dans le même répertoire en utilisant la commande CHDIR (changement de répertoire) et pour voir quels sont les fichiers disponibles on utilise la commande FILES.

La structure, suite... et fin

Il y a cinq types différents de variables : simple précision, double précision, entier de type court, entier de type long et les chaînes de variables.

Le son

Arrivons au son. Il paraît que l'Amiga est musicien... Mais avant un autre petit listing pour vous bande de veinards.

AmigaBasic

Le listing 3 qui accompagne ces explications devrait vous donner une idée des possibilités quant à la programmation du son sur l'Amiga oui mais... Nous verrons ça quelques lignes plus loin. Nous avons deux commandes pour faire parler l'Amiga : TRANSLATE et SAY. Avec ça, vous pouvez faire lire des phrases (en anglais). Avec un petit effort on pourrait s'attacher à faire parler notre ordinateur en français. Enfin !

AmigaBasic

Pour faire du son on utilise la commande SOUND. Plutôt que de faire de nombreuses phrases (à moins que vous ne préféreriez lire du texte) je vous écris, là, tout de suite et même immédiatement un petit programme.

La commande WAVE que vous pouvez voir dans le programme ci-dessus vous donne la forme de l'onde. La fonction SOUND permet de synchroniser les différents canaux parce qu'il y a d'abord une file d'attente. Ce principe de file d'attente est très intéressant et se trouve surtout mis en évidence sous Pascal, autre langage de programmation structuré. C'est pourquoi on commence dans un programme de son par la commande SOUND WHITE et après seulement SOUND pour les différents canaux. Il ne faut toutefois pas oublier que la commande SOUND utilise beaucoup de place mémoire.

Je reviens donc au principe du programme listing 3. Il fonctionne sans problème mais si on redémarre avec la commande RUN, il reste accroché sans afficher de fenêtre d'erreur (on peut l'arrêter avec STOP). Qui me dira pourquoi ?

Réponse de François Autret. Il faut ajouter après "SOUND i%*4,5,100,3" les lignes suivantes :

SOUND 0,1,0,0
SOUND 0,1,0,1
SOUND 0,1,0,2
SOUND 0,1,0,3

...et il conseille encore la ligne "ERASE coucou%" après les lignes du graphisme. Explication : on éteint tout. La fréquence, le volume sont mis a 0, la durée à 1 et ceci pour les différents canaux ou voix.

Du graphisme et de l'animation

C'est dans les fonctions graphiques que l'on voit la véritable puissance du BASIC de l'Amiga. Les instructions sont simples et confortables à utiliser et l'on peut fabriquer des graphiques complexes. Dans le listing 3, non seulement vous avez pu voir la programmation simple de son mais aussi la représentation graphique de la forme d'onde. La commande LINE est plus importante qu'il n'y paraît. Elle peut tracer des lignes mais aussi des quadrilatères. A côté de cela nous avons PSET et PRESET qui permettent de placer un point, pour faire des élipses CIRCLE pour dessiner AREA et pour mettre en couleur des formes fermées AREAFILL. PAINT rempli une surface avec la couleur de votre choix, tandis que PATTERN décide des motifs à utiliser pour cette mise en couleur.

Quatre couleurs sont installées et si l'on veut utiliser une palette plus importante, il faut ouvrir un nouvel écran avec la commande SCREEN où les paramètres qui suivent représentent le mode et le nombre de bitplanes (de un à cinq). Le nombre de couleur se calcule par deux puissances nombre de bitplanes ; vous pouvez donc sur un écran avoir au maximum trente deux couleurs. Pour le choix de ces couleurs, vous utilisez la commande PALETTE. Les numéros de couleur vont de zéro à trente et un et sont mis au point avec des valeurs décimales comprises entre zéro et un pour RGB (Rouge Vert Bleu).

Les commandes GET et PUT sont d'une aide remarquable car elles lisent les représentations graphiques de l'écran en les mettant dans un seul champs. Le défaut principal de l'AmigaBasic c'est qu'il ne reconnaît pas les images en IFF, car il avait été développé avant ce standard.

Le listing 4 vous montre la simplicité avec laquelle on confectionne des images. Il est certain que l'on s'ennuie très vite à voir une image fixe alors il y a les commandes OBJECT qui anime l'écran. Il y a deux sortes d'objets : les bobs et les sprites. La différence entre les deux est le nombre de couleur, la taille maximale et la rapidité avec laquelle ils peuvent se déplacer. Comme vous trouvez un programme qui s'appele OBJEDITE sur votre disquette, on ne se pose pas le problème du choix des deux.

AmigaBasic

Sous-programmes et bibliothèques

L'Amiga connaît trois sortes de sous-programmes : les fonctions représentées par DEF FN et appelée par FN. Une fonction ne peut comporter qu'un calcul et qu'une ligne unique. Le plus intéressant maintenant c'est les sous-routines. La sous-routine est formée d'un label et se termine par RETURN. Toutes les variables utilisées dans les sous-routines sont globales, c'est-à-dire que les variables sont reconnues autant que par le sous-programme que par le programme principale. On appele la sous-routine avec la commande GOSUB. C'est là le plus grand intérêt du BASIC de l'Amiga plutôt qu'un long discours, un exemple !

Admettons que dans le programme principal on affecte à une variable "x" la valeur 1 ; en même temps, nous avons dans un vrai sous-programme une variable x = 2 ; si nous demandons au programme principal PRINT x, nous avons la valeur 1, par contre, dans le sous-programme PRINT x sera égal à 2. Résultat : nous pouvons chaîner des programmes venant de différents horizons. Et nous voilà dans les bibliothèques, car en réalité les bibliothèques ne sont qu'une collection de sous-programmes.

Les sous-programmes ne doivent pas être obligatoirement écrits en BASIC mais peuvent aussi utiliser le langage machine. Vous avez même la possibilité d'appeler les routines système, il est évident que vous devez connaître les paramètres qu'elles utilisent. Un inconvénient du système d'exploitation, c'est qu'il est écrit en C, et que le C utilise une autre méthode pour transmettre des paramètres. Mais il existe un programme qui s'appele "Convertfd" sur la disquette du BASIC. Il permet une conversion des bibliothèques en bibliothèques BASIC avec une extension ".bmap".

Et en conclusion

L'AmigaBasic peut être un langage renversant ! Mais les spécialistes ne voudront pas passer leur temps à résoudre des problèmes BASIC vu l'extrême lenteur de l'interpréteur. Il est évident qu'à ce niveau il est plus intéressant de faire du langage machine ou d'utiliser un compilateur. Il existe un compilateur pour le BASIC de l'Amiga.

Face à tous les langages, surtout ceux que je connais, je retiendrais le BASIC comme une méthode, une approche simple, qui convient le plus souvent à des personnes non familiarisées avec un raisonnement, une forme de penser que véhicule l'informatique. Le BASIC de l'Amiga me rappelle un autre langage du nom de Pascal qui utilise aussi des structures.


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]