Task Sequencing Language for Psion Xchange

See all articles from QL_DOC n10
Author(s): PSION Ltd.; Réal Gagnon
Publication: QL_DOC
Pub Details: QL_DOC n10 (Issue 10)
Date: June-July 1989
Pages: 9-12

In English: A French translation and adaptation of Psion's documentation for TSL (Task Sequencing Language), the keystroke-macro language of Psion Xchange, the integrated successor to Quill, Archive, Abacus and Easel. It lists the brace codes for special keys, the & commands for messages, labels, jumps, key tests and pauses, explains how to write a TSL program in Quill and export it as a _tsl file, walks through a six-line example that creates an Easel task and draws a 3D graph, and notes Xchange's memory and disk requirements.

Printed title: Task Sequencing Language pour Psion Xchange. The article below is in French, as printed in QL_DOC n10 (June-July 1989).


Ecrit par PSION Ltd., Traduction et adaptation QL_DOC

** Introduction

Nous avons vu dans le dernier QL_DOC, une introduction au programme XCHANGE de PSION. Celui-ci est en fait la dernière version des programmes QUILL,ARCHIVE,ABACUS et EASEL qui était livré à l’origine avec le QL. Les 4 programmes ont été réunis dans un seul, les 4 modules sont chapeautés par un autre appelé XCHANGE. Ce dernier gére les changements de module et l’échange d’information entre ceux-ci. XCHANGE possède son propre langage de programmation appelé TSL (Task Sequencing Language) qui permet de réaliser des opérations complexes à répétiton.

Le programme TSL est exécuté par son chargement à partir du menu principal de XCHANGE. La partie supérieur de l’écran sert alors au programme TSL pour donner des messages. Le programme est constitué d’une liste de séquence de touches appuyées. Lorsque que le programme TSL est exécuté, cette séquence est interprétée comme si on était en train d’appuyer ces touches sur le clavier. Par exemple, pour représenter les touches “a”, “b”, “c” on utilise simplement: abc

Notez que ceci signifie que les espaces apparaissant dans le programme TSL sont significatifs tout dépendant à quel moment le programme est exécuté à l’intérieur de XCHANGE. Tous les espaces sont interprétés comme si la touche ESPACE avait été appuyé au clavier sauf si l’espace se trouve à l’intérieur d’une commande TSL. L’espace sera ignoré ou interprété tout dépendant de ce que l’on fait.

** Les codes des TOUCHES pour programmes TSL

Plusieurs touches – ex. ENTER – ne peuvent être représenter avec la façon simple et directe vu ci-dessus. Pour des cas semblables, on utilise des codes spéciaux entourés d’accolades. La liste complète de ces codes est donnée ci-dessous. Prenez note que chaque programme faisant partie de XCHANGE n’utilise pas nécessairement tous les codes de cette liste.

Codes   Touches Equi.  Codes    Touches Equi.
---------------------------------------------
[cr]    ENTER          [lt]     curseur gauche
[esc]   ESC            [rt]     curseur droite
[sp]    ESPACE         [up]     curseur haut
[f1]    touche F1      [dn]     curseur bas
[f2]    touche F2      [bpr]    SHIFT+haut
[f3]    touche F3      [epr]    SHIFT+bas
[f4]    touche F4      [ult]    SHIFT+gauche
[f5]    touche F5      [urt]    SHIFT+droite
[f6]    touche F6      [bln]    ALT+gauche
[f7]    touche F7      [eln]    ALT+droite
[f8]    touche F8      [dlt]    CTRL+gauche
[f9]    touche F9      [drt]    CTRL+droite
[f10]   touche F10     [dult]   SHIFT+CTRL+gauche
[sf1]   SHIFT+F1       [durt]   SHIFT+CTRL+droite
[sf2]   SHIFT+F2       [dbln]   SHIFT+ALT+gauche
[sf3]   SHIFT+F3       [deln]   SHIFT+ALT+droite
[sf4]   SHIFT+F4       [tab]    TABULATE
[sf5]   SHIFT+F5       [btab]   SHIFT+TABULATE

** Commandes TSL

En plus des séquences de touches, on peut inclure des commandes spéciales à l’intérieur du fichier TSL. Chaque commande débute par le signe “&” suivi par une lettre identifiant la commande. Le “&” doit être le premier symbole sur la ligne.

Les commandes disponibles sont:

&c  Le texte suivant est un commentaire
    Similaire au REMark du SuperBASIC
    ex. &c Ceci est un commentaire
&d  Montre dans la fenêtre-contrôle le texte suivant
    ex. &d Ceci est un exemple
&e  Stoppe l'exécution d'un programme TSL
&g  Equivalent de INKEY$(-1) du SuperBASIC, le caractère
    appuyé sera testé avec la commande &=
&i  Equivalent de INPUT du SuperBASIC. Le texte
    terminé par ENTER est passé à la tâche courante.
&j  Saut à l'étiquette spécifié par la commande &j si on
    veut sauter à l'étiquette @BOUCLE1, on fait &j BOUCLE1
&p  Met en fonction ou hors fonction la fenêtre-contrôle
    permettant à la commande &d d'imprimer ses messages
    &p 1  fenêtre-contrôle en fonction
    &p 0  fenêtre-contrôle hors fonction
&w  Marque un temps d'arrêt dans la l'exécution d'un
    programme.
    ex. &w 20 marque un pause de 20 dixièmes de seconde
&x  Attend après une touche spécifique pour continuer
    l'exécution du programme.
    Cette commande différencie les minuscules/majuscules.
    ex. &x A attend que la touche "A" soit appuyée
&y  Même chose que &x sauf qu'aucune différence entre
    minuscule/majuscule n'est faite.
&=  Saut au point déterminé par l'étiquette si le
    caractère est identique à celui qui a été appuyé
    pour réponse à &g. le test différencie les
    minuscules des majuscules.
    Pour sauter à l'étiquette @BOUCLE1 si la dernière
    touche appuyée en réponse à &g était "2".
    &= 2 BOUCLE1

** Les étiquettes en TSL

Une étiquette marque un point das le programme TSL qui peut être visé par un commande de saut (ex . &j ou &=). L’étiquette doit débuter avec le symbole “@” et doit être le seul item sur la ligne. On ne doit pas inclure le symbole “@” lorsque l’on fait référence à cette étiquette avec une commande &j ou &=.

** Les caractères spéciaux

Les caractères suivants ont une signification spéciale pour le TSL.

&  marque une commande       @  marque une étiquette
[  débute l'équivalent d'une touche spéciale
]  finit l'équivalent d'une touche spéciale
^  permet d'insérer un caractère spécial

Le dernier caractère dans la liste permet d’utiliser n’importe lequel des 5 caractères spéciaux sans sa signification spéciale, c’est-à-dire les caractères &,@,[,] et ^ peuvent être utilisé sans problème si vous les écrivez comme suit: ^& ^@ ^[ ^] ^^

** Création d’un programme TSL

On peut créer un programme en TSL avec pratiquement n’importe lequel éditeur de texte, à condition qu’il soit possible de sauver le fichier en ASCII pur, sans caractère de contrôle spécial et avec le caractère LF ou CR comme fin de chaque ligne.

Si vous utilisez QUILL pour écrire le programme, vous ne pouvez pas sauver le programme avec la commande SAVE. Au lieu vous utilisez l’option EXPORT qui se trouve dans la section-commande FILES. Rappelez-vous que si vous ne spécifiez pas d’extension au nom de fichier l’extension “_exp” sera ajoutée automatiquement, donc n’oubliez pas de fournir l’extension “_tsl” à votre fichier avant la sauvegarde.

Pour sauvegarder, par exemple un programme TSL appelé monprog_TSL je ferais les touches suivantes dans QUILL.

F3 O F E monprog_tsl ENTER

** Démonstration d’un programme TSL

Avec QUILL, tapez les 6 lignes qui suivent sans les numéros de fin de ligne.

[f3]neas[cr]DEMO[cr]                          (1)
&d Démonstration du T.S.L. (2)
&d disponible seulement sur PSION XCHANGE (3)
salgamst=1000+800*cos(cell/4)[cr] (4)
salgthor=1000+500*sin(cell/4)[cr] (5)
[f3]v[cr]3[cr] (6)

Puis faites les touches suivantes:F3 O F E demo_tsl {ENTER} On retourne à XCHANGE avec F6 (ou SHIFT F1). On fait F3 T pour démarrer un programme TSL, on donne le nom DEMO, on s’assied et on regarde…

La ligne 1 démarre une tâche avec XCHANGE. Si on décompose la ligne nous avons

[f3]  va en mode commande XCHANGE
n     NEW nouvelle tâche
eas   on veut EASel
[cr]  on appuie sur {ENTER}
DEMO  est le nom de la tâche
[cr]  on appuie sur {ENTER}
      Les lignes 2 et 3 mettent à l'écran
      un message.
      Les lignes 4 et 5 sont les équations
      servant à créér nos graphiques.

[f3]  mode commande de EASEL
v     VIEW
[cr]  {ENTER} pour ALL
3     avec le style 3 (en 3 dimensions)
[cr]  {ENTER}

NDLR: Au départ, XCHANGE n’était disponible que pour l’ordinateur THOR qui est un ordinateur QL compatible de haut de gamme. Cependant, il y a une version maintenant qui fonctionne très bien sur un QL avec au moins une extension de mémoire de 256K et un lecteur de disquette, les microdrives ne suffisent plus à la tâche car le programme XCHANGE occupe 180K à lui tout seul! Le TOOLKIT II est également essentiel au bon fonctionnement du programme.