***************************************************************************
*******************************
FLIB v2.2
*******************************
par François LEIBER
http://leiber.free.fr
***************************************************************************
Librairie destinée aux programmeurs basic, incluant de nombreuses fonctions, des plus basiques aux plus avancées, ne nécessitant pas de kernel installé et fonctionnant sous toutes les ROM et hardwares (existantes et à venir à priori).
Version 2.2, 16/11/2000.
Copyright 2000 par François LEIBER.
Ce programme non modifié peut être distribué de manière libre, à condition de joindre ce texte avec.
Si jamais vous utilisez ma librairie dans un programme BASIC que vous distribuez, merci de mentionner mon nom dans le readme, cela me ferait plaisir !
CETTE LIBRAIRIE EST DESTINEE A TOUS LES PROGRAMMEURS DE BASIC, IL FAUT IMPERATIVEMENT ME DIRE DE QUELLES FONCTIONS VOUS AVEZ BESOIN, OU VOUS NE LES AUREZ JAMAIS !
- Nécessite
- Utilisation
- Historique
- Bugs connus
- Remerciements
- Infos
Nécessite :
- Une Ti-89 ou une 92+, avec n'importe quelle ROM ou hardware.
- Les programme flib() et flib2(), 12.2 Ko en tout.
- Quelques octets de libre pour pouvoir les lancer.
Vous pouvez mettre flib() et flib2() dans n'importe quel répertoire et l'archiver quand vous voulez.
J'ai aussi pris du temps pour convertir le tout pour la 92+, profitez-en !
Utilisation :
Il suffit, dans un programme basic en général, de taper
flib("command1" [,"command2",...])
exemple : flib("clrscr","msg:Hello, World !", "slrcl")
Si vous utilisez des fonctions de flib2, alors :
exemple : flib2("version","mkhs:10,500,fl,sc","hide:sc")
La liste renvoyée par flib est stockée dans la variable fl.
Chaque commande est une chaîne de caractères, lisez le fichier Fonctions Flib pour connaître les différentes fonctions disponibles.
Historique :
v2.2 - 16/11/00 - 6 045 + 6 469 octets
- Nouvelles fonctions de compression/décompression de variables : 'komp', 'dekomp' et 'kinfo'.
- Nouvelles fonctions de gestion de texte : 'numline' et 'getline'.
- J'ai reculé la limite de taille pour la variable de sortie (à 5 Ko).
- Plus de problèmes avec les variables archivées.
- Plus de problème si 'fl' est déclarée en local dans les fonctions comme 'getfile'.
- Plus de plantage avec les high-scores avec un seul record.
- Plus de plantage avec 'wait:0'.
- Correction d'un mini-bug dans 'menu'.
- Encore plus d'optimisations.
- Nouveaux exemples : 'Memory' et 'FlKomp'.
- J'ai joint un code source en C permettant de créer facilement vos images pour Flib en niveaux de gris.
v2.1 - 02/10/00 - 6 359 + 4 263 octets
- Nouvelles fonctions permettant l'utilisation de niveaux de gris statiques. J'ai compilé le programme avec la nouvelle version 2.2 des librairies de Zuric, les niveaux de gris ne *devraient* donc pas clignoter sur HW2.
- Nouvelles fonctions de contraste : 'getcont' et 'setcont'.
- 'wait' ne dépend maintenant plus de la calculatrice, la fonction utilise maintenant des timers.
- J'ai mis à jour les exemples.
v2.0 - 23/08/00 - 5 749 + 4 467 octets
- Ca y est, j'ai divisé Flib en deux librairies : une pour les maniements de fichiers ou fonctions plus du type 'OS', et l'autre pour le reste.
Merci de porter vos programmes pour cette nouvelle version, il suffit de rajouter un '2' après 'flib' quand vous appelez les fonctions de la deuxième librairie (reportez-vous aux fichier Fonctions Flib).
- Une nouvelle fonction évoluée : 'map', ainsi que 'drawstrv'.
- 'mkpic' marche maintenant avec tous les caractères.
- J'ai traduit toute la documentation en html.
v1.8 - 25/07/00 - 8 057 octets
- Enfin ! Flib supporte les variables locales, il m'a fallut une pleine après-midi pour m'en sortir :(
- Les fonctions 'hide', 'unhide' et 'state' fonctionnent aussi avec les dossiers.
- La fonction 'drawstr' admet maintenant un argument permettant de centrer une chaîne de caractères sur l'écran.
- Une nouvelle fonction : 'pixtest'.
- Attention à la compatibilité de vos programmes : j'ai supprimé les fonctions 'blink' et 'crypt', qui posait trop de problèmes. J'en intégrerai une plus performante dans une version suivante.
- Corrigé un bug dans fillrect qui ralentissait considérablement l'affichage quand il n'y avait pas de dernier argument.
- Corrigé un autre bug : quand Flib renvoyait un '0', le test 'fl[1] = 0' renvoyait 'false'.
- Correction d'un troisième petit bug, qui a peut-être pu poser des problème avant.
v1.7 - 29/05/00 - 8 065 octets
- Ajout des fonctions 'folder' ainsi que des trois pour gérer des highscores : les 8 Ko qui m'étaient alloués sont remplis, flib v.2 sera en deux programmes ou ne sera pas.
- J'ai tout relu et réécrit pas mal de petites choses pour optimiser au maximum.
- J'ai inclus un programme pour se servir de la fonction mkpic, ainsi qu'un exemple avec Othello, que j'ai enfin traduit pour Flib.
- La fonction 'crypt' marche beaucoup mieux.
- Si personne ne m'écris pour les garder, je vais supprimer les fonctions 'wait', 'reset' et 'blink'.
v1.6 - 12/05/00 - 7 001 octets
- Ajout des fonctions 'crypt', 'wait', 'mkpic', 'width' et 'blink', ce qui porte à 46 le nombre de fonctions de base de flib !
- Importante amélioration : flib tronque automatiquement les nombres avec des décimales, plus besoin de rajouter partout des 'exact(int())'.
- Correction de 'keylow' pour la 92+.
- Petits ajouts à qqs fonctions :
- 'msg' rafraîchit automatiquement l'écran quand l'utilisateur a appuyé sur une touche.
- 'getbyte' peut maintenant renvoyer plusieurs octets en une seule passe.
- 'apd', 'init' et 'initdelay' renvoient les valeurs enregistrées précédemment.
- Je fournis maintenant l'aide en format Txtrider.
- J'ai commencé à faire une fonction de compression, mais ça va être chaud à faire tenir dans 1 Ko...
v1.5 - 19/04/00 - 5 987 octets
- Ajout des fonctions 'menu', 'filltri', 'fillpoly' et 'reset' : je sais, celle-ci n'est pas la plus utile, mais c'est en tout cas la plus marrante :)
- J'ai supprimé la fonction 'idcode', je n'avais pas remarqué qu'on pouvait l'avoir avec getConfg().
- La fonction 'breakoff' est maintenant plus puissante, elle n'est plus annulée par des fonctions du genre 'string()'.
- On peut maintenant se servir d'arguments plus grands que 999 pour les fonctions, c'était gênant pour 'getbyte' et 'setbyte'.
- Lorsque la valeur renvoyée ne dépasse pas 9, ne renvoie plus '09' comme avant, ce qui pouvait poser des problèmes (du genre 159 - 16 = 65393).
- La fonction 'error' affiche maintenant le message d'erreur correspondant, et ne quitte pas le programme, en fait elle ne servait à rien avant.
- La plupart des fonctions graphiques peuvent avoir des arguments par défaut, c'est vraiment plus agréable.
- Maintenant, les fonction du genre 'sprite' ne plantent plus quand leurs arguments ne sont pas des nombres.
v1.4b - 11/04/00 - 5 147 octets
- C'est bête, j'aurai dû inclure cette modification dans la version 1.4, mais j'avais un peu la flemme : maintenant la liste renvoyée contient les éléments dans le bon ordre, c'est surtout agréable pour les fonctions du genre 'getfile'.
v1.4 - 10/04/00 - 5 107 octets
- Plusieurs personnes m'ont fait remarquer qu'il était impossible de récupérer la liste renvoyée par flib lorsque la ROM 2.xx était installée, maintenant Flib place la liste dans la variable 'fl'. C'est moins élégant je trouve, mais en fait je n'ai quasiment pas perdu de place.
v1.3 - 08/04/00 - 5 029 octets
- Rajout des fonctions 'savpic', 'picsize', 'getbyte', 'setbyte' et 'idcode'.
- Avant, les arguments ne pouvaient dépasser 255, ce qui fait que l'on ne pouvait pas réinitialiser l'apd, ceci est corrigé.
v1.2 - 04/04/00 - 4 303 octets
- Rajout des fonctions 'getfile', 'getfolder', 'size', 'state' et 'version'.
- Flib renvoie maintenant directement une liste, et n'a pas besoin de passer par une variable externe (ex-fl), ce qui simplifie beaucoup la syntaxe.
- Les fonctions 'sprite' et 'rclscr' font un test pour savoir si la variable passée est bien une image, sinon ça risquait de planter.
- Les autres fonctions graphiques sont aussi protégées contre le arguments erronés, je pense que maintenant flib ne peut plus provoquer d'erreur.
v1.1 - 21/03/00 - 3 667 octets
- Rajout des fonctions 'apd', 'error', 'sprite', 'savscr', 'rclscr', 'slclr', et des 4 fonctions touche.
- Correction de 'breakoff', 'drawstr' (ne pouvait afficher des messages commençant par un chiffre).
- Ajout de protections (pour le nbre d'arguments, vérifie que 'fl' n'est pas archivé...)
- Deux petits exemples (flpass et flowkey) sont inclus, ainsi qu'un programme permettant de créer un menu custom pour simplifier l'utilisation de flib.
- Version pour la 92+ incluse, j'ai même traduit les programmes d'exemple !
- Traduction en anglais (quelle galère !)
v1.0 - 12/03/00 - 2 153 octets
- Première version, la majorité des fonctions les plus usuelles (17) qui n'ont pas besoin de renvoyer de données sont présentes.
Bugs connus :
Il n'est pas censé y en avoir, cependant :
- Ne lancez pas Flib depuis une boucle Try...EndTry, vous ne pourrez plus lancer Flib dans la suite de votre programme (mystère total...)
Remerciements :
- Tout d'abord, une mention spéciale à Alban Gervaise, premier programmeur de Basiclib, bien qu'il ait disparu de la circulation depuis...
- Un immense merci à Zeljko Juric pour ses librairies et sa documentation très complète des fonctions du TIOS, sans lequel tout ceci n'aurait absolument pas été possible.
- Bien sûr, merci à Xavier Vassor et à tous ceux qui ont participé à l'élaboration de Ti-gcc.
- Rusty Wagner pour Virtual Ti.
- Nicolas Pourcelot pour ces idées nombreuses (et intéressantes). Mais je ne vais pas citer tous ceux qui m'ont écrit pour me donner des idées (bien qu'ils le méritent), la liste serait interminable et difficile à justifier.
Infos :
Pour toute suggestion, commentaire ou découverte d'erreurs non prévues (ce qui paraît incroyable ;-) ), vous pouvez me joindre à :
Francois.leiber@libertysurf.fr
Toute idée sera la bienvenue !
Toutes les mises à jour de mes programmes sont disponibles en avant-première sur mon site
http://leiber.free.fr
J'ai ouvert une page consacrée aux programmes BASIC faits avec Flib, n'hésitez pas à m'envoyer vos productions !
Je compte, maintenant que je suis parti, faire de nombreux programmes en C, mais malheureusement le temps commence à me manquer pour tout ça. (MP à LLG bestiââââl pour ce qui veulent savoir...)
En tout cas, j'encourage chaleureusement tous ceux qui voudraient se mettre au C mais qui hésitent, et c'est pourquoi je fournis mon code source (mais je le répète, le but n'est pas de changer trois caractères, de remplacer mon nom par le votre, puis de le distribuer sous votre nom, comme il advient de plus en plus souvent malheureusement).
Retour au sommet de la page