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).
Lavantage 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 lAPD de la calculatrice renvoie la valeur enregistrée
avant le changement. Si cela ne vous interesse pas de lavoir, 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 nutilisez 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 lunderscore ( _ ) :
- set
: Ce sont les fonctions qui modifient ou reglent (set)
des paramètres de la Ti, comme par exemple lAPD, le contraste,
etc
- exe : Ce sont des commandes executables,
qui ne changent aucun paramètres et naffichent 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 quil 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 dutiliser 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 nest en fait quun 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 quil faut afficher le masque en
mode AND (mode 4 avec drw_pict), puis limage
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 nai
rien comprit au mode, je sais quil peut prendre beaucoup de valeurs.
Les seules que jai essayées sont : 0 :
Noir, 1 : Blanc, 2 :
Inversé, 50 : Bords ronds,
65 : Epais, etc
Il semblerait que
lon 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 limage de
départ on aura donc un zoom, dou
le nom de la fonction. Dans le cas inverse limage est réduite,
mais il y a des chances pour quelle 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 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).
Note : lindicateur détat
affichera busy et non pause quand vous utiliserez
cette fonction. Je sais tout le monde sen 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 laffiche quelque part, non ? Ah si, vous pouvez vérifier
que lutilisateur a bien la bonne version de Vertel avant lexecution
dun programme.
exe_wait : num
Attend (wait) pendant num
20e de secondes.
set_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.
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 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.
set_busy : mode(3)
Change lindicateur 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 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 '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 lappel
de Vertel, les gris seront automatiquement désactivés.
set_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.
set_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
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 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
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 loctet (byte) num
a de la variable str. Si cet octet nexiste
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 loctet (byte) num
a de la variable str à 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("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 napparaî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
dun dossier, par exemple "main", vous optiendrez la liste
des fichiers de ce dossier. Largument num
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).
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 dun 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 lest pas.
Par exemple une variable verouillée et cachée donnera 101 si
vous la testez avec var_stat. Il faut savoir quune 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 dune fonction et tous les nombres à la fin, ou bien
linverse. Lordre na pas dimportance entre les nombres
et les chaines, par contre entre 2 arguments dun même type lordre
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 nappelle quune 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 naurais jamais pu faire ce programme.
Kevin Kofler, qui ma aidé pour de
nombreuses fonctions.
TachMan, pour lalgorythme 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
:)