Obligement - L'Amiga au maximum

Vendredi 26 mai 2017 - 00:03  

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


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Programmation : Blitz Basic - les bases
(Article écrit par Jérôme Marchal - avril 2003)


To Blitz or not to Blitz... That's the question...

Pour introduire cette rubrique, je pense que la question à se poser est la suivante : pourquoi le Blitz Basic ?

A première vue et ce d'après son nom, il n'a pas grand-chose d'exceptionnel. Un Basic de plus parmi tant d'autres. Qu'a-t-il de plus que les autres ? Bonne question et à une bonne question vous avez droit à une bonne réponse.

Blitz Basic vs AMOS & Co

Vous connaissez tous l'AMOS et ce même si vous ne l'avez jamais pratiqué. A première vue, il s'agit là de deux Basic destinés à l'Amiga... Mais qu'est-ce qui fait que le Blitz est supérieur ? Pour commencer il faut retourner au source de l'AMOS pour comprendre que ce langage n'est pas né sur Amiga mais sur... Atari ! A l'origine, ce langage ne s'appelait pas AMOS mais STOS et après le décollage fulgurant de l'Amiga, l'AMOS arriva bien vite sur nos plates-formes. Le gros problème était que l'AMOS ne gérait pas du tout Intuition et qu'il relevait donc du quasi impossible de créer quoi que se soit qui puisse tourner en multitâche et ce, sans ouvrir son propre écran. L'autre gros problème avec l'AMOS comme avec les autres Basic d'ailleurs, c'est que l'on est obligé d'utiliser des routines préfabriquées. En bref, avant il fallait choisir entre la performance d'un langage évolué mais très compliqué à programmer, ou la simplicité du Basic très peu optimisé... avant oui... Mais entre-temps naquit le Blitz Basic...

Basic certes, mais performant

L'idée de base du Blitz était des plus simples ; utiliser le langage Basic le plus simple du monde tout en lui ouvrant des portes jusqu'alors réservées à l'assembleur ; le tout en parfaite harmonie avec Intuition. En ce sens, il vous est possible d'utiliser de l'assembleur dans vos programmes et ainsi de vous passer des routines préfabriquées trop lentes à votre goût pour tout optimiser au maximum. Toute la force du Blitz est là. Simplicitée dans un premier temps, puis optimisation maximum dans un second temps.

Pourquoi pas le Blitz Basic ?

Nous avons maintenant largement vanté les mérites du Blitz alors la question est, qu'y a-t-il à lui reprocher ? Dans le fond et à première vue pas grand-chose, mais dans la pratique... Pour commencer, il faut bien comprendre que ce langage n'est plus développé et ce, depuis un certain temps, bien avant les PowerPC et la démocratisation des cartes graphiques. Dans la pratique, ce n'est pas vraiment une catastrophe car tout repose sur un système de bibliothèques et que bon nombre de développeurs continuent à produire de nouvelles bibliothèques qui vous permettent de quasiment tout faire. A part ça ? Et bien beaucoup de petites choses mais dans la pratique tous ces inconvénients réunis pèsent bien peu dans la balance face aux mille et unes merveilles que nous permet de réaliser le Blitz et ce, en seulement quelques lignes. J'aurais du faire commercial chez Acid Software moi... :)

Les bases...

Les routines de base sont très simples. Pour conclure ces prémices au Blitz Basic nous allons ici ouvrir un simple écran puis une simple fenêtre, faire glisser nos premières lignes de textes. Bref, voici notre premier texte défilant ("slidetext") en moins de trente lignes !

-[DEBUT DU CODE SOURCE]-------------------------------------

WBSTARTUP

         SCREEN 0,0,0,320,256,1,0,"",0,0
         WINDOW 0,0,0,320,256,$0800,"",1,2

                  RGB 0,0,0,0
                  RGB 1,15,15,15

         a=256

                  MENUS OFF

REPEAT

         WLOCATE 0,a
                  NPRINT "OBLIGEMENT SCROLL TEXT"
         WLOCATE 0,a+8
                  NPRINT "(c) jAy / grIm PRoJeCT"
         WLOCATE 0,a+16
                  NPRINT "                      "
         WLOCATE 0,a+24
                  NPRINT "! SIMPLE MAIS EFFICACE !"
         WLOCATE 0,a+32
                  NPRINT "                        "
         WLOCATE 0,a+48
                  NPRINT "Faites vos propres essais"
         WLOCATE 0,a+56
                  NPRINT "Rajoutez des lignes à volonté !"
         WLOCATE 0,a+64
                  NPRINT "                               "
 
         a=a-1

         VWAIT 2

UNTIL a=-104

MOUSEWAIT

         CLOSEWINDOW 0
         CLOSESCREEN 0

END

-[FIN DU CODE SOURCE]---------------------------------------

Explications

Je vais maintenant vous expliquer ligne par ligne ce que l'on vient de faire.

WBSTARTUP = Très simple. Cette instruction rend notre programme exécutable depuis le Workbench.

SCREEN a,b,c,d,e,f,g,"h",i,j

a = C'est le numéro de l'écran. Très utile lorsque vous en utilisez plusieurs.
b = La position horizontale du coin en haut à gauche de notre écran.
c = La position verticale du coin en haut à gauche de notre écran.
d = La largeur de l'écran en pixels.
e = La hauteur de l'écran en pixels.
f = La profondeur en bits de l'écran (8 bits = 256 couleurs).
g = Le mode d'affichage... nous verrons cela ultérieurement.
h = Le titre qui apparaît dans le barre de menus en haut de l'écran.
i & j = Couleur d'arrière et d'avant plan.

WINDOW a,b,c,d,e,f,"g",h,i

a = C'est le numéro de la fenêtre. Très utile lorsque vous en utilisez plusieurs.
b = La position horizontale du coin en haut à gauche de notre fenêtre.
c = La position verticale du coin en haut à gauche de notre fenêtre.
d = La largeur de la fenêtre en pixels.
e = La hauteur de la fenêtre en pixels.
f = Les drapeaux... nous verrons cela dans un prochain cours.
g = Le nom de notre fenêtre.
h & i = Couleur d'arrière et d'avant plan.

RGB a,b,c,d = sert à définir les couleurs RGB.

a = Numéros de la couleur dans la palette.
b = Taux de rouge de 0 à 15.
c = Taux de vert de 0 à 15.
b = Taux de bleu de 0 à 15.

a=256... bah, on met la valeur 256 dans "a" c'est tout !

MENUS ON ou MENUS OFF = permet d'activer ou de désactiver les menus.

REPEAT = répète ce qui suit jusqu'à ce qu'une instruction lui dise quoi faire (voir UNTIL plus bas).

WLOCATE a,b = On se positionne dans notre fenêtre. "a" définissant l'horizontale et "b" la verticale.

NPRINT "a" = On écrit "a" dans la fenêtre à l'endroit définit par WLOCATE ou à la ligne suivante si pas de WLOCATE.

a=a-1 = On enlève 1 de "a" à chaque passage sur cette instruction.

VWAIT x = On fait une pause de "x" rafraîchissement d'écran.

UNTIL a=x = Va avec la fonction REPEAT. On répète une suite d'instructions jusqu'à ce que "a" sois égale à "x".

MOUSEWAIT = Tout est figé tant que l'utilisateur n'a pas cliqué sur la souris.

CLOSEWINDOW a = On ferme la fenêtre "a".

CLOSESCREEN a = On ferme l'écran "a" (attention : toujours fermer toutes les fenêtres avant de fermer l'écran !).

END = Fin de programme. On rend la main au Workbench.

Dernières petites explications

Si dans nos WLOCATE on se décale de 8 en 8, c'est parce que faute d'avoir précisé quoi que ce soit, le système utilise la police de caractères de base en taille 8... logique non ? ;) Tout ce programme n'est basé que sur un décalage de l'instruction NPRINT dans une fenêtre... Il existe bien évidemment des solutions autrement bien plus propres et efficaces que celle-ci pour faire glisser un texte. Cette méthode a été retenue car elle nous permettait de voir plusieurs instructions de base qui nous seront essentielles pour la suite de nos cours.

Le mot de la fin

J'attends vos réactions sur le sujet. N'hésitez pas à me contacter, soit directement en contactant Daff, notre rédac chef préféré, avec l'adresse électronique du magazine.

Dans notre prochain cours, nous essayerons de faire plus ample connaissance avec Intuition, ses fenêtres, ses boutons... Mais en attendant... Codez bien !


[Retour en haut] / [Retour aux articles] [Article suivant]