Quelles sont les fonctions ?

 

Types de fonction :

Il existe 5 types de fonction dans Vertel, différenciées par la lettre qui précède l’underscore ( _ ) :

- s : Ce sont les fonctions qui modifient ou reglent (set) des paramètres de la Ti, comme par exemple l’APD, le contraste, etc…
- e : Ce sont des commandes executables, qui ne changent aucun paramètres et n’affichent rien à l’écran, comme par exemple la pause.
- d : Toutes les fonctions graphiques (draw). Ces fonctions supportent toutes le clipping sauf d_recp.
- t : Les fonctions texte, écriture dans différents formats, police, etc…
- v : 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 :
f_name : num, str, mode(2) signifie qu’il faut écrire dans la Ti ‘vertel("a_fonc",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).

 

Fonctions communes :

e_retr : str
Retourne et sauvegarde (return) tout les éléments renvoyés dans la variable str de type liste. Cette fonction sauvegarde les valeurs qui ont été retournées avant l'appel de la fonction, en clair si vous écrivez vertel("e_paus","/","e_retr","var","/","e_paus") seule une touche sera stockée dans 'var' : celle du e_paus situé avant l'e_retr.
Note : Si vous ne précisez pas str, la variable retournée de manière 'interne', autrement dit vous ne pourrez l'utiliser que pendant le même appel de Vertel. Elle portera alors le nom "©" (voyez le paragraphe sur le retour de liste interne pour plus de précisions).

e_vers : aucun argument
Renvoie une chaine contenant le numéro de la version, soit actuellement "2.00". 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.

 

Fonctions Vertel :

d_bufr : mode(1)
Redirige toutes les fonctions d'affichage vers un buffer interne quand le mode est à 0, ou bien affiche le contenu du buffer à l'écran quand il est à 1. Ceci permet d'éviter qu'un lourd appel graphique fasse apparaitre des elements un par un sur l'écran : activez le buffer, tracez tout dedant, puis affichez le au dernier moment. Vous pouvez également vous en servir pour dessiner à l'écran et sauvegarder en PIC, sans que cela soit visible par l'utilisateur.
Note : Le buffer est effacé quand la librairie est quittée. Si vous souhaitez le conserver, il suffit de faire d_save, puis d_pict dans un appel suivant.

d_clrs : aucun argument
Efface totalement l’écran (clear screen). Pensez à sauvegarder l'écran en début de programme pour le restaurer à la fin. Si vous oubliez, 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 la line au-dessus de la Status Line. Pour la retracer, le plus simple est d’utiliser la fonction d_line de Vertel, en sachant que cette ligne se trouve à la position y=93 sur Ti89 et y=121 sur Ti92+ / V200.

d_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,a :cercle x,y,t,b : endfor’ executé par Vertel, mais ce sera toujours plus rapide que d’écrire cette boucle en Ti-Basic…

d_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).

d_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).

d_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).

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

d_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).

d_recv : x1,y1,x2,y2,mode(x)
Trace un rectangle vide entre les positions x1, y1 et x2, y2. Le mode peut prendre beaucoup de valeurs. En voici quelques uns : 0 : Noir, 1 : Blanc, 2 : Inversé, 50 : Bords ronds,  65 : Epais, etc… Vous pouvez combiner plusieurs modes (exemple : 50 + 65 = 115, Bords ronds + Epais).

d_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("d_save","backup",0,0,159,99) (ou 239,127 sur Ti92+) au début du programme pour sauvegarder tout l'écran, et vertel("d_pict","backup",0,0,1) à la fin pour le restaurer.

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

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

d_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).

e_offp : aucun argument
Cette fonction éteinds la calculatrice (off power).

e_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). Cette fonction renvoie la touche appuyée (attention les codes ne sont pas forcément les mêmes que pour la fonction GetKey() du Ti-Basic).
Note : l’avantage de cette fonction sur le 'pause' du Ti-Basic est que l'indicateur d’état ne réapparaitra pas si vous l'utilisez, et bien sûr qu'elle permet de savoir quelle touche a été enfoncée.

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

s_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.

s_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.

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

s_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.
Note : Les fonctions qui supportent le clipping sont celles de type d_ (sauf d_recp), ainsi que t_draw et t_prty.

s_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 's_').

s_gray : mode (1)
Cette fonction active les niveaux de gris, et regle le plan d'affichage : (0=Clair, 1=Foncé). Les fonctions graphiques se feront ensuite sur le plan choisi. À la fin de l’appel de Vertel, les gris seront automatiquement désactivés. Si vous voulez afficher une image en niveaux de gris, il vous faudra ajouter un e_paus à la fin, car l'instruction "pause" du Ti-Basic provoquera l'arrêt de Vertel, et donc des niveaux de gris.
Attention : Cette fonction est incompatible avec l'utilisation du buffer interne, et rendra donc son utilisation inutile.

s_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.

s_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…

s_locl : num
Cette fonction modifie le dossier utilisé pour stoquer les variables locales dans un programme. Elle sert en fait à ce qu'un sous-programme puisse modifier des variables dans le programme qui l'a lancé. La fonction oblige l'utilisation du dossier local situé num programmes en arrière (si vous remontez un rang en arrière par rapport au programme 'maitre', le 1er à être lancé, les variables locales sont alors placées dans le dossier courant).
L'utilisation de cette commande est un peu complexe, voyez le chapitre 4 pour plus d'informations.

s_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…

s_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.

t_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. Cette fonction est clippée (voyez s_clip) : si vous entrez un nombre négatif, le texte sera tout de même en partie affiché.

t_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). Cette fonction est clippée, et le mode(4) est le même que pour la fonction t_draw.
Attention : L'expression à afficher est une chaine, pas un nombre !

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

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

v_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.

v_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.

v_list : [str][, num a [, num b]]
Renvoie la liste des fichiers ou dossiers de la Ti. Si str n'est pas précisée, 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 a, si il vaut 1, oblige Vertel à retourner une liste contenant également le nom du dossier devant chaque fichier. L’argument num b 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).

v_load : {num,str}
Renvoie l'argument donné à la fonction. En clair, "v_load",5 renvoie 5, et "v_load","str" renvoie "str". Oui, ça parrait stupide. Mais si vous utilisez cette commande avec des listes, elle peut devenir très pratique. Par exemple vertel("v_load","#list1","/","v_load","#list2","/","e_retr","list3") est quasiment deux fois plus rapide que augment(list1,list2)->list3.
Cette fonction sert aussi à passer des variables locales d'un programme à un autre (voyez le chapitre 4 pour plus d'informations).

Attention : ne soyez pas tenté d'écrire vertel("v_load",{"#list1","#list2}) car cette écriture est invalide : Vertel ne supporte pas les liste imbriquées.

v_make : str, num
Crée (make) un fichier vide de num octets, qui pourra être modifié avec v_read et v_writ, par exemple. Si le mode vaut 1, la zone mémoire correspondant au fichier ne sera pas réinitialisée, cela peut par exemple permettre de "redimentioner" un fichier en utilisant v_make avec une taille plus grande ou plus petite que celle initiale.
Note : la taille maximum d'un fichier est de 65520 octets.

v_read : str, [num a[, num b]]
Lis (read) et renvoie les octets de num a à num b de la variable str. Si cet octet n’existe pas (vous essayez de lire en dehors de la variable), la fonction renvoie 0. Si vous ne mettez que l'argument num a, la fonction ne renverra que l'octet n° num a, et si vous ne mettez aucun argument (vous laissez à zéro aussi bien num a que num b), la variable sera lue du début à la fin.
Note : Il est impossible de lire uniquement l'octet n°0, car la fonction lit toute la variable dans ce cas particulier. Mais cet octet est la première partie de la taille du fichier, vous n'aurez donc normalement jamais besoin de le lire seul.

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

v_stat : str
Renvoie l’état (status) de la variable str (archivée, verouillée, cachée) sous forme d’un nombre. En testant ses bits un par un, vous pouvez obtenir l'état de la variable. Pour un dossier le premier bit indique si le dossier est caché, le second si il est ouvert ou fermé. Pour un fichier, les 3 bits sont dans l'ordre : fichier caché, fichier archivé, fichier verouillé. Ces 'bits' sont donc sous la forme binaire, en clair si vous testez l'état d'un fichier verouillé, archivé et caché, vous obtiendrez la valeur 111 en binaire, c'est à dire 7.
Pour tester les bits en basic, il vous suffit d'utiliser 'and'. En admettant que vous avez retourné l'état de la variable dans la variable stt, "if (stt and 1)>0" teste le 1er bit, "if (stt and 2)>0" teste le second et "if (stt and 4)>0" le troisième.

v_strn : num
L'équivalent 'Vertel' de la fonction string() a son avantage : elle est plus rapide et peut devenir très pratique grâce à l'utilisation des listes en argument. Cette fonction renvoie donc la chaine "123" quand num vaut 123. Il y a toutefois une grosse différence entre string() et v_strn : string({1,2,3}) renvoie "{1,2,3}", alors que vertel("v_strn",{1,2,3},"/","e_retr","liste") renvoie {"1","2","3"}.

v_test : {num,str} a, {num,str} b
Cette fonction compare les deux valeurs de même type a et b. Si les deux valeurs sont égales, la fonction renvoie un nombre positif, sinon elle ne renvoit rien. Elle est surtout utile pour rechercher un élement dans une liste, et a été conçue dans cette optique : placez par exemple en a une liste de nombres, et en b un nombre unique. Vous obtiendrez dans la liste de retour les rangs de la liste qui sont égaux à b.
Par exemple vertel("v_test",{1,1,2,1,1,1,2,1},2,"/","e_retr","var") stoque {3,7} dans var.
Attention : vertel("v_test",{1,1,1,2,2},{2,2,2},"/","e_retr","var") ne retourne rien, car Vertel compare alors les élements un à un et s'arrête au troisième element, puisque la deuxième liste est terminée.

v_type : str, mode(1)
Renvoie le type de la variable str. Cette fonction est similaire au GetType() du TiOS, mais a deux aventages. Premièrement vous pouvez aller bien plus vite que GetType() pour avoir le type d'un groupe de variables, en utilisant une liste en argument. Deuxièment, cette fonction peut renvoyer les extension personnelles qui sont considérées comme "OTH" par GetType() (Elle retourne "OTH" si le mode est à 1, et l'extension réelle si il est à 0). Et enfin, cette fonction retourne toujours la même chose quelle que soit la langue utilisée sur la calculatrice.
Note : Afin d'être totalement compatible avec GetType(), cette fonction renvoie "NONE" si la variable n'existe pas.

v_writ : str, num a, num b
Ecrit (write) à l'octet num a de la variable str la valeur 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("v_writ","chaine",{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 automatiquement prise en compte. Il est donc possible et plus simple d'écrire : vertel("v_writ","fichier",0,{0,4,0,97,0,45}).

 

Fonctions Vertad :

d_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 d_pict), puis l’image en mode OR (mode 0 avec d_pict).

d_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.

v_grpf : str a[,str b],mode(1)
Regroupe plusieurs fichiers en un seul, ou extrait les fichiers d'un groupe str a. Le mode vaut 0 pour grouper, ou 1 pour extraire. Si vous essayez de grouper sans préciser de nom de fichier pour str b, la fonction renverra le nombre de fichiers contenus dans le groupe str a. En mode 1, Vertad essaie d'extraire du groupe str a le fichier str b, ou bien tous les fichiers du groupe si str b est absent.
Note : Lors du groupage, vous pouvez préciser pour str b un nom de dossier, et Vertad essaiera de le créer lors de l'extraction.

 

Retour à la page principale