Bienvenue dans la doc de Fast Reader!

Le but de cette documentation est de décrire brièvement l'utilisation du programme ainsi que de répertorier toutes les commandes disponibles.

Table des matières

  1. Premiers pas
    1. Installation
    2. Configuration requise
    3. Utilisation (touches)
  2. Formatage du texte
  3. Tabulations, page break, caractères spéciaux, ...
    1. Tabulations et sauts de page
    2. Caractères spéciaux
  4. Les commentaires
  5. Les styles
  6. Les commandes
    1. Introduction
    2. Description
    3. Quelques commandes
  7. Les macros
    1. Introduction
    2. Récursivité des macros
    3. Limites des macros
  8. Pour aller plus loin
    1. Modes de synchronisation de l'écran
    2. Mode lent
    3. Macros avec paramètres
  9. Keylinks (liens hypertexte)
  10. Les fenêtres
  11. Menus et mise en page avancée
    1. Macros de début de page ($;)
    2. Zone d'écran
  12. Index des commandes
  13. License

Installation

Le lecteur seul (Fast Reader) ne requiert pas d'installation à proprement parler, car il suffit d'envoyer le fichier fast.89z à votre TI. Cependant, vous pouvez également envoyer le groupe Text Walker, incluant l'éditeur, un menu custom pour utilisateurs de TI89, et un menu "shell" pour gérer vos fichiers. Dans ce cas, veuillez suivre la procédure d'installation décrite dans la doc de Text Walker.
Note: Les étapes qui suivent concernent l'utilisation du lecteur seul, sans Text Walker installé. Cela peut toujours s'avérer utile à savoir si vous souhaitez à l'avenir distribuer votre texte en conjonction avec Fast Reader (car je ne pense pas que vous incluerez Text Walker entièrement dans ce cas-là, non?).

Ensuite, pour utiliser le programme, c'est assez simple. Il requiert en argument le nom du fichier texte à ouvrir. Par exemple, pour ouvrir le texte nommé test, vous devrez taper la ligne suivante:
fast("test")

Configuration requise

Matériel: TI-89, TI-92+ ou V200, compatible avec toutes les versions du matériel (HW1, HW2, HW3).
Logiciel: Testé sur AMS 2.xx. Devrait fonctionner sur les autres. Cependant, ce sera certainement incompatible avec PedROM, mais cela reste à tester...
Mémoire: 27ko de RAM, 1.5ko sur la pile. Ces valeurs sont indépendantes du texte ouvert.

Utilisation

Pour commencer, je vous suggère d'utiliser l'éditeur (edit.89z) fourni car il vous permettra d'insérer facilement les caractères spéciaux requis.
Cependant, rien ne vous y oblige; vous pouvez également utiliser l'éditeur standard (APPS, 8, 3 pour créer un nouveau document) inclus à votre calculatrice.

Nous allons maintenant créer un texte de base pour tester les fonctionnalités du lecteur. Créez un texte nommé "test" et insérez-y la ligne suivante:

Ceci est un test

A présent, tapez la ligne suivante dans l'écran HOME:

fast("test")

Note: N'oubliez pas les guillemets. Si vous utilisez Text Walker, appuyez sur DIAMOND+1 pour démarrer le lecteur.

Le lecteur devrait démarrer et vous afficher la ligne au sommet de l'écran. Quittez-le avec ESC.

Voici la liste des touches à connaître pour utiliser efficacement Fast Reader:
ESC: Quitter
RETOUR ARRIERE: Afficher le numéro de version
APPS: Revenir à la dernière page visitée la fois précédente (après avoir quitté). Ne fonctionne que si le programme fast n'est pas archivé!
Un nombre puis ENTER: Affiche la page correspondante. Si le numéro fait trois chiffres, il n'est pas nécessaire d'appuyer sur ENTER.

Vous pouvez maintenant retourner dans l'éditeur, car dans le prochain chapitre, nous allons voir comment formater le texte (c'est-à-dire le mettre en gras, le souligner, etc.).


Formatage

Pour formater votre texte, Fast Reader utilise ce qu'on appelle des codes format. Cela désigne une séquence de caractères spéciaux insérés dans votre texte pour indiquer au lecteur ce qu'il doit faire. Ces caractères doivent être suffisamment spéciaux pour ne pas se mélanger avec ceux que vous utilisez pour écrire des textes de tous les jours. Mon choix s'est porté sur le copyright ©. Facilement accessible au clavier, c'est le caractère utilisé pour définir les commentaires dans les programmes TI-BASIC. Sur TI-89, appuyez sur DIAMOND+) pour insérer ce caractère.
A la suite de ce caractère, vous pouvez indiquer au lecteur qu'est-ce que vous voulez modifier dans le format, ainsi que la nouvelle valeur à attribuer. Cela se fait par l'intermédiaire d'une lettre (I pour italique par exemple), puis d'un chiffre (généralement 1 pour activer, 0 pour désactiver, mais parfois des options supplémentaires prenant les valeurs 2 et plus sont disponibles).

Voici un tableau décrivant les formats possibles:

Lettre + désignation Valeurs possibles Exemples
F (Fonte) 0 à 2 (petit, moyen, grand) ©F0 (petit), ©F1 (moyen), ©F2 (grand), ©F1 fonte par défaut
G (Gras) 0 à 3 (aucun, gras, coulé, ombré) ©G1 en gras, ©G2 en coulé, ©G3 en ombré, ©G0 retour à la normale
I (Italique) 0 ou 1 (désactivé, activé) ©I1 en italique, ©G0 retour à la normale
S (Souligné) 0 à 4 (aucun, simple, double, +2 pour les mots uniquement) ©S1 souligné, ©S2 double, ©S3 simple, mais que les mots, ©S4 double, que les mots, ©S0 retour à la normale
C (Couleur, ou çurlignement) 0 à 4 (noir, normal, surligné, tramé 1, tramé 2) ©C0 le texte est écrit en blanc sur noir, ©C1 normal, ©C2 la ligne est surlignée entièrement, ©C3 le texte est tramé (clair), ©C4 le texte est tramé (foncé), ©C1 retour
A (Alignement) 0 à 2 (gauche, centré, droite) ©A1Titre (centré)
©A0Texte aligné à gauche (par défaut)
Important: Ceci ne fonctionne pas durant les macros de dessin de page (pas dans tous les cas, insérer un retour à la ligne vide avant la fin de la macro accroît vos chances de succès) ni si vous ouvrez plusieurs fenêtres (le passage de l'une à l'autre foire complètement). J'avoue que dans les deux cas la raison m'est inconnue...
W (Wordwrap) 0 à 5 Contrôle le word wrapping et la synchronisation de l'écran. Il s'agit d'un réglage avancé que l'on verra plus tard. Pour l'instant, utilisez ©W2 pour désactiver le word wrapping (les mots seront coupés en fin de ligne) et ©W3 pour l'activer.

Tous ces propriétés de formats sont bien entendu indépendantes. Vous pouvez mettre un texte en gras et en italique en insérant les séquences correspondantes pour les activer. De plus, vous pouvez modifier le format à n'importe quel endroit dans la ligne, sans limitation.
Continuons donc le texte d'exemple en insérant ceci...

©F2©S1Ceci est un test©S0
©F1
Essayez les ©I1combinaisons©I0 de ©G1formats©G0 pour voir...

Dans le prochain chapitre, on va attaquer les choses sérieuses :)
Ne vous inquiétez pas si vous ne comprenez pas tout. Vous pouvez simplement lire la doc une fois en surface de manière à savoir ce qu'il est possible de faire avec Fast Reader. Et lorsque vous voudrez utiliser telle ou telle fonctionnalité, alors vous pourrez vous y reporter, car tant que vous n'en avez pas l'utilité, vous aurez plus de peine à la comprendre...


Tabulations, page break, caractères spéciaux, ...

Le caractère \ est spécial, tout comme le ©. Vous ne pouvez généralement pas l'utiliser tel quel à moins d'en mettre deux à la suite (\\ sera affiché comme un seul slash \). Il est donc également suivi d'une information destinée au programme.

Tout d'abord, il permet d'insérer une tabulation, pour autant qu'il soit suivi d'un 't' (\t). Exemple:

\tPremière ligne\tProchaine tabulation

Note: Il est possible de définir la taille des tabulations, comme décrit dans le chapitre sur les commandes.
Ensuite, il permet d'insérer un saut de page s'il est suivi d'un p (\p), le texte continuera à la prochaine page.

Première page \pDeuxième page

Finalement, vous pouvez utiliser ce caractère avant un retour à la ligne pour ne pas qu'il soit pris en compte par le lecteur. Je m'explique. Lorsque vous insérez beaucoup de codes de format ou autres à la suite, cela peut rendre votre texte assez moche et difficile à lire. Vous voudrez donc bien l'aérer un peu en mettant des retours à la ligne. Mais voilà, ces retours à la ligne se voient dans le texte. Et c'est là qu'intervient le \ seul. Le retour à la ligne ne se verra pas à l'écran. Je pense qu'un exemple plus concret est le bienvenu. Si j'écris

Hello \
World

Cela revient au même que d'écrire:

Hello World

sur la même ligne!

Caractères spéciaux (\xxx)

Il est possible d'insérer des caractères spéciaux dans le texte. Vous aurez besoin de cette possibilité si vous souhaitez utiliser un caractère déjà utilisé pour un code de format, comme le ©. Pour cela, c'est très simple, mettez un slash suivi du code du caractère à insérer. Par exemple:

Ce texte est \169 par moi

Et comment on sait que le copyright a le numéro 169? Il suffit d'utiliser la fonction ord (intégrée à la TI) en passant entre guillemets le caractère dont vous voulez obtenir le code. Exemple:

ord("©")

Ceci donnera comme résultat 169. Vous pouvez donc utiliser \169!


Les commentaires

Qui a dit que c'était inutile?
Comme vous allez le voir par la suite, les possibilités offertes par Fast Reader étant assez vastes, on peut se retrouver avec des suites de codes de format, commandes et macros qui auront vite fait de vous faire perdre la boule si vous n'y mettez pas un peu d'ordre.

Evidemment, les commentaires seront affichés par l'éditeur de texte, mais vous ne les verrez pas au moment de la lecture avec Fast Reader...
Là aussi, un caractère spécial: une petite étoile ×, accessible depuis le menu CHAR, 2 (Math), puis l'option 'L'. Son code est 215.

Important: Lorsque j'indique le code d'un caractère spécial, cela signifie que si vous souhaitez l'utiliser sans qu'il ne soit pris pour un caractère spécial, vous pouvez écrire \215 (où 215 est le code à remplacer par la valeur appropriée). Vous pouvez également vérifier que le caractère que vous avez trouvé est bien le bon, en tapant la ligne suivante sur l'écran HOME:

char(215)

Remplacez bien entendu 215 par le code du caractère que vous recherchez. Si vous ne trouvez pas un cractère spécifique, vous pouvez utiliser l'éditeur fourni (edit), et appuyer sur CATALOG puis taper le code de caractère (n'oubliez pas de désactiver éventuellement l'alpha-lock), suivi d'ENTER si le code fait moins de trois chiffres.

Un commentaire commence avec ce caractère et se termine également avec lui. Exemple:

× Ce texte ne sera pas
visible au moment de la
lecture avec Fast Reader ×

On peut également aérer les commentaires en mettant un retour à la ligne juste à la suite. Celui-ci ne sera pas pris en compte. Par contre, pour les autres lignes, c'est obligatoire. Exemple:

× Cette partie définit la police à utiliser (grande, ombré, souligné) ×
©F2©G3©S1\
Voici le titre

Styles

Les styles vous permettent de définir des formats à réutiliser suivant les situations. Les styles contiennent les informations suivantes: fonte, effet (gras, ...), italique, soulignement, couleur.

Pour définir un style, c'est assez simple, mais il y a un nouveau caractère spécial à retenir. Notez que ces caractères spéciaux sont tous accessibles depuis le menu F2 dans l'éditeur inclus à Text Walker. Cette fois, il s'agit d'une flèche vers le haut, utilisé pour le symbole SHIFT. Il est accessible depuis le menu CHAR, 4 (Special), puis l'option 'E'. Le code du caractère est 27.
Important: Ne disposant pas de ce caractère dans le charset que j'utilise ici, je l'ai remplacé par un ^ dans l'exemple suivant, mais vous devrez taper le bon caractère sur TI pour que cela fonctionne!
Pour stocker le format courant sous forme de style, il suffit d'écrire: ^=x où x est le numéro de style entre 0 et 9 (vous pouvez en stocker jusqu'à 10). Pour appliquer (utiliser) un style précédamment sauvé, rien de plus simple: ^x (sans le égal). Exemple:

× Changement de police (grand + souligné) ×
©F2©S1
× On stocke ce format dans le style n°1 pour plus tard ×
^=1
× Le style est stocké, retour à la normale ×
©F1©S0
Texte écrit en petit
× Maintenant on rappelle le style grand (n°1) ×
^1
Ce texte sera écrit en grand!

Les commandes

La plupart des fonctionnalités de Fast Reader se trouvent dans les commandes, car c'est un système relativement simple et uniforme à l'utilisation. Toutefois, cela demandera peut être un peu de temps avant de bien en comprendre le fonctionnement.
Cette première section décrit le principe ainsi que les commandes les plus courantes. Vous trouverez à la fin de cette documentation un chapitre regroupant toutes les commandes possibles, chacune naturellement accompagnée d'une description.

Tout d'abord, il faut savoir qu'il y a de nouveau un caractère spécial en plus exprès pour les commandes! Ce caractère est un j à l'envers, utilisé pour les nombres complexes (2ND+CATALOG sur TI89, code 151).

Les commandes sont plus complexes que les éléments vus précédemment. Généralement, elles ont besoin de plus d'un paramètre pour fonctionner. Un paramètre (ou argument) est une information, donnée sous forme de nombre ou de texte, permettant à une commande de savoir quoi faire.
Si on prend par exemple une commande dessinant une image, il faudra bien lui indiquer au moins le nom de l'image à afficher, sinon ça ne sert à rien... Il y a également des paramètres supplémentaires qui pourraient entrer en compte dans le dessin de l'image, comme par exemple de spécifier où dessiner l'image sur l'écran...

Pour appeler une commande, il y a d'abord le caractère 'j' vu ci-dessus, puis un caractère représentant la fonction à appeler (un seul), et les paramètres suivent. Prenons la fonction qui dessine une image, dont la lettre est P (pour picture), voici comment on pourrait y faire appel:

jPimagej

Note: Encore une fois, j'ai remplacé le vrai caractère par un 'j', mais il va de soi que si vous tapez ceci sur TI, il faudra utiliser le bon caractère!
Maintenant, la même chose mais en spécifiant les positions par deux nombres (0,0):

jP0,0,imagej

Nous verrons plus tard comment sont codées les positions à l'écran.

Après cet exemple, on en concluera que les paramètres sont séparés d'une virgule et qu'ils sont généralement optionnels. En effet, l'appel à la commande 'P' fonctionne dans les deux cas cités comme exemple (mais elle ne fera pas la meme chose).

Analyse des paramètres (arguments)

Les paramètres commençant par un chiffre sont traités comme des nombres, et ceux qui commencent par une lettre ou un signe de ponctuation seront traités comme du texte. En général, la plupart des paramètres que vous utiliserez seront des nombres, mais dans certains cas, vous aurez à entrer du texte, comme pour le nom de l'image notamment.

Voici une petite explication sur le système de coordonnes utilisé. Une position est définie à l'aide de deux nombres, x,y. La composante x est horizontale tandis que la composante y est verticale. Le point 0,0 désigne le sommet à gauche de l'écran. En augmentant x, vous déplacerez un point vers la droite, et en augmentant y, vers le bas.
L'unité utilisée est le pixel. C'est la plus petite unité possible sur un écran et cela représente l'un des "points" que vous pourrez apercevoir en observant attentivement l'écran.
L'écran de la TI-89 fait 160 par 100 pixels, ce qui signifie que la position maximale (en bas à droite) sera 159,99. Pour la TI-92+ et la V200, l'écran fait 240 par 128 pixels, ce qui donne une position maximale de 239,127.
Sur TI-89, vous pouvez donc placer une image aux positions 80,50 et le coin de celle-ci se trouvera pile au centre de l'écran.

Lorsqu'un paramètre de type nombre n'est pas spécifié, les positions actuelles du curseur* sont prises à la place.
* Le curseur est l'endroit où le texte est en train d'être dessiné. Cela commence généralement au sommet à gauche de l'écran puis descend au fur et à mesure que la page se remplit.
Par exemple, si le curseur se trouve encore au sommet à gauche de la page (positions 16,10 par exemple), le fait d'écrire: jPimagej revient à écrire jP16,10,imagej avec les deux paramètres omis remplacés par cette position. L'image sera donc cadrée dans votre texte, ce qui est voulu dans la majorité des cas.

Vous pouvez également spécifier des positions relatives, comme "20 pixels à droite du curseur" ou "10 pixels plus haut que le curseur". Vous n'avez qu'à précédé le nombre entré d'un - ou d'un + pour cela.
Par exemple, si votre curseur se trouve toujours à 16,10, le fait d'écrire jP-10,+3,imagej revient à écrire jP6,13,imagej avec le calcul des coordonnées relatives, qui donne bien 16-10,10+3.

Enfin, un paramètre peut être omis en plaçant directement une virgule derrière. Par exemple, si vous écrivez simplement jP+5,,imagej dans l'exemple ci-dessus, la position y (non-spécifiée) sera remplacée par la position du curseur. Cela aura bien l'effet voulu: dessiner l'image 5 pixels à droite du curseur...
Note: Dans ce cas-là, on aurait pu écrire jP+5,imagej ou même jP+5imagej. L'interpréteur est assez souple. Ainsi, il sera fréquent avec la commande 'C' déplaçant le curseur d'écrire jC+30j (déplacer le curseur 30 pixels à droite) ou jC,-10j (déplacer le curseur 10 pixels vers le haut.
Important: L'ordre des paramètres indiqué n'est pas interchangeable...

Il est possible d'appeler plusieurs commandes avant de refermer le j. Il suffit de les séparer d'un |. Par exemple: jC0,0|M8j exécutera la commande 'C' puis 'M'. Cela vous fait économiser un caractère et c'est un peu plus joli que d'écrire jC0,0jjM8j...

Description des commandes

La définition d'une commande est ce que l'on appelle le prototype. Cela décrit de manière simple la syntaxe à utiliser, les paramètres requis, optionnels, etc.
Prenons le prototype de la commande 'C' pour exemple.

 C[x][,y]

Cela signifie que la commande C (alias pour Curseur) demande deux paramètres: x et y. Il s'agit bien entendu de la position où placer le curseur. Lorsque ceux-ci sont entourés de crochets [], cela indique qu'ils sont optionnels, donc que vous pouvez les oublier si vous voulez. Mais observez bien; la virgule se trouve entre crochets avec y. Ce qui signifie que si vous voulez spécifier y, vous devrez mettre la virgule, mais sinon ce n'est pas obligatoire. Dans ce cas, cela donnerait jC,10j -> x omis.

Quelques commandes

Comme déjà dit plus haut, ici vous ne trouverez que les commandes de base les plus courantes. Un chapitre à la fin de cette documentation y est consacré, les répertoriant et les décrivant toutes.
Important: Ne confondez pas les minuscules et les majuscules car l'effet des commandes n'est pas du tout identique!

 C[x][,y]

Alias: Curseur / Cursor
Paramètres: x et y: positions où déplacer le curseur
Description: Déplace le curseur sur l'écran. Le texte suivant sera alors dessiné à l'endroit spécifié. Utile pour la mise en forme avancée des pages.

 H[espacement]

Alias: Hauteur / Height
Paramètres: espacement: espacement après chaque paragraphe
Description: Cette commande règle l'espacement vertical supplémentaire qui est inséré à la fin de chaque paragraphe (un paragraphe est terminé par la page ENTER).

 p[x][,y][,]nom_image

Alias: Picture
Paramètres: x,y: positions où dessiner l'image (généralement pas utilisées). nom_image: nom du fichier image à ouvrir
Description: Cette commande dessine une image, qui sera incorporée à la ligne courante si vous ne spécifiez pas d'autres positions. Dans le cas contraire, l'image sera utilisée comme "arrière-plan". Attention cependant car le texte est dessiné en inversé donc un mélange avec l'image d'arrière-plan peut s'avérer plutôt moche. Dans ce cas-là, dessinez l'image après le texte.

 P[x][,y][,]nom_image

Alias: Picture
Paramètres: x,y: positions où dessiner l'image (généralement pas utilisées). nom_image: nom du fichier image à ouvrir
Description: Avec un P majuscule, cette fonction n'opère pas de la même manière. L'image est dessinée, et l'espace qu'elle occupe lui est réservé. Le texte sera donc encadré autour d'elle. L'effet est très joli s'il est bien utilisé. Cependant, si l'image est dessinée par dessus du texte déjà écrit, le texte ne laissera pas la place à l'image. Ce qui veut dire que vous devriez dessiner l'image avant le texte.

 e[x][,y] expression

Alias: Expression
Paramètres: x,y: positions où dessiner l'expression (généralement pas utilisées). expression: clair non?
Description: Cette commande dessine une expression en la formatant comme sur l'écran HOME. Les mêmes remarques que pour la commande P (image) sont applicables, ainsi que la distinction entre la commande 'e' minuscule et 'E' majuscule.

 M[marge]

Alias: Marge / Margin
Paramètres: marge: marge à gauche
Description: Cette commande permet d'insérer une marge à la gauche du texte courant.

  [espacement_horizontal][,espacement_vertical]

Alias: Le caractère est un espace.
Paramètres:
Description: Cette commande définit l'espacement vertical et horizontal à laisser aux images (ou aux expressions et autres objets) lorsque le texte est formaté autour d'elles. Essayez, pour voir. Par défaut, les valeurs sont 4,0.

 T[espace]

Alias: Tabulation
Paramètres: espace: espacement entre chaque tabulation
Description: Cette commande configure l'espacement entre les tabulations. Une tabulation ne déplace pas simplement le curseur vers la droite, mais elle l'aligne pour qu'elle soit multiple d'un certain nombre. Et c'est ce nombre que vous définissez ici.

 -[activer]

Alias: ? (auto-indentation)
Paramètres: activer: 1 pour activer, 0 pour désactiver
Description: Cette commande active ou non l'auto-indentation de la première ligne d'un paragraphe. Cela revient à insérer un \t au début de chaque paragraphe...


Signets

Il est possible de définir des signets pour découper votre texte en chapitres. L'utilisateur pourra ensuite entrer un numéro de signet pour visualiser le chapitre correspondant.
La syntaxe est identique à celle de TxtRider, excepté que le caractère "Page Break" (code 12) peut se trouver n'importe où, pas forcément dans la marge de commande. Pour en insérer un, utilisez l'éditeur fourni et choisissez dans le menu F2 l'option Signet. Vous pouvez aussi utiliser l'éditeur standard, appuyer sur F2 et choisir "2: Page break".

Lorsqu'un signet est détecté, le mode signet est automatiquement activé. Le fait d'appuyer sur un nombre affiche Signet x dans la barre du fond. Lorsque vous appuyerez sur ENTER (ou que trois chiffres seront entrés), le lecteur ira au signet correspondant.
Mais comme Fast Reader ne lit pas le texte à l'avance, il ne peut pas savoir s'il contient un signet, car si ce n'est pas le cas, il utilise par défaut le mode page, et lorsque vous tapez un nombre suivi d'ENTER, cela affiche la page correspondante. Tout ça pour dire que si le premier signet ne se trouve pas sur la première page, le mode page sera utilisé. Pour forcer le mode signet, utilisez la commande 'N' sans argument.


Les macros

Il s'agit là d'une fonctionnalité un peu plus complexe, dont vous ne verrez peut-être pas l'utilité dans l'immédiat. Cependant, il pourrait être utile de connaître son existence car l'utilisation en est très simple.
Ici, un nouveau caractère spécial est utilisé: le dollar (code 36) accessible depuis le menu CHAR, 3 (Punctuation), puis l'option 4.

Note: M'étant rendu compte (trop tard) qu'une utilisation spéciale de ce caractère pouvait être trop restrictive pour certaines personnes (notamment les américains ou ceux qui rédigent des cours de comptabilité), j'ai ajouté une détection de cas spéciaux traitant le dollar comme un caractère normal (i.e. lorsqu'il n'est pas suivi d'un nombre). Ce qui fait que si vous écrivez par exemple "Coût: 10$", le dollar sera affiché correctement. Malheureusement, vous ne pouvez toujours pas l'utiliser tel quel dans une macro car le $ signifie la fin de celle-ci. Dans ce cas-là, écrivez \36. Sincèrement désolé des désagréments pouvant être engendrés...

Le principe des macros dans Fast Reader est de remplacer du texte ou du code par des symboles nommés $0 à $9. Ces symboles peuvent contenir n'importe quel texte, et lorsque vous y ferez appel, le lecteur "collera" le contenu du symbole sur le texte courant.

Je pense qu'illustrer cela par un exemple sera plus clair. Il y a 10 macros possibles. Celles-ci sont nommées $0, $1, $2, etc. jusqu'à $9. Taper $1 dans le texte revient donc à coller le contenu de $1. Mais il faut auparavant définir le texte que doit contenir $1, sinon rien ne se produira. Pour cela, il suffit d'écrire:

$1=le texte à mettre dans la commande$

La définition de la macro se termine toujours par un dollar $.
Voyons maintenant un petit exemple à taper dans l'éditeur. Les utilisations des macros peuvent être diverses; on pourrait imaginer remplacer le nom d'un personnage qu'on n'a pas encore trouvé, dessiner un objet spécifique à l'écran (dans ce cas-là, il faudra peut-être utiliser des paramètres, comme nous allons le voir plus loin).

× Le fameux Hello world :] ×
$1=Hello$
$1 world

Récursivité des macros

Vous pouvez appeler une autre macro à l'intérieur de l'une d'entre elles, cependant pas plus de 4 appels de profondeur ne sont autorisés.

× $1 fait appel à $2 ×
$1=Hello $2!!$
$2=world$
× Cela affichera donc "Hello world!!" ×
$1

Note très importante: Dans l'exemple précédent, n'allez pas imaginer modifier $2 au cours du texte pour afficher un autre texte à chaque fois. Les macros doivent être définies sur la première page et ne surtout pas être modifiées au cours du texte!
Si vous souhaitez changer le texte, vous pouvez simplement utiliser des paramètres, comme nous allons le voir plus bas. C'est encore plus simple que le bidouillage sus-cité.

Limite des macros

Fast Reader ne recopie pas simplement le contenu des macros dans le texte, car cela demanderait de créer un autre texte en parallèle (contenant les macros recopiées), ce qui n'est pas possible étant donné que la TI dispose de peu de mémoire... A la place, il utilise une méthode plus optimisée qui ne requiert pas de RAM temporaire: lors d'un appel de macro, la lecture est transférée à la définition de celle-ci et un retour à l'endroit précédent est exécuté lorsque la macro est terminée.
Ce qui signifie que vous ne pouvez pas inclure de macro (ou un paramètre de la macro) dans les commandes, les caractères spéciaux, etc. Par exemple, ceci n'est pas possible:

× Utilise la marge passée en argument ×
$1=jM$:j$
× Une marge de 10 ×
$1;10$

Pour aller plus loin...

Cette section contient des fonctionnalités plus exotiques, et pas vraiment susceptibles d'être utiles à tout le monde. M'enfin, ça ouvre Fast Reader à une multitude d'applications, donc ça peut être mal de les connaître...

Modes de synchronisation écran

Il y a trois modes de synchronisation d'écran. Ces modes sont réglables lorsque vous modifiez la propriété ©W en utilisant une valeur de 0, 2 ou 4, et en y rajoutant 1 si vous souhaitez activer le wordwrap. Cela donne donc:
©W0 -> mode 0, pas de wordwrap
©W1 -> mode 0, avec wordwrap
©W2 -> mode 1, pas de wordwrap
©W3 -> mode 1, avec wordwrap
©W4 -> mode 2, pas de wordwrap
©W5 -> mode 2, avec wordwrap

Le mode par défaut est le mode 1 (©W2). Ce mode est efficace lorsqu'il y a des pages très lentes à afficher, puisqu'il tente d'afficher déjà ce qu'il peut sur l'écran, un peu de la même manière que votre navigateur web, à la différence qu'il n'efface pas la page lorsqu'il commence à en afficher une nouvelle, mais remplace les informations localemement. L'effet est donc plus joli et donne l'impression que la page est chargée instantanément.

Cependant, certaines personnes préfèreront peut-être la vieille méthode (mode 0) qui consiste à n'afficher la page que lorsqu'elle est entièrement affichée. Cela élimine les scintillements éventuels qui pourraient survenir durant le chargement de la page et accélère très légèrement les transitions, mais n'a pas vraiment de réel intérêt en soi.

Finalement, le mode 2 est le mode lent, qui est traité dans le prochain chapitre.

Mode lent

Il est possible d'activer un mode spécial qui affiche les caractères un à un comme dans un jeu de rôles (RPG). Bienvenu dans les longs récits, ce mode permet d'utiliser quelques touches supplémentaires pour éviter de se retrouver bloqué dans le texte.

Touches:
ESC: Quitter immédiatement
CLEAR: Faire une pause
ENTER: Accélérer l'affichage de la page

Pour activer ce mode, il faut utiliser la commande ©W avec une valeur supérieure ou égale à 4. Une valeur de 4 désactivera le word wrapping, alors que la valeur 5 le laissera actif.

Macros avec paramètres

Vous pouvez également utiliser un système très basique de paramètres dans les macros (en fait, les possibilités correspondent un peu aux batchs de commandes DOS).
Le principe est simple. A l'intérieur d'une macro, vous écrivez $:, ce qui signifie "coller le prochain argument". Du côté de l'appelant, c'est légèrement plus complexe. Au lieu d'écrire par exemple $1, il faut écrire:

$1;paramètre 1;paramètre 2; ... $

Voyons un petit exemple. Ceci a pour but d'afficher "Salut X!" où X est passé en paramètre.

$1=Salut $:!$
$1;toi$

En l'occurence, vous aurez remarqué que notre Mr. X passé en paramètre s'appelle 'toi'. Le ; délimite les arguments entre eux, alors que le dollar termine la liste d'arguments. Dès lors, il n'est plus possible de coller de nouveaux arguments (en réalité, à partir de ce moment, le dernier argument est répété indéfiniment).

Voici un exemple de macro gérant un dialogue. Deux paramètres: l'un contenant le nom de la personne, l'autre contenant le texte prononcé par celle-ci.
Note: Ci-dessous, j'ai remplacé les j (commandes) par § pour éviter toute confusion.

$1=× D'abord, le nom, avec une marge de 6 pixels, en gras, suivi d'un : ×
©G1§M6§$:©G0:
× Puis le texte. Marge 12, normal ×
§M12§$:$

× Testons donc notre système de dialogues avec un truc bien niais ;) ×
$1;Richard;Ce marais ne m'inspire pas confiance...$
$1;Sam;Ne me dis pas que tu crois à ces histoires de fantômes toi aussi?$

Bien sûr, on peut aller plus loin. Imaginons que nous voulons afficher un passeport de type jeu de rôle. Le code nécessaire pour dessiner quelque chose d'agréable à l'oeil est plutôt assomant. C'est pourquoi on ne va pas le répéter à chaque fois!
Note: Ici à nouveau, j'ai remplacé les j (commandes) par § pour éviter toute confusion.

× Voici une brève description des macros définies:
   1. Passeport:
   $1;Nom;Niveau;Points de vie;Expérience;Argent$ ×

$1=× Dessin du cadre... (contrôle s'il reste au moins 36 pixels sur la page, dessine
un rectangle arrondi (type 33), une ligne séparatrice, et déplace le curseur) ×
§S36|R30,+4,130,+42,33|L30,+14,130,+14,1|C36,+6§\
× On va dessiner le nom puis le niveau (n12 par exemple) un peu plus loin ×
$:§C108§n$:
× Maintenant on ouvre une fenêtre pour dessiner le contenu ×
§W36,+3,130,+30,1§\
Pt vie: §C88§$:
Expér.: $C88§$:
Argent: $C88§$:
× Terminé. On détruit la fenêtre ×
§w1§$

× Après tant d'efforts, on peut y faire appel histoire de tester... ×
$1;Nom; 1;10/10;0;2000$

Vous ne comprendrez certainement pas tout ce qui est utilisé dans cette macro. Pour cela, il faut d'abord avoir lu TOUTE la doc! :P

Définir des touches personnalisées

Avec les 'keylinks', vous pouvez appeler une autre page ou un autre texte lorsque l'utilisateur appuie sur une certaine touche. C'est très utile si vous souhaitez créer un menu répertoriant plusieurs cours. Vous pourriez par exemple dire que les touches 1 à 5 sélectionnent l'un des documents, alors que la touche HOME permet de revenir à l'accueil.

Les keylinks utilisent la commande 'K', qui est décrite brièvement dans l'index des commandes en fin de document (mais pour le moment restez ici). Cette commande requiert trois arguments. Le premier est le code de la touche à appuyer, le deuxième (optionnel) est le numéro de page du document à accéder, et le troisième (optionnel lui aussi) est le nom du fichier à ouvrir. Comme vous vous en doutez, vous pouvez fournir soit le deuxième paramètre (va à une page dans le document courant), soit le troisième (ouverture d'un nouveau document depuis le début), soit les deux (ouvre un document à la page voulue). Voyons un exemple (n'oubliez pas de remplacer le j par la lettre des commandes):

jK1,10j

Lorsque l'utilisateur appuyera sur la touche 1, la page 10 sera affichée. Malheureusement, pour le code de touches, seules les touches numériques (0 à 9) peuvent être définies symplement. Pour utiliser les autres, il faut connaître leur code. Pour cela, vous avez deux possibilités: si vous disposez de clib (cl) ou de lib, il y a une fonction très simple qui peut vous retourner le code d'une touche pressée. Si vous ne disposez que de votre TI, c'est également possible mais le code est plus compliqué.

Utilisation de ces mini-programmes: tapez le contenu dans l'écran HOME, lancez-les puis appuyez sur la touche dont vous souhaitez obtenir le code. Le résultat sera retourné dans l'écran HOME.

cl(11):cr

Faites ceci si vous disposez de clib. Le résultat retourné sera quelque chose comme {277} si vous appuyez sur HOME. Le code de HOME est donc bien 277.

lib("#k=Keywait"):k

Si vous disposez de LIB, le résultat retourné sera celui de la touche appuyée.

Enfin, si vous n'avez aucune de ces deux librairies:

0->k:While k=0:getKey()->k:EndWhile

Le résultat retourné sera directement le code de la touche appuyée.
J'entends déjà d'ici de ceux qui me diront "Mais attention, dans certains cas ngetchx ne renvoie pas tout à fait la même chose que getkey". A ceux-là je répondrai que j'ai prévu le coup et que cela correspond pile-poil dans Fast Reader (afin de garder la compatibilité avec la TI-92+ et la V200). D'ailleurs, c'est pour cela que dans le cadre de ce test, vous devriez utiliser LIB ou CL, car VERTEL et FLIB notamment renvoient parfois de faux codes ou des codes spécifiques qui sont incompatibles entre les différents modèles de TI.

Voici donc un lien qui mène à la page 7 du document nommé "main\test" lorsque vous appuyez sur HOME.
Note: J'ai à nouveau remplacé le j des commandes par §.

§K277,7,main\test§

Note: Vous ne pouvez pas assigner de lien aux touches standard de Fast Reader (ESC, APPS, etc.)

Les fenêtres

Le support des fenêtres est une fonctionnalité relativement simple, pouvant être utilisée par exemple pour définir des colonnes pour le texte, ou dessiner du texte dans des objets ne prenant pas toute la largeur de l'écran.

Le principe est assez simple, et peut être comparé aux zones de texte sous Word, ou aux DIV en HTML, mais en moins avancé. Plus concrètement, on ouvre une fenêtre dont on spécifie les coordonnées et le texte sera ensuite écrit à l'intérieur. Ce n'est pas plus compliqué que ça.

Avec Fast Reader, la gestion des fenêtres se fait par l'intermédiaire des commandes 'W', 'w', 'm', 'F'. Ces commandes permettent de créer, effacer et activer des fenêtres. Mais la commande de base, c'est 'W'. La syntaxe est la suivante:

 Wx0,y0,x1,y1[,numero_fenetre]

Alias: Window
Exemple: (j remplacé par §)

§W30,20,130,80§Le texte est dessiné au milieu de l'écran. De plus, les retours à la
ligne seront effectués avant d'arriver tout à droite de l'écran.

Elle permet d'ouvrir une nouvelle fenêtre à partir des 4 paramètres définissant une zone rectangulaire (x0,y0,x1,y1 -> gauche,sommet,droite,fond).
Mais il faut tout de même savoir qu'en réalité, vous ne créez pas de nouvelle fenêtre, mais vous en modifiez une déjà existante. En effet, il y a 4 fenêtres prédéfinies, et le cinquième argument designe laquelle de ces fenêtres vous souhaitez modifier (entre 0 et 3).
Au départ, seule la fenêtre principale est utilisée (0). Elle est initialisée automatiquement et désigne l'écran entier (0,0,159,94 sur TI89, 0,0,239,122 sur TI92+/V200). Si vous omettez le cinquième argument, c'est la fenêtre courante qui sera modifiée. Vous pouvez donc rendre vos pages uniformes indépendamment de la TI utilisée en écrivant j0,0,159,94j.

Pour détruire une fenêtre, vous pouvez utiliser la commande 'w' (minuscule). Cette commande ne requiert qu'un seul argument: le numéro de la fenêtre à détruire (entre 0 et 3). Comme auparavant, cela ne détruit pas réellement la fenêtre, mais la réinitialise simplement (elle prendra alors la taille de l'écran). Vous pouvez donc l'appliquer sans problème sur la fenêtre principale (0) afin de revenir en plein écran.

La commande 'F' effectue la même opération que 'W' excepté qu'elle crée n'active pas la fenêtre après l'avoir créée. Cela signifie que le curseur ne sera pas placé dans celle-ci. Lorsque vous créez plusieurs fenêtres au même endroit, vous devriez utiliser cette commande plutôt que 'W' sinon vous activerez toutes les fenêtres à la suite et seule la dernière sera réellement active après cela...

Enfin, si vous souhaitez activer manuellement une fenêtre, vous pouvez utiliser la commande 'm' avec en paramètre le numéro de la fenêtre concernée.

Note: Pour une description plus complète de ces commandes, consultez la rubrique qui leur est associée dans le chapitre Index des commandes.


Création de menus et de mises en page personnalisée

Comme déjà vu plus haut, vous pouvez aisément créer des menus menant vers des documents, pages ou signets grâce aux 'keylinks'. Dans ce chapitre, nous allons voir que vous pouvez aller plus loin dans la mise en page de vos documents, et afficher par exemple un menu dans la marge comme sur certains sites web.

Macro de début de page

Il existe une macro spéciale dont le contenu est exécuté à chaque nouvelle page (avant de commencer à la dessiner). Cette macro, c'est $;. Il vous suffit d'y placer un texte ou un code quelconque, et celui-ci se retrouvera sur chacune des pages de votre document. Faisons un test:

× Permet d'afficher Hello suivi d'un retour à la ligne au sommet de chaque page ×
$;=Hello
$

Important: Cette macro doit impérativement être définie au tout début du document! Evidemment, comme cela s'applique à toute macro, vous ne devez pas la modifier de quelle manière que ce soit durant le texte!

Ici, l'intérêt est très limité, mais on pourrait imaginer aller plus loin; vous pourriez dessiner un cadre sur chaque page, puis définir une fenêtre pour afficher diverses informations dans la marge.
Voici un exemple qui affiche le texte comme s'il était dans une boîte de dialogue standard. Comme d'habitude, les j des commandes sont remplacés par '§' et les flèches haut des styles par '^'.

$;=\
× Sauvegarde du format car il va être modifié. Pour cela, on passe par un style ×
^=9\
× Dessine le rectangle arrondi ×
§R0,0,159,99,33§\
× La double ligne en-dessous du titre ×
§R0,9,159,11,1§\
× On dessine le titre. Normalement, il ne faudrait pas utiliser ©Ax dans ces macros
car il n'est pas possible de restaurer l'état! ×
©A1©F0§C,3§Titre du document
× Comme je l'ai déjà dit, l'alignement n'est même pas censé fonctionner avec les
macros $;. C'est déjà bien que ça aille ici, mais il faut le restaurer (©A0) avant
d'ouvrir la fenêtre dans lequel on va dessiner le texte (raison interne à Fast
Reader). ×
©A0\
× Restauration du format ×
^9\
× Maintenant, on ouvre une fenêtre pour le texte ×
§W4,16,157,92§$\
× Début du texte. Juste un paramètre à modifier: la position de l'indicateur
du n° de page ×
§I126,93§\
× Maintenant on peut enfin tester avec du texte! ×
Et voilà notre texte!

Modification de la zone d'écran

En plus de ce que nous avons vu ci-dessus, il y a une autre manière de faire qui vous évitera d'avoir à tout redessiner à chaque page, et ce pour autant que la zone d'écran (que nous avons définie avec une fenêtre ouverte à chaque page) soit carrée, ce qui est d'une manière générale à peu près toujours le cas.
Cela consiste donc à redéfinir la zone d'écran, c'est à dire la zone qui doit être remise à jour à chaque page. Dans l'exemple ci-dessus, le texte n'était dessiné que dans la zone 4,16,157,92 car la fenêtre principale a été définie ainsi pour être inclue à la boîte de dialogue.
Du point de vue du programme, la zone d'écran représente simplement le rectangle qu'il efface à chaque page pour pouvoir redessiner la nouvelle page par-dessus (forcément, on ne va pas pouvoir dessiner du texte sans avoir effacé celui de la page précédente, sinon les deux se marcheront dessus). Dans ce cas, on aurait donc pu simplement dessiner le pourtour de la boîte de dialogue la première fois et ensuite redéfinir la zone d'écran dans la zone où le texte serait dessiné (4,16,157,92) de manière à ce que ce qui se trouve autour ne soit pas effacé et reste jusqu'au bout...

Le code reste donc principalement équivalent car il faut toujours dessiner le pourtour de la zone d'écran. La seule chose qui change est le fait qu'il ne sera plus contenu dans la macro $; mais dans le texte lui-même.
Pour modifier la zone d'écran, vous pouvez utiliser la commande 'Z'. Cette commande redéfinit par la même occasion la fenêtre principale (0) pour l'accorder aux nouveaux réglages de la zone d'écran. Dans l'exemple précédent, on ne fera plus appel à la commande 'W', mais à 'Z', mais avec des paramètres identiques.

Mais un autre problème se pose, car le code de dessin du pourtour de l'écran ne devra être exécuté que la première fois (lors de l'intialisation du texte), mais si on met directement le code dans le texte, il sera réexécuté à chaque fois que vous afficherez la page 1, ce qui affichera des déchêts à l'écran.
On a alors un autre élément qui fait son apparition, c'est le $lock. Le caractère 'lock' (code 14) est accessible depuis le menu CHAR, 4: Special, option 1. Dans l'exemple qui va suivre, je le remplacerai par un '£' car il n'est pas disponible dans le charset de cette page web.

× Sauvegarde du format car il va être modifié. Pour cela, on passe par un style ×
^=9\
× Dessine le rectangle arrondi ×
§R0,0,159,99,33§\
× La double ligne en-dessous du titre ×
§R0,9,159,11,1§\
× On dessine le titre. Normalement, il ne faudrait pas utiliser ©Ax dans ces macros
car il n'est pas possible de restaurer l'état! ×
©A1©F0§C,3§Titre du document
× Comme je l'ai déjà dit, l'alignement n'est même pas censé fonctionner avec les
macros $;. C'est déjà bien que ça aille ici, mais il faut le restaurer (©A0) avant
d'ouvrir la fenêtre dans lequel on va dessiner le texte (raison interne à Fast
Reader). ×
©A0\
× Restauration du format ×
^9\
× Cette fois, on modifie la zone d'écran ×
§Z4,16,157,92§\
× Début du texte. Juste un paramètre à modifier: la position de l'indicateur
du n° de page ×
§I126,93§\
× Le texte commence à partir d'ici ($lock) ×
$£\
Et voilà notre texte!

Index des commandes

Nous y voilà enfin. Ici, vous pourrez trouver toutes les définitions des commandes disponibles, classées par ordre alphabétique. Certaines d'entre elles ont déjà été définies dans la première partie de ce document. Dans ce cas-là, un lien est fourni. Avec la plupart des navigateurs, vous pouvez alors revenir à l'endroit où vous vous trouviez avant de suivre le lien en cliquant sur "Précédente", ou l'équivalent dans le langage de votre navigateur ;)

 A[temps]

Alias: Attendre
Paramètres: temps: temps à attendre. Vingt unités forment une seconde
Description: Uniquement en mode lent (©W4/©W5), marque une pause de la durée spécifiée en vingtièmes de seconde. Si cette attente semble trop longue, vous pouvez l'annuler à l'aide de la touche ON.

 B[x0],[y0],[x1],[y1][,mode]

Alias: Boîte / Box
Paramètres: x0, y0, x1, y1: coordonnées de départ et de fin de la boîte. mode: mode de dessin, voir ci-dessous
Notez qu'il est nécessaire de fournir au moins 4 paramètres, mais qu'ils peuvent être vides (exemple: 1,2,,4).
Description: Dessine une boîte (rectangle plein) entre les positions x0,y0 et x1,y1. Le paramètre mode permet de spécifier quelle sera l'opération qui sera effectuée sur votre écran. Il peut prendre les valeurs suivantes:
0: Rectangle plein blanc
1: Rectangle plein noir (par défaut)
2: Rectangle plein inversé

 C[x][,y]

Alias: Curseur / Cursor
Plus d'infos: Cliquez ICI

 e[x][,y] expression
 E[x][,y] expression

Alias: Expression
Plus d'infos: Cliquez ICI

 F[x0,y0,x1,y1][,no_fenêtre]

Alias: Fenêtre
Paramètres: x0,y0,x1,y1: Coordonnées de la fenêtre. no_fenêtre: numéro la de fenêtre à initialiser.
Pour plus d'informations, consultez le chapitre sur les fenêtres.
Description: Cette commande définit une fenêtre aux coordonnées spécifiées. La commande standard à utiliser est 'W'. La spécificité de celle-ci est de ne pas placer automatiquement le curseur dans la fenêtre après l'avoir créée.

 G

Alias: Go!
Paramètres: aucun
Description: Analyse le texte entier (jusqu'à la dernière page) avant de commencer à l'afficher. Cette commande ne sert pas à grand chose mais elle pourrait permettre de résoudre d'éventuels bogues liés au fait que Fast Reader ne connaît pas le contenu du texte à l'avance.

 H[espacement]

Alias: Hauteur / Height
Plus d'infos: Cliquez ICI

 I[x,y]

Alias: Indicateur
Paramètres: x,y: positions où déplacer l'indicateur
Description: Ceci déplace l'indicateur de page aux positions désirées. Si les coordonnées spécifiées sont hors de l'écran, l'indicateur sera complètement désactivé.

 K[code_touche[,signet],document]

Alias: Keylink
Paramètres: code_touche: code de la touche qui déclenchera cet événement, signet: numéro du signet où se placer lorsque le document sera ouvert, document: nom (fichier) du document à ouvrir.
Description: Ceci définit un keylink, c'est-à-dire un lien vers un autre texte qui sera activé par l'appui d'une certaine touche.
Vous pouvez obtenir des explications plus détaillées dans le chapitre sur les keylinks.

 k

Alias: Keylink (minuscule = détruire)
Paramètres: aucun
Description: Tous les keylinks définis restent actifs même après le passage à un texte lié. Cela permet de définir par exemple que si vous appuyez sur la touche CLEAR où que vous vous trouviez, le texte "main" soit réouvert, fonctionnalité assez utile lors de la création d'un menu. Ainsi, pour vous assurer que tous les liens sont détruits avant de commencer un nouveau document, faites appel à cette commande.

 L[x0],[y0],[x1],[y1][,mode]

Alias: Ligne / Line
Paramètres: x0,y0,x1,y1: coordonnées de début et de fin de la ligne
Description: Cette commande trace une ligne entre le point (x0,y0) et le point (x1,y1) en utilisant le mode graphique défini. Les valeurs sont les mêmes que pour la commande 'B' (0=blanc, 1=noir (défaut), 2=inversé).
La ligne doit se trouver dans la zone écran sinon le dessin sera incorrect, pour la raison technique que la fonction ne clippe pas directement les pixels lors du dessin de la ligne, mais que le gestionnaire d'arguments des commandes réalise une vérification et remet les positions dans une gamme acceptable avant de lancer la routine.

 M[marge]

Alias: Marge
Plus d'infos: Cliquez ICI

 m[no_fenêtre]

Alias: (aucun, m -> w à l'envers, donc lié aux fenêtres, comme pour notre célèbre Wario)
Paramètres: no_fenêtre
Plus d'infos: Chapitre sur les fenêtres
Description: Cette commande sélectionne une fenêtre, c'est-à-dire qu'elle y place le curseur. Cette commande est généralement peu utile, car les fenêtres devraient être sélectionnées en même temps que leur création en utilisant la commande 'W'. Toutefois, cela pourrait être utilisé lors d'opérations avancées avec une macro $;, afin de resélectionner la fenêtre principale pour commencer à dessiner le texte au sommet de la zone prévue pour celui-ci.

 n[texte]

Alias: N° de page
Paramètres: texte: chaîne spéciale formatée (voir ci-dessous)
Description: Cette commande active le mode 'page' (par opposition au mode 'signet'), et permet accessoirement de redéfinir le texte affiché par l'indicateur de page. La chaîne par défaut est "Page %02i". Le formatage possible est à peu près identique à printf, mais même si vous connaissez déjà cette fonction, sachez qu'il y a quelques différences, car la chaîne est analysée par Fast Reader. Seuls certains attributs ne sont pas supportés (faute de place aussi), alors veuillez lire les informations ci-dessous:
De la même manière que pour formater votre texte, vous devrez insérer un un caractère spécial qui permettra d'indiquer que vous souhaitez coller le numéro de page (car c'est tout le même le but de l'indicateur de page!). Ce caractère est le pourcent (%). En plus de ça, vous pouvez encore personnaliser un peu la manière dont ce texte est écrit, sachant que lorsque vous mettrez un 'p' (ou un 'i' également), le formatage sera terminé, ceci de la même manière que pour une commande. Le code le plus simple que vous pouvez insérer est donc '%p'. Entre les deux, vous pouvez insérer des attributs (%03p par exemple). Voici les attributs supportés qui sont utiles:
0x: x étant un nombre entre 1 et 3, affiche des zéros si le nombre ne fait pas le nombre de caractères (x) requis.
[espace]x: pour x valant entre 1 et 3, centre le nombre sur un nombre de pixels de x*4.
D'autres sont disponibles, mais ils ont tellement peu d'utilité que je ne m'en souviens plus...

 N[texte]

Alias: N° de signet
Paramètres: texte: chaîne spéciale formatée (voir ci-dessous)
Description: Cette commande active le mode signet et permet de redéfinir le texte affiché par l'indicateur comme pour la commande 'n' ci-dessus. La chaîne par défaut est "Signet %i". Pour plus d'informations sur le mode page et le mode signet, veuillez consulter le chapitre sur les signets.

 O[x0,y0,x1,y1]

Alias: Objet / Object
Paramètres: x0,y0,x1,y1: coordonnées de début et de fin de l'objet
Description: Cette commande crée un objet imaginaire entre les points (x0,y0) et (x1,y1). En temps normal, les objets sont créés par les commandes 'E' et 'P' (majuscule uniquement) lorsqu'ils sont prévus pour être intégrés au texte. Consultez leurs définitions pour plus d'informations.

 p[x][,y] expression
 P[x][,y] expression

Alias: Picture
Plus d'infos: Cliquez ICI

 R[x0],[y0],[x1],[y1][,mode]

Alias: Rectangle
Paramètres: x0,y0,x1,y1: coordonnées de début et de fin du rectangle
Description: Cette commande dessine un rectangle vide. Les mêmes remarques que pour la commande 'L' (ligne) sont applicables ici. Cependant, il y a des attributs supplémentaires disponibles, qui sont entrés sous forme d'un champ de bits. Je ne vais pas m'attarder sur ce que c'est, mais sachez simplement qu'il suffit d'ajouter la valeur ci-dessous pour activer un attribut:
0: Dessine en blanc
1: Dessine en noir
2: Dessine en inversé
8: Pointillés verticaux
32: Rectangle arrondi
64: Rectangle épais
128: Sommet arrondi
Vous pouvez donc combiner ces attributs. Par exemple, pour dessiner un rectangle noir, arrondi et en pointillés, cela donnera 1+8+32, donc 41.

 S[espace]

Alias: Space / Espace
Paramètres: espace: nombre de pixels qu'il doit rester au minimum sur la page
Description: Cette fonction permet de vérifier s'il y a assez de place sur une page avant de commencer à dessiner un objet volumineux. Si l'espace est insuffisant, Fast Reader passera automatiquement à la page suivante.

 T[espace]

Alias: Tabulation
Plus d'infos: Cliquez ICI

 W[x0,y0,x1,y1][,no_fenêtre]

Alias: Window
Paramètres: x0,y0,x1,y1: Coordonnées de la fenêtre. no_fenêtre: numéro la de fenêtre à initialiser.
Plus d'infos: Consultez le chapitre sur les fenêtres.
Description: Cette commande définit une fenêtre aux coordonnées spécifiées. Le curseur sera placé sur cette fenêtre et l'alignement nécessaire sera automatiquement réalisé de manière à ce que le texte soit dessiné uniquement dans cette zone.

 w[no_fenêtre]

Alias: window (minuscule = détruit)
Paramètres: no_fenêtre
Plus d'infos: Chapitre sur les fenêtres
Description: Cette commande détruit la fenêtre spécifiée. Si le curseur s'y trouvait justement, il sera remis dans la fenêtre principale (0). Si la fenêtre spécifiée est la fenêtre principale, celle-ci repassera en plein écran (0,0,159,94 pour TI-89, 0,0,239,122 pour TI-92+ et V200).

 Z[x0,y0,x1,y1]

Alias: Zone écran / Screen Zone
Paramètres: x0,y0,x1,y1: Coordonnées de la zone écran.
Plus d'infos: Consultez le chapitre sur la modification de la zone écran.
Description: Cette commande redéfinit la zone écran et par la même occasion la fenêtre principale (0).


License d'utilisation

La license d'utilisation de ce programme est assez libre, et la source devrait venir bientôt. Il n'y a pas de limite à l'utilisation du programme, cependant vous n'êtes pas autorisé à le vendre ou à demander un montant quel qu'il soit, ni à en faire un profit commercial (sous toutes ses formes).

Concernant Fast Reader, vous pouvez par exemple l'utiliser pour rédiger la documentation de votre programme ou jeu et ensuite le distribuer avec, mais dans ce cas, il serait sympa de me citer (mais pas obligatoire). De plus, si vous le souhaitez, n'hésitez pas à m'en faire part en me parlant de votre programme et/ou en me donnant un lien.

Je ne suis pas responsable de tout dommage potentiel que vous (ou votre TI) pourriez subir suite à l'utilisation de ce programme. Il est fourni tel quel, sans aucune garantie de toute forme. Si vous pensez avoir trouvé un problème, vous pouvez me le signaler, mais il n'est pas garanti que je puisse ou veuille le corriger.

En gros, ne faites rien qui puisse nuire ou manquer de respect à l'auteur et/ou au travail qu'il a fourni pour ce programme. Cela inclut toutes les clauses non-citées ici mais qui rentrent évidemment dans ces règles.

Merci d'avance, et amusez-vous bien :)