c'est presque fini ! Ouf !
la première Beta sera pour ce soir .
M'enfin pour finir une Notice à peu près potable faudra attendre ce soir vers 21 H.
C'est cool de pouvoir utiliser du code Basic au beau milieux d'une librairie.
On peu quasiment tout faire.
il ne me reste que 2 trucs à faire en 30 minutes :
- compatibilité répertoire temporaire MyLiB et TiOS
- HeapLock pour le vérouillage des variables de la VAT.
Je vais faire des Tests pour voir si les fonctions de manipulation de LIST suivantes
- "summ"
- "prod"
- "mini",
- "maxi"
sont plus rapides que leur équivalent Ti Basic.
Si ce n'est pas le cas elles seront virés.
Mais voici la nouvelle table des fonctions pour vous mettre l'eau à la bouche :
char *tbl_func[]={
(char *)"proj", // OK NbrProg, ProgEstack, NbrGoto, NbrVarNum
(char *)"vers", // OK Retourne la Version de MyLib
(char *)"temp", // OK Pas d'Arguments (dés)active le répertoire Temporaire
(char *)"pars", // OK Varname, "Ti-Basic Expr" Tokeneise Expr dans Varname
(char *)"expr", // OK Varname Execute l'Expression contenu dans Varname
(char *)"runs", // OK ExterneFileName
(char *)"outs", // OK Pas d'Arguments
(char *)"seti", // OK VarNum, NUM, PUSH Définit la valeur du compteur
(char *)"movi", // OK VarNum, VarNum, PUSH Copie la valeur du compteur
(char *)"addi", // OK VarNum, NUM, PUSH Ajoute NUM au Compteur
(char *)"mult", // OK VarNum, NUM, PUSH
(char *)"madd", // OK VarNum, MULT, ADD
(char *)"divd", // OK VarNum, NUM, PUSH
(char *)"modo", // OK VarNum, NUM, PUSH
(char *)"rand", // OK VarNum, NUM, PUSH
(char *)"valu", // OK VarNum Retourne la valeur du copmteur
(char *)"into", // OK VarNum, MIN, MAX, MODE{0,1}
(char *)"last", // OK Count, Step
(char *)"unit", // OK VarNum, OffSet, Factor
(char *)"mini", // OK EXPR, First, Len
(char *)"maxi", // OK EXPR, First, Len
(char *)"summ", // OK EXPR, First, Len
(char *)"prod", // OK EXPR, First, Len
(char *)"test", // OK EXPR1, EXPR2,{==, !=, <, >},{And, Or, Index, Valu}, Count, StrLen
(char *)"etyp", // OK EXPR Retourne le Type {0 NUM, 1 STR, 2 LIST, 3 MAT}
(char *)"revl", // OK EXPR Inverse l'ordre des élément d'une LISTE/MATRIX
(char *)"diml", // OK EXPR Retourne la dimension d'une LISTE/MATRIX
(char *)"subl", // OK EXPR, First, Len Retourne l'élément d'une LISTE/MATRIX
(char *)"augl", // OK EXPR, EXPR Retourne l'élément d'une LISTE/MATRIX
(char *)"jump", // OK BOOLEAN, OffSet Saute OffSet instructions (offset peut être négatif)
(char *)"when", // OK BOOLEAN, EXPR1, EXPR2 Si BOOLEAN==0 retourne EXPR2, sinon EXPR1
(char *)"dupn", // OK EXPR, Count Duplique n fois EXPR dans la pile interne
(char *)"labl", // OK NUM_GOTO Définit un Label
(char *)"goto", // OK NUM_GOTO Provoque un Branchement au Label équivalent
(char *)"prog", // OK NUM_PROG Définit le début d'un Prog
(char *)"endp", // OK NUM_PROG Définit la fin d'un prog
(char *)"runp", // OK NUM_PROG,NBR_LBL,NBR_INT Execute le Prog en lui allouant des Ressources
(char *)"outp", // OK NUM_PROG Quitte le prog
(char *)"ikey", // OK NUM{0 à 395} default=336 Règle la vitesse du PAD
(char *)"rkey", // OK NUM{0 à 395} default=48 Règle la vitesse du PAD
(char *)"gray", // OK NUM{0 OFF,1 LIGHT,2 DARK} Active les niveau de gris
(char *)"stri", // OK NUM [, Len, FillChar] Converti un entier en chaîne
(char *)"scat", // OK Str [, InsString] Concatène des chaînes
(char *)"mid$", // OK Str [, Start, Len] extrait une sous chaine
(char *)"arch", // OK Varname (Dés)archive une Variable
(char *)"apdt", // OK NUM_POS Règle le temps de mis sous tension de la TI
(char *)"wait", // OK NUM_POS Attend une durée de temps sans rien faire
(char *)"dbug", // OK NUM_POS Mode déboguage dans la ligne d'Etat
(char *)"time", // OK NUM_POS Règle le compteur pour le Chronomètre
(char *)"srce", // OK VarName Indique le Début d'une source Externe de Code qui sera sauver dans une Liste
(char *)"ends", // OK Pas d'arguments ! Marque la Fin d'une source de Code Externe
(char *)"answ", // OK Pas d'arguments ! (Dés)active la suppression des arguments utilisé par les fonctions
(char *)"brek", // OK Pas d'arguments ! C'est pour sortir de la Lib en Cas de BUG
(char *)"offp", // OK Pas d'arguments ! Etteind la TI
(char *)"quit", // OK Pas d'arguments ! Quit la Lib
(char *)"virt", // OK Pas d'arguments ! (Dés)active l'écran virtuelle
(char *)"clrv", // OK Pas d'arguments ! Libère la mémoire de l'écran virtuelle à chaque appel
(char *)"clrs", // OK Pas d'arguments ! Efface l'écran
(char *)"list", // OK Pas d'arguments ! (dés)active la récupération des réponses dans une Liste
(char *)"null", // OK Pas d'arguments ! fonction interne à ne pas utiliser : BUG assuré
(char *)"paus", // OK Pas d'arguments ! Attends l'appui d'une touche
(char *)"wkey", // OK {0,1,2,3} Lit une touche en pause
(char *)"gkey", // OK {0,1,2,3} Lit une touche sans pause
(char *)"tkey", // OK "Row1col1Row2col2..." Lecture de touches multiples
(char *)"stop", // OK PicName, x0, y0, x1, y1 Sauve un image dans la VAT
(char *)"stor", // OK Varname, EXPR, Mode Sauve une EXPR dans la VAT
(char *)"make", // OK Varname, Size, Resize{0,1} Crée une Entrée dans la VAT
(char *)"writ", // OK Dest, Scre , Start, Len, Mode Copie Len Bytes de Scre dans Dest à partir de Start
(char *)"copy", // OK Dest, Start1, Srce, Start2, Len Copie Len Bytes de Scre à partir de Start2 dans Dest à partir de Start1
(char *)"find", // OK Dest, Start1, Srce, Start2, Len, Mode Cherche Len Bytes de Dest à partir de Start1 dans Srce à partir de Start2
(char *)"read", // OK Srce, Start, Len, Mode Lit Len Bytes de Scre à partir de Start
(char *)"delt", // OK Varname, Type Supprime la variable
(char *)"stat", // OK Varname, Type Etat de la variable
(char *)"hide", // OK Varname, Type, Mode (dé)cache la variable
(char *)"lock", // OK Varname, Type, Mode (dé)vérouille la variable
(char *)"chek", // OK Varname, Type, Mode (dé)sélectionne la variable
(char *)"size", // OK Varname Taille de la variable
(char *)"type", // OK Varname, Mode{0,1} Type de la variable
(char *)"fold", // OK Varname, Mode{0,1}, Filtre Liste des Dossiers/Fichiers
(char *)"help", // OK STR Affiche un msg dans le Status Line
(char *)"info", // OK Title, STR, BT_1, BT_2 Affiche un msg dans une Boite de Dialogue
(char *)"text", // OK STR, X, Y, Font, Mode{0 à 4}
(char *)"pict", // OK PictName, X, Y, Mode{0 à 6}
(char *)"sprt", // OK PictName, X, Y, Mode{0 à 2}, Height, Sprite{0 à 2}
(char *)"mape", // OK MapeName, X, Y, Mode{0 à 2}, Top, Left affiche un MAP
(char *)"wdth", // OK STR, Font{0,1,2} Calcule La longueur de la Chaine
(char *)"clip", // OK X0, Y0, X1, Y1 Définit la zone d'affichage graphique
(char *)"line", // OK X0, Y0, X1, Y1, Mode{0 à 7}
(char *)"crcl", // OK X0, Y0, R1, R2, Mode{},Type{0=vide, 1=Plein}
(char *)"rect", // OK X0, Y0, X1, X2, Mode{},Type{0=vide, 1=Plein}
(char *)"ofst", // OK OffsetX, OffsetY
(char *)"sequ", // OK Init, Step, Count Génère un liste
(char *)"pixl", // OK X0, Y0, Mode{-1,0,1,2} Dessine ou Lit l'état d'un pixel
(char *)"2lst", // OK MUTLI_EXPR Créer une liste à partir de la pile interne
(char *)"2arg", // OK MUTLI_EXPR Supprime les accolages de liste
(char *)"push"};// OK MUTLI_EXPR Ajoute des EXPR dans la pile interne