Le Basic de l'EXL 100

IL va bientôt falloir plusieurs mains pour compter les ordinateurs français sur ses doigts. L'EXL 100, un des derniers venus, apporte une bonne dose de nouveauté. Et son Basic, s'il n'est pas très standard, n'en présente pas moins des caractéristiques intéressantes.

La conception de l'EXL 100,par la CGCT (Compagnie Générale de Constructions Téléphoniques), a été pensée avec un grand sens pratique: le nombre de fils est réduit au minimum. Il en subsiste précisément trois, celui de l'alimentation (incluse dans le boîtier), le cordon Péritel et le raccordement au lecteur decassettes (sans télécommande, malheureusement).
La conversation entre le clavier ou les poignées de jeu et l'unité centrale (bloc indépendant) se fait par clins d'oeil invisibles. Entendez le dialogue est assuré par liaisons infrarouges. Il n'est donc plus nécessaire de rester attaché à l'ordinateur, on peut travailler - ou jouer -confortablement installé sur un canapé.
Pour les jeux, des cartouches enfichables sont disponibles. Certaines utilisent très judicieusement le synthétiseur sonore inclus dans l'unité centrale.

LA BOSSE DES MATHS
Le Basic se présente, lui aussi, sous la forme d'une cartouche de mémoire morte. L'absence de langage résident garantit la souplesse de l'interpréteur. Et on peul espérer que d'autres langages se présenteront sous cette forme, ou même que l'actuelle version du Basic sera corrigée pour combler certaines lacunes.

Dès l'ouverture de la notice, les origines du Basic se révèlent connues une profusion de CALL nous rappelle le langage d'un certain CC-40 de Texas Instruments. Il s'agissait d'un ordinateur de "cartable", disparu peu après sa naissance (vers juin 1983), et qui avait pourtant l'aspect sérieux.
La version de l'EXL 100 laisse un peu à désirer dans les domaines graphique et sonore. Mais, pour le reste, c'est du grand art: des instructions riches et puissantes et une force de calcul que n'ont pas toujours les "gros".
Tout commence très fort avec les calculs directs au clavier. Pas besoin de l'habituel PRINT ou d'un point d'interrogation pour afficher les résultats d'une quelconque opération. On les écrit directement, comme sur une calculatrice ou un ordinateur de poche. La touche SHIFT opère en bascule et un indicateur apparaît en haut de l'écran, sur une ligne d'état. L'appel de contrôle, de fonction et de mode angulaire (RAD, DEG ou GRA) ont, eux aussi, leurs indicateurs (encore des airs d'ordinateur de poche). La touche de fonction sert à introduire rapidement les mots clés du Basic qui sont inscrits sur un cache-clavier.
Les calculs se font sur 14 chiffres, 10 seulement étant affichés. Pour vérifier ou établir de telles informations, j'utilise un truc l'exécution d'un test d'égalité sur une division qui ne tombe pas juste. Sur l'EXL 100, par exemple, j'ai frappé au clavier PRINT 2/3'= 0.66666666666667. L'instruction PRINT est facultative ici. Le résultat apparaît : - 1, soit vrai. Il indique que cette égalité, dont le deuxième terme est formé de 14 chiffres, est vérifiée alors qu'avec moins de chifres significatifs, elle ne l'était pas. Et pour connaître le nombre de décimales affichées, il suffit de taper PRINT 2/3. Ici, le résultat est 0.6666666667. Soit 10 chiffres significatifs. C'est donc une bonne précision dans les calculs décimaux. En notation scientifique, ça ne se passe pas mal non plus les calculs couvrent la gamme de 1E-128 à 9E+127. Beaucoup d'autres ordinateurs sont encore limités à 1E99, quand ce n'est pas 1E38. Dans les programmes, les nombres sont destinés à être manipulés grâce à des variables. L'EXL 100 accorde une grande souplesse à leur nom de baptême. Chacun peut s'étendre jusqu'à 15 caractères alphanumériques. On ne sera donc pas limité dans les identificateurs et les noms de variables pourront être vraiment parlants. Dans un même programme, le nombre d'identificateurs est limité à 95. Les variables alphanumériques atteignent leur trop-plein à 75 caractères. Pour en afficher davantage, il faut concaléner en utilisant le signe "&", au lieu de l'habituel ";". Mais on ne peut pas dépasser trois juxtapositions si les variables sont remplies au maximum. II n'y a pas que la concaténation qui se pratique de manière originale. Le "saucissonnage" des chaînes de caractères a lieu grâce à SEG$. Il remplace à lui seul les trois trancheurs classiques LEFT$, MID$ et RIGHT$. Ce qui revient à dire qu'il agit exactement comme MIDS, les deux autres n'ayant pas d'équivalent.


ON PEUT CREER SES CARACTERES
Les chaînes de caractères sont aussi traitées par RPT$ pour la répétition et POS pour la recherche de « maillons » dans une chaîne. La conversion d'alphanumérique en numérique est possible par VAL. Elle est complétée par NUMERIC qui vérifie la validité numérique d'une chaîne.
Les caractères accentués de la langue française existent sur le clavier, mais ils ne sont pas reconnus par le Basic qui ne sait les utiliser qu'à partir de leur code (non standard) avec CHR$. Par ailleurs, CALL CHAR donne la liberté de créer des caractères quelconques par codage hexadécimal d'une matrice de 8 sur 10 points.
Avant de rentrer plus avant dans l'examen des instructions, il faut préciser que les lignes d'un programme sont numérotées en dessous de 32766 (codage 15 bits), et qu'un espace est obligatoire après le numéro. C'est cet espace qui distingue le numéro de ligne d'un programme du premier terme d'une opération.
Après chaque instruction, un autre espace est obligatoire, sauf en cas de parenthèse. Ce dernier point est plus gênant car la plupart des Basic s'en dispensent. Une ligne ne peut dépasser 80 caractères. Mais il est vrai qu'avec des lignes plus longues, les programmes sont peu lisibles.
Les fonctions mathématiques se montrent à la hauteur de la précision numérique. Un jeu complet de fonctions trigonométriques s'attaque aux angles, dans les trois modes disponibles (degrés, radians, grades). C'est plutôt rare.
Les logarithmes népériens n'ont pas éclipsé les logarithmes décimaux, si souvent oubliés dans les Basic. Les subtilités du générateur de nombres aléatoires
feront le délice des inventeurs de jeux la fonction RND s'accompagne de RANDOMIZE qui initialise une séquence vraiment aléatoire et qui, si elle est suivie d'un paramètre de 1 à 65535, déclenche la production de séquences reproductibles. Enfin, la fonction INTRND(n) délivre des nombres aléatoires entiers compris entre I
et n, évitant ainsi de passer par les formules d'arrangement à partir d'un nombre fractionnaire.
Les instructions d'introduction de données à partir du clavier foisonnent. Par exemple, KEYS et CALL KEY surveillent l'appui des touches. Avec la seconde, on remplit deux variables, l'une contenant le code ASCII de la touche enfoncée, l'autre l'indicateur d'état qui précise si la même touche a été actionnée plusieurs fois. L'instruction ACCEPT se comporte comme un INPUT intelligent. Elle est suivie de précisions de contrainte BEEP (un signal sonore d'attente), VALIDATE (une restriction du type de caractères acceptables - alphabétiques, majuscules, numériques, alphanumériques, etc) ou NULL (définissant la valeur introduite si seul un retour chariot est enfoncé).
Le PRINT est bien loti, lui aussi. Il gère les formats de sortie avec USING, complété par IMAGE qui prédéfinit un format sur une ligne de programme en y incluant éventuellement du texte. PAUSE suspend l'affichage pendant
une durée déterminée en évitant le recours à des boucles de temporisation et LOCATE précise les coordonnées d'apparition à l'écran.

PAS DE MODE TRACE
Dans le jeu d'instructions, on trouve aussi ELSE, complémentaire de IF...THEN, ON ...GOTO et ON...GOSUB. Un original ON BREAK décide de la marche à suivre en cas d'interruption de l'exécution, et BREAK, seul, se comporte comme une instruction à part entière en définissant des points d'arrêt que UNBREAK supprime. En l'absence de mode Trace, cela aide à la mise au point. On trouve encore un ON ERROR et même un ON WARNING pour traiter les erreurs moins graves.
De nombreuses instructions sont gérées comme des procédures par le Basic et sont appelées par CALL. On y trouve la maigre panoplie servant à réaiser des graphismes : PLOT qui opère point par point, ou LINE qui trace une ligne droite. Il n'est donc pas simple de dessiner de beaux ronds ou de remplir des figures. Et pas un seul petit lutin ne se promène à l'écran: Le Basic de l'EXL 100 n'a pas assez évolué dans ce domaine par rapport à celui du CC-40.
Le domaine des sons est encore plus désertique aucune possibilité de création musicale. L'exploitation du synthétiseur vocal incorporé s'apparente à un exploit. Le CALL SPEECH précède des files de caractères hexadécimaux dont le rôle n'est pas précisé par la notice. Il faut explorer à tâtons, après avoir corrigé l'erreur du seul exemple de programme livré par le manuel.
D'autres CALL autorisent le discours en langage-machine (CALL PEEK, POKE, EXEC). Mutisme de la notice ici encore. Elle recommande simplement de se référer à un bon ouvrage sur la programmation du microprocesseur TMS 7020 et c'est plutôt difficile (voire impossible aujourd'hui) à trouver.
Comme pour se faire pardonner ces sérieuses lacunes, CALL peut appeler des procédures définies par l'utilisateur. Celles-ci sont créées à la suite de SUB et terminées par SUBEND et SUBEXIT. Elles gèrent des variables locales indépendantes de celles exploitées par le programme principal, et acceptent le passage de paramètres.
Cela donne accès à des possibilités qu'ignore habituellement le Basic, comme la récursivité. Et le programmeur pourra s'en servir pour réaliser des instructions qui manquent à l'Exelbasic, et se définir son propre langage, un peu comme avec Forth. Des accessoires de "EXL 100" seront bien utiles dans ce domaine : les cartouches de mémoire vive auto-alimentées. Elles stockent des programmes en offrant une sauvegarde et une lecture quasi instantanées. Facile donc de se réserver une cartouche pour y inscrire des procédures complétant le Basic. Un langage à la carte, en quelque sorte.
Le Basic de l'EXL 100 présente donc les caractéristiques intéressantes qui étaient déjà disponibles sur le CC-40 et se mariaient parfaitement avec ce type d'ordinateur (une seule ligne d'affichage à cristaux liquides). Les ajouts propres à l'EXL 100, en particulier le graphisme et les sons, s'avèrent décevants. Consolation et lueur d'espoir : le Basic est en cartouche et donc, facilement améliorable. Sa structure et le foisonnement de CALL s'y prêtent parfaitement.

Xavier de LA TULLAYE, LIST N°7 de Mars 1985

Vous êtes ici : Documents / Exelvision vue par les médias / Le Basic de l'EXL 100

Sans accord écrit préalable de ma part, vous n'êtes pas autorisé à distribuer, modifier, transmettre, réutiliser ou rediffuser le contenu de ce site.