Quelles sont les fonctions ?
Cette partie de la notice est également disponible en texte pour la calculatrice, il s'agit du fichier "Notice.89t" (compatible 92+ et V200). Elle a été traduite par Alexandre, et nécessite un viewer spécial pour la lire. Je vous recommande hibview, disponible sur http://nico.hibou.free.fr. Il n'est pas parfaitement stable, mais malheureusement il n'existe à l'heure actuelle aucun viewer compatible sans défaut.
Types de fonction :
Il existe 5 types de fonction dans Vertel, différenciées par la lettre qui précède lunderscore ( _ ) :
- s : Ce
sont les fonctions qui modifient ou reglent (set)
des paramètres de la Ti, comme par exemple lAPD, le contraste,
etc
- e : Ce sont des commandes executables,
qui ne changent aucun paramètres et naffichent 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 quil
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).
Liste des fonctions :
d_bufr :
aucun argument
Cette fonction redirige toutes les fonctions d'affichage
vers un buffer interne au premier appel, ou bien affiche le contenu du buffer
à l'écran au second. 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 connaissez
peut-être cette technique sous le nom de double buffering. 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
dessus, 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
dutiliser 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 nest en fait quun 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 lappui
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 : lavantage 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_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 ß8". Utilisez de préference cette
fonction pour de tester la version de Vertel avant de continuer l'execution
de votre programme, afin de vous prévenir de bugs éventuels (voyez
le chapitre 4 pour plus d'informations).
e_wait : num
Attend (wait) pendant num
20e de secondes.
s_apdt : num
Règle lAutomatic 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 quelle
séteigne tout de suite
En gros il ne vous restera plus qua
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 lutilisateur de faire break, car sinon il se retrouvera
avec un écran à moitié effacé ce que peut être
assez désagréable quand on ne sy connaît pas trop
Le break est réactivé automatiquement si vous appellez un programme
ou une fonction.
s_busy : mode(3)
Change lindicateur 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 dun
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 lappel 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 linitialisation
de la répétition des touches (keys)
à num, mais je ne connais pas lunité
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 lunité de temps. Ça peut être
agréable daugmenter 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 lindicateur Power :
Désactivé (0), Batteries faibles
(1), Batteries vides (2).
Lindicateur 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 à lintérieur dune 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 napparaî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 dun 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. Largument num
b na 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 nexiste 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 dun 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(), si vous laissez le mode à 0
(Elle retourne "OTH" si le mode est à 1).
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 largument num b
par une chaine str b qui contient le nom
dune liste. Dans ce cas, Vertel fixera autant doctets 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","chaine",0,{0,4,0,97,0,45}).