V e r t e l
Version 1.10

 

1) Qu'est-ce que c'est ?

Vertel est une librairie qui ajoute de nouvelles fonctions au Ti-Basic en utilisant le langage C. Vous pourrez ainsi acceder à des fonctions plus avancées de votre calculatrice, qui sont normalement inutilisables en Ti-Basic pur.
Ces fonctions sont en C, et souvent plus puissantes que leurs équivalentes du TiOS (quand il y en a). Par exemple le tracé de pixel de Vertel est plus rapide que que la commande ‘pxlon’, même si l'on compte le temps d'appel de la lib. Autre avantage non négligeable : vos programmes pourront utiliser tout l’écran de la Ti, et non pas se restreindre à la zone entre la status line et la barre de menu.

Voici un apperçu de deux programmes Ti-Basic utilisant Vertel :

Il y a trois versions différentes de Vertel : Vertel 'Normale',Vertel Developper, et Vertel Convert.
La version 'Developper' est légerement plus grosse, car elle affiche des messages dans la Status Line en cas d'arguments erronés, tandis que la version normale ne fait rien. Elle est en faite destinée aux programmeurs, qui peuvent ainsi plus facilement repérer leurs erreurs lors d'appels de Vertel, puis lors d'une release remplacer par la version normale, plus petite.
La version 'Convert' peut être utile si vous voulez améliorer l'aspect d'un programme pour Ti89 que vous passez sur Ti92+. Toutes les fonctions graphiques seront automatiquement modifiées pour que l'affichage se fasse au milieu de l'écran et non pas dans le coin supperieur gauche.

 

2) Comment utiliser Vertel ?

Pour utiliser Vertel il faut la lancer (dans l’écran HOME ou dans un programme) avec comme argument la fonction que vous voulez utiliser. Par exemple : vertel("drw_pixl",50,20).
La chaîne drw_pixl est le nom de la fonction Vertel à utiliser (voir ‘les fonctions’). Les nombre 50 et 20 précisent à Vertel comment utiliser cette fonction, dans ce cas ils indiquent les coordonnées du point à tracer. Tous les arguments omis seront remplacés par 0. Dans cet exemple, un dernier argument aurait pu être entré, il indiquait comment afficher le pixel (noir, blanc, inversé). Cet argument étant absent, il vaut 0 et donc le pixel sera affiché en noir.

Vous pouvez entrer plusieurs fonctions en un seul appel de Vertel, il suffit pour cela de les séparer par "/". Voici par exemple comment baisser le contraste puis fixer l'apd à 600 : vertel("set_cntr",0,"/","set_apdt",600). L’avantage est que vous ne quittez pas Vertel entre les différentes commandes, et donc elles sont exécutées plus vite (voir annexe).
Note : Puisque les arguments omis sont fixés à 0, vous pouvez remplacer la commande ci-dessus par : vertel("set_cntr","/","set_apdt",600).

Vertel supporte aussi les listes, et en les utilisant correctement vous pouvez optimiser vos programmes en taille et en vitesse. Vous pouvez donc placer des listes dans vos appels, et la fonction se répetera alors pour tous les elements de la liste. Par exemple : vertel("drw_pixl",{10,20,30},{5,10,20}) aura pour effet de tracer 3 pixels, aux coordonnées (10,5), (20,10) et (30,20).
L'utilisation des listes est très importante si vous souhaitez optimiser vos programmes. Pour plus d'informations, voyez le paragraphe 4 (Quelques conseils).

Il est indiqué que certaines fonctions « renvoient » une valeur. Cela signifie que si vous utilisez la fonction exe_retr (voir plus bas), vertel créera une liste qui contiendra toutes les valeurs et chaines renvoyées par les diverses fonctions. Certains renvois ne sont pas indispensables, par exemple la fonction set_apdt qui regle l’APD de la calculatrice renvoie la valeur enregistrée avant le changement. Si cela ne vous interesse pas de l’avoir, vous pouvez ne pas utiliser la fonction exe_retr. Par contre la fonction var_list renvoie la liste des dossiers ou fichiers de la Ti, si vous n’utilisez pas ensuite exe_retr, vous ne pourrez pas récupérer la liste envoyée par Vertel, et la fonction aura été alors inutile.
Note : Vous ne pouvez retourner que 1000 élements par liste. Voyez la fontion exe_retr pour plus d'informations.

 

3) Quelles sont les fonctions ?

Il existe 5 types de fonctions dans Vertel, différenciées par les 3 lettres qui précèdent l’underscore ( _ ) :

- set : Ce sont les fonctions qui modifient ou reglent (set) des paramètres de la Ti, comme par exemple l’APD, le contraste, etc…
- exe : Ce sont des commandes executables, qui ne changent aucun paramètres et n’affichent rien à l’écran, comme par exemple la pause.
- drw : Toutes les fonctions graphiques (draw). Ces fonctions supportent toutes le clipping sauf drw_recp.
- txt : Les fonctions texte, écriture dans différents formats, police, etc…
- var : Pour effectuer des modifications sur les variables du TiOS

En violet sont indiqués les noms de fonctions, et en bleu les arguments à ajouter à la suite. Par exemple :
fnc_name : num, str, mode(2) signifie qu’il faut écrire dans la Ti ‘vertel("fnc_name",x,y,z)’, où ‘x’ est un nombre entier positif (num), ‘y’ une chaîne de caractères (str) et ‘z’ un nombre comprit entre 0 et 2 (mode(2)).
Les lettres en vert sont un aide-mémoire, elles indiquent les 4 lettres utilisées pour définir la fonction (cntr pour contraste par exemple).

 

drw_clrs : aucun argument
Efface totalement l’écran (clear screen). Si vous oubliez de restaurer l’écran dans votre programme, vous pourrez par exemple ouvrir puis fermer le vars-link, puis ouvrir et fermer (avec Esc) le menu ‘F1-Tools’. Tout devrait réapparaître sauf une ligne, celle au-dessus de la Status Line. Pour la retracer, le plus simple est d’utiliser la fonction ‘drw_line’ de Vertel, en sachant que cette ligne se trouve à la position y=93.

drw_crcp : x, y, a, b, mode(2)
Dessine un cercle plein (disque) à la position x,y de rayon horizontal a et vertical b. Mode Normal (0), Inverse (1), Xor (2). Cette fonction est très lente, car ce n’est en fait qu’un ‘for t,0,x :cercle x,y,t,b : endfor’ executé par Vertel, mais ce sera toujours plus rapide que d’écrire cette boucle en Ti-Basic…

drw_crcv : x, y, a, b, mode(2)
Dessine un cercle vide à la position x,y de rayon horizontal a et vertical b. Mode Normal (0), Inverse (1), Xor (2).

drw_line : x1, y1, x2, y2, mode(3)
Trace une ligne de la position x1,y1 à la position x2,y2. Mode : Normal (0), Inverse (1), Xor (2), Epais (3).

drw_mask : str a, str b
Sauvegarde dans str b le masque du fichier PIC str a. Pour ceux qui ne savent pas utiliser les masques, je rappelle qu’il faut afficher le masque en mode AND (mode 4 avec drw_pict), puis l’image en mode OR (mode 0 avec drw_pict).

drw_pict : str, x, y, mode(4)
Appelle une variable de type Picture et la place à la position x,y. Elle apparaît en mode Normal (0), Remplace (1), Inverse (2), Xor (3), ou And (4).

drw_pixl : x, y, mode(2)
Dessine un pixel à la position x,y. Le mode est Normal (0), Inverse (1), ouXor (2)

drw_recp : x1, y1, x2, y2, mode(2)
Trace un rectangle plein entre les positions x1, y1 et x2, y2. Il peut être Noir (0), Blanc (1), ou Inversé (2).

drw_recv : x1,y1,x2,y2,mode(x)
Trace un rectangle vide entre les positions x1, y1 et x2, y2. Je n’ai rien comprit au mode, je sais qu’il peut prendre beaucoup de valeurs. Les seules que j’ai essayées sont : 0 : Noir, 1 : Blanc, 2 : Inversé, 50 : Bords ronds,  65 : Epais, etc… Il semblerait que l’on puisse combiner plusieurs modes (exemple : 50 + 65 = 115, Bords ronds + Epais).

drw_save : str, x1, y1, x2, y2
Sauvegarde la zone de l’écran comprise entre x1, y1, x2 et y2 dans la variable str. Il est conseillé d'utiliser cette fonction quand vous voulez restaurer l'écran à la fin d'un programme. Utilisez vertel("drw_save","backup",0,0,159,99) (ou 239,127 sur Ti92+) au début du programme pour sauvegarder tout l'écran, et vertel("drw_pict","backup",0,0,1) à la fin pour le restaurer.

drw_size : str
Renvoie les dimentions x et y de la variable str de type pic.

drw_test : x, y
Renvoie l'état du pixel situé aux coordonnées x, y (éteind = 0, allumé = 1)

drw_trip : x1, y1, x2, y2, x3, y3, mode(6)
Trace un triangle plein entre les positions x1, y1, x2, y2 et x3, y3. Il sera en mode Normal (0), Inverse (1), Xor (2) ou Ombré (3~6).

drw_zoom : str a, str b, x, y
Sauvegarde dans str b la variable de type picture str a en l’étirant aux nouvelles dimentions x, y. Si les nouvelles dimentions sont plus grandes que celles de l’image de départ on aura donc un zoom, d’ou le nom de la fonction. Dans le cas inverse l’image est réduite, mais il y a des chances pour qu’elle soit assez mal rendue.

exe_offp : aucun argument
Cette fonction éteinds la calculatrice (off power). Que dire de plus ?

exe_paus : aucun argument
Met le programme en pause et attends l’appui sur une touche. Le seul intérêt de ce truc est de pouvoir faire une pause sans quitter Vertel (utile pour le niveaux de gris par exemple).
Note : l’indicateur d’état affichera ‘busy’ et non ‘pause’ quand vous utiliserez cette fonction. Je sais tout le monde s’en fous mais je le précise quand même.

exe_retr : str
Sauvegarde (retourne) tout les éléments renvoyés dans la variable str de type liste. Si vous omettez l'argument str, la liste sera alors retournée dans la variable 'vertlist'. Cette fonction sauvegarde les valeurs qui ont été retournées avant l'appel de la fonction, en clair si vous écrivez vertel("exe_retr","/","exe_paus","/","exe_retr") seule une touche sera stockée dans 'vertlist'. Vous pouvez bien sûr retourner de cette manière plusieurs listes dans un seul appel de Vertel.
Attention : Vertel ne peut renvoyer que 1000 élements par liste. Vous pouvez utiliser le retour de liste multiple ou bien appeler plusieurs fois la librairie pour retourner des listes plus grandes.

exe_vers : aucun argument
Renvoie une chaine contenant le numéro de la version, soit actuellement "1.10". Pas vraiment utile mais bon, il fallait bien que je l’affiche quelque part, non ? Ah si, vous pouvez vérifier que l’utilisateur a bien la bonne version de Vertel avant l’execution d’un programme.

exe_wait : num
Attend (wait) pendant num 20e de secondes.

set_apdt : num
Règle l’Automatic Power Down Timer (Temps au bout duquel la Ti89 s’éteinds) à num 20e de secondes (environ). Si vous vous amusez à mettre 1 ou quelque chose dans le genre, vous ne pourrez plus allumer votre calc sans qu’elle s’éteigne tout de suite… En gros il ne vous restera plus qu’a faire un reset :). Mettez num à -1 si vous voulez que la fonction retourne la valeur courante de l'APD.

set_brek : mode(1)
Désactive (0) ou Réactive (1) la possibilité de faire ‘Break’ dans les programmes en Ti-Basic (touche ON). Si votre programme utilise des graphismes, empechez l’utilisateur de faire break, car sinon il se retrouvera avec un écran à moitié effacé ce que peut être assez désagréable quand on ne s’y connaît pas trop… Le break est réactivé automatiquement si vous appellez un programme ou une fonction.

set_busy : mode(3)
Change l’indicateur ‘Busy’ : Idle (0), Busy(1), Pause (2), Clear (3). Si vous trouvez une utilité à ça, prévenez-moi !

set_clip : x1, y1, x2, y2
Cette fonction peut se réveler très utile : elle change pour toutes les instructions suivant son appel la zone d'affichage (clip). Tout ce qui devrait normalement être tracé en dehors de cette zone n'est pas affiché. Cela signifie par exemple que si vous définissez une zone de clip de 10,10,159,99 puis que vous appelez un PIC à 0,0, l'image PIC sera coupée et seuls les pixels situés dans la zone de clip apparraitront. Autre exemple : définissez une zone de clip 50,50,60,60, puis tracez un cercle plein sur tout l'écran : il n'apparaitra que dans la zone de clip, c'est à dire 50,50,60,60.

set_cntr : mode(2)
Cette fonction sert à évaluer (0), diminuer (1) ou augmenter (2) le contraste d’un degré. Pour le mode 0, la fonction renvoie donc un nombre entre 0 et 31, qui est donc la valeur du contraste. Par contre pour les modes 1 et 2, la fonction diminue ou augmente le contraste (d'ou le préfixe 'set_').

set_gray : mode (2)
Les modes 1 et 2 activent les niveaux de gris (grayscale) et le plan correspondant au mode utilisé (1=Clair, 2=Foncé), et le mode 0 coupe les niveaux de gris. Les fonctions graphiques se feront ensuite sur le plan choisi. À la fin de l’appel de Vertel, les gris seront automatiquement désactivés.

set_keyi : num
Règle le temps avant l’initialisation de la répétition des touches (keys) à num, mais je ne connais pas l’unité de temps. Quand vous éteignez votre Ti cette valeur est réinitialisée.

set_keyr : num
Règle la vitesse de répétition des touches (keys) à num. Même remarque sur l’unité de temps. Ça peut être agréable d’augmenter un peu la vitesse de répétition des touches, qui est légèrement trop lente par défaut. Ceux qui dessinent beaucoup sur l’écran Graph voient ce que je veux dire…

set_time : num
Permet de calculer avec beaucoup de précision des durées (time) (pour mesurer les fps, ou un quelconque écoulement de temps par exemple). Si num est positif, un compteur prends sa valeur. Il est ensuite décrementé de 1 tous les 20e de seconde, jusqu'à 0. Si num vaut -1, alors au lieu de fixer le compteur la fonction renvoie sa valeur courante.

set_powr : mode(2)
Change l’indicateur ‘Power’ : Désactivé (0), Batteries faibles (1), Batteries vides (2). L’indicateur se rétablit tout seul assez vite, alors si vous voulez vraiment faire croire à un pote que vous avez vidé ses piles, utilisez cette commande à l’intérieur d’une boucle de type loop, while, for, etc…

txt_draw : str, x, y, mode(2a), mode(4b)
Affiche le texte str à la position x,y en taille mode(2a) (0=4x6, 1=6x8 ou 2=8x10) et en style mode(4b) : Normal (0b), Remplace (1b), Inverse (2b), Xor (3b), Crypté (Comme les choix non accesibles dans les menus du TiOS) (4b). Si vous entrez 999 comme coordonnée x, le texte sera centré automatiquement. Si vous entrez un nombre négatif, le texte sera aligné à –x pixels à partir de la droite de l’écran (-20 affiche le texte à 20 pixels de la droite de l'écran).

txt_prty : str, x, y, mode(4)
Affiche l'expression mathématique str aux coordonnées x,y en mode Pretty Print (le style d'écriture utilisé dans l'écran Home). Le mode(4) est le même que pour la fonction txt_draw.
Attention : L'expression à afficher est une chaine, pas un nombre !

txt_stln : str
Ecrit le texte str dans la status line.

txt_wdth : str, mode(2)
Renvoie la longueur (width) en pixels de la chaine str dans la police mode(2).

var_bget : str, num a[, num b]
Lis et renvoie l’octet (byte) num a de la variable str. Si cet octet n’existe pas (vous essayez de lire en dehors de la variable), la fonction renvoie –1. Vous pouvez mettre un deuxième argument numérique, et dans ce cas la fonction renvera tous les octets entre num a et num b (mettez –1 à num b pour indiquer la fin du fichier. En mettant 0,-1 vous obtiendrez tous les octets de la variable).
Attention : Gardez en mémoire que Vertel retourne un maximum de 1000 élements par liste, pour des fichier suppérieurs à 1000 octets il faudra donc procéder en plusieurs étapes.

var_bset : str, num a, num b
Fixe l’octet (byte) num a de la variable str à num b. Vous pouvez remplacer l’argument num b par une chaine str b qui contient le nom d’une liste. Dans ce cas, Vertel fixera autant d’octets de la variable à partir de num a que la taille de la liste, en utilisant bien sûr les élements de la liste comme valeur à entrer.
Note : Si vous utilisez une liste pour num b, il n'est pas nécessaire de préciser tous les octets à fixer. Autrement dit pas la peine d'écrire ce genre de choses : vertel("var_bset","fichier",{0,1,2,3,4,5},{0,4,0,97,0,45}). Il suffit d'écrire le 1er octet à fixer, et se sont les suivants qui prendront les différentes valeurs de la liste, car l'incrémentation est incluse dans cette fonction. Il est donc plus simple d'écrire : vertel("var_bset","fichier",0,{0,4,0,97,0,45}).

var_delt : str, mode(1)
Efface (delete) un fichier (0) ou un dossier (1) du TiOS. Cette fonction a pour avantage par rapport à 'delvar' de supprimer la variable même si elle est archivée, cachée ou protégée. Si vous supprimez un dossier, son contenu le sera également.
Note : Si vous essayez de supprimer le dossier main, seul son contenu sera effacé mais le dossier restera présent.

var_hide : str, mode(1a), mode(1b)
Cette commande permet de montrer (0b) ou de cacher (1b) (hide) la variable str. Une variable cachée n’apparaîtra pas dans le Vars-Link. Vous devez choisir comme mode 0a pour un fichier et 1a pour un dossier.

var_list : str, num
Renvoie la liste des fichiers ou dossiers de la Ti. Si str vaut "*" Vertel donnera la liste des dossiers, et si str est le nom d’un dossier, par exemple "main", vous optiendrez la liste des fichiers de ce dossier. L’argument num n’a aucun effet si il vaut 0, sinon il filtre les variables à renvoyer (220=Programme / fonction, 234=Assembleur, etc... voire "Quelques conseils" à propos des types de fichiers).

var_make : str, num
Crée (make) une variable str de taille num. Vous pouvez ensuite la modifier avec var_bset.

var_size : str
Renvoie la taille (size) en octets de la variable str.

var_srch : str a, {num,str} b
Cette fonction au nom peu explicite permet de rechercher (search) une chaine str b ou un nombre num b dans la liste Ti-Basic str a. La fonction renvoie le rang de la liste ou l’élement recherché est contenu. Si cet élement est en plusieurs exemplaires dans la liste, la fonction renvera tous ces rangs, du dernier au premier.

var_stat : str
Renvoie l’état (status) de la variable str (archivée, verouillée, cachée) sous forme d’un nombre de 1 à 3 chiffres. Ce nombre est égal à 100*verouillée+10*archivée+cachée. ‘verouillée’ vaut 1 si la variable est verouillée ou 0 si elle ne l’est pas. Par exemple une variable verouillée et cachée donnera 101 si vous la testez avec ‘var_stat’. Il faut savoir qu’une variable archivée est également considérée comme verouillée. Pour une variable archivée et cachée, Vertel renverra donc une valeur de 111.

 

4) Quelques conseils

- Nombres / Chaines

Les nombres et les chaines sont traités séparéments dans la lib. Cela signifie que vous pouvez regrouper toutes les chaines au début d’une fonction et tous les nombres à la fin, ou bien l’inverse. L’ordre n’a pas d’importance entre les nombres et les chaines, par contre entre 2 arguments d’un même type l’ordre est évidemment à respecter.
Plus clairement, la fonction "drw_zoom","normal","zoomed",50,70 peut s’écrire : "drw_zoom",50,70,"normal","zoomed" ou même "drw_zoom",50,"normal",70,"zoomed".

- Limiter les appels

Essayez de minimiser le nombre d'appels de Vertel. En effet tout ce qui est traité dans la librairie est bien plus rapide que du Ti-Basic. Cette commande :
For t,10,40,10 : vertel("drw_crcv",80,50,t,t) : Endfor
est beaucoup plus lente que celle-ci :
vertel("drw_crcv",80,50,10,10,"/","drw_crcv",80,50,20,20,"/","drw_crcv",80,50,30,30,"/","drw_crcv",80,50,40,40)

En effet la 2eme fonction n’appelle qu’une seule fois Vertel tandis que la 1ere lance la lib 4 fois.

Voici les 2 algorithmes :

Note : De toute façon, dans un cas comme dans l'autre ce n'est pas la meilleure optimisation possible. Il est encore plus rapide d'utiliser deux listes en argument et d'écrire :
vertel("drw_crcv",80,50,{10,20,30,40},{10,20,30,40})
Voyez le paragraphe "Utiliser des listes en argument" pour plus d'informations.

- Utiliser des listes en argument

Utiliser des listes en argument est la meilleure façon d'optimiser, car cela prends peu de place dans le programme et est traité très rapidement par Vertel. Il y a tout de même certaines choses à savoir avant d'utiliser les listes correctement.
Premièrement les listes obligent une fonction à se rappeller sur elle-même, en lisant une à une les valeurs de la liste. Mais les arguments simples, eux, ne varieront pas. Par exemple, écrire ceci :
vertel("drw_pixl",{10,20,30,40,50,60},25)
tracera 6 pixels, tous à la coordonnée y=25, mais aux coordonnées x 10,20,30,40,50 et 60.

Il faut savoir que Vertel s'arrête de lire dès qu'elle arrive à la fin d'une des listes passées en argument. Ecrire :
vertel("drw_pixl",{10,20},{5,10,15,20,25,30})
ne tracera que 2 pixels, car il n'y a que 2 élements dans la 1ere liste. Les 4 élements "en trop" dans la seconde liste sont donc ignorés.

Vertel s'arrête également de lire les listes au moindre changement dans le type d'un argument. Cela signifie que :
vertel("drw_pict",{"pic1","pic2",27,"pic4"},20,20)
n'appelera que 2 fichiers PIC, car le 3eme élement de la liste n'est pas du même type que les précedents, et la lecture s'arrête donc immédiatement.

Dernière chose : l'utilisation de listes fonctionne aussi pour la commande. Ce type d'appel est valide :
vertel({"drw_recp","drw_recv"},29,40,139,60,{1,49})
Deux rectangles sont dessinés aux mêmes coordonnées, un plein en blanc pour effacer le fond puis un vide en noir avec des coins arrondis.

- Appeler Vertel avec une liste au lieu des arguments

Vous pouvez assez simplement passer des listes de forme {"drw_line",0,0,159,99} comme argument de Vertel, il suffit pour cela de quelques petites modifications. Le plus simple est d'utiliser un sous-programme qui converti la liste et lance Vertel avec :

define listarg(liste)=prgm
expr("vertel("&mid(string(liste),2,dim(string(liste))-2)&")")
endprgm

Attention : Ceci ne fonctionne pas si votre appel de librairie contient des listes d'arguments, car le Ti-Basic ne supporte pas les "listes de listes", c'est à dire ce genre d'écriture : {"drw_pixl",{10,20},{10,20}}.

- Différents types de variable

Nous avons vu qu'il fallait généralement limiter le nombre d'appels de Vertel, mais parfois cela est impossible, notament lors de l'utilisation de variables.

Ces deux appels ne peuvent pas être réduis à un seul :
vertel("var_size","vertel","/","exe_retr")
vertel("txt_draw","Taille de la lib : "&string(vertlist[1]),2,2)

Tandis que ceux ci peuvent l'être :
vertel("var_bget","pic"0,-1,"/","exe_retr")
vertel("var_srch","vertlist",255)

Devient : vertel("var_bget","pic",0,-1,"/","exe_retr","/","var_srch","vertlist",255)

Pourquoi ? Et bien parceque dans le premier exemple, le TiOS doit analyser la variable vertlist pour pouvoir la convertir avec string(), et enfin la placer au bout de la chaine à afficher. Et cela doit être fait avant l'appel de Vertel, il faut donc 'passer la main' au TiOS, ce qui oblige à quitter Vertel entre le moment ou la variable est créée et le moment où elle est utilisée.
Dans le deuxième exemple par contre, c'est Vertel qui s'occupe de 'lire' la variable vertlist (c'est pour cela que seul son nom elle est passé sous forme de chaine à Vertel). Il n'est donc pas nécéssaire de laisser le TiOS agir, Vertel créera la variable et la lira un peu plus tard, mais tout se passera de manière interne.

- Types de fichiers :

Voici les types de fichiers, utiles a connaitre pour la commande var_list :

45        : EXPR
217      : LIST
219      : MAT
220      : PRGM ou FUNC
221      : DATA
222      : GDB
223      : PIC
224      : TEXT
243      : ASM

- Messages d'erreur de la version Developper :

Vertel Developper renvoie des messages d'erreur dans la Status line en cas d'arguments erronés. Les voici avec leur signification :

"General : Type d'argument invalide" : Un des arguments n'est ni une chaine ni un entier.
"General : Fonction/Argument invalide" : La fonction n'existe pas, ou bien comporte une grosse erreur d'arguments.
"Retour : Limite de 1000 elements atteinte" : Vertel ne peut renvoyer que 1000 elements par appel.
"drw_mask : Fichier invalide" : Le fichier source n'existe pas, ou bien n'est pas de type PIC.
"drw_pict : Fichier invalide" : Le fichier n'existe pas/ n'est pas de type PIC. Attention, d'autres fonctions peuvent afficher cette erreur.
"drw_size : Fichier invalide" : Le fichier n'existe pas, ou bien n'est pas de type PIC.
"drw_zoom : Fichier invalide" : Le fichier source n'existe pas, ou bien n'est pas de type PIC.
"var_bget : Fichier introuvable" : Le fichier à lire n'existe pas.
"var_bset : Fichier de lecture non-LIST" : Le fichier utilisé pour fixer les octets n'est pas de type LIST.
"var_bset : Octet invalide" : Vous essayez de lire "en-dehors" du fichier.
"var_bset : Fichier introuvable" : Le fichier à modifier n'existe pas.
"var_hide : Fichier introuvable" : Le fichier ou le dossier à cacher n'existe pas.
"var_make : Erreur de création de fichier" : Le nom du fichier à créer n'a pas été indiqué, ou bien il est incorrect.
"var_size : Fichier introuvable" : Le fichier n'existe pas.
"var_srch : Fichier non-LIST" : La recherche s'effectue dans un fichier de type LIST.
"var_stat : Fichier introuvable" : Le fichier n'existe pas.

 

5) Exemples

Les exemples distribués avec Vertel sont bien sûr là pour aider, et donc par conséquent être édités et modifiés. Du moment que vous ne distribuez pas ces programmes en y mettant votre nom vous pouvez faire ce que vous voulez avec.

vt_apdt :
Description : Programme de réglage de l'APD
Fonctions principalement utilisées : set_apdt,
set_keyi, set_keyr
Points délicats : On fixe l'APD à une valeur quelconque au départ, afin de retourner la valeur enregistrée précedement

vt_cercl :
Description : Screensaver
Fonctions principalement utilisées : drw_crcv, set_brek
Points délicats : Aucuns

vt_clean :
Description : Nettoie l'écran HOME
Fonctions principalement utilisées : drw_pict, drw_save
Points délicats : Aucuns

vt_clip :
Description : Démontration du clipping
Fonctions principalement utilisées : set_clip
Points délicats : Il faut penser à définir la zone de clipping à chaque appel de la lib

vt_gray :
Description : Exemple d'utilisation des niveaux de gris
Fonctions principalement utilisées : set_gray
Points délicats : Bien vérifier qu'on ne se trompe pas de plan avant de tracer dessus...

vt_help :
Description : Résumé de toutes les fonctions avec explications
Fonctions principalement utilisées : Aucune
Points délicats : Aucuns

vt_hexa :
Description : Editeur hexadécimal
Fonctions principalement utilisées : var_bget, var_bset
Points délicats : Lire le fichier en plusieurs fois si il est trop gros

vt_hider :
Description : 'Cacheur' de fichiers
Fonctions principalement utilisées : var_hide, var_list
Points délicats : Aucuns

vt_liste :
Description : Exemple d'utilisations de listes en arguments
Fonctions principalement utilisées : Aucune
Points délicats : Aucuns

vt_lnch :
Description : Lanceur de fichiers
Fonctions principalement utilisées : var_list
Points délicats : Retourner et concaténer deux listes pour les deux types de fichiers reconnus : ASM et PRGM

vt_mask :
Description : Exemple d'utilisations des masques
Fonctions principalement utilisées : drw_mask
Points délicats : Sauvegarde du fond pour le restaurer quand l'objet se déplace

vt_pass :
Description : Protection de la calculatrice avec mot de passe
Fonctions principalement utilisées : set_brek
Points délicats : Bien placer les set_brek pour empecher que l'on puisse breaker le programme en retirant une pile

vt_recv :
Description : Démonstrations des modes de la fonction drw_recv
Fonctions principalement utilisées : drw_recv, set_keyi, set_keyr
Points délicats : Aucuns

vt_snake :
Description : Le traditionnel jeu 'snake'
Fonctions principalement utilisées : Aucune
Points délicats : Aucuns

vt_zoom :
Description : Exemple d'utilisation du zoom
Fonctions principalement utilisées : drw_zoom
Points délicats : Aucuns

 

6) Remerciements

Pour l'aide à la programmation, dans l'ordre "chronologique" :

Squale92, pour son tutorial sans lequel je n’aurais jamais pu faire ce programme.
Kevin Kofler, qui m’a aidé pour de nombreuses fonctions.
TachMan, pour l’algorythme de la fonction var_srch.
PpHd, pour la routine de test du contraste.
JackieChan91, pour la fonction BitmapTest.
Azerty83, pour quelques optimisation, et le portage d'exemples sur Ti92+.
La TIGCC team, pour leur indispensable logiciel.

Pour "le reste" :

Stohenge, premier beta-testeur de Vertel.
Microbug, pour son soutien.
ZdRUbAl, pour les propositions de certaines fonctions.
MacIntoc, qui malgré lui à contribué à l'amélioration de la librairie par ses critiques incessantes :)

 

Bob 64
Site DataBob