Tout d'abord, l'installation... transferez simplement ces 6 fichiers : backhome.8xp clscreen.8xp palette.8xp print.8xp settings.8xp sprite.8xp Le projet SPRITES v3.31 (pour TI83PCE/TI84+CE) comprend 6 fonctions ecrites en Assembleur, executables depuis le TI-Basic : 1) SETTINGS ,place en debut de programme, initialise les routines, memorise la barre d'etat, efface l'ecran en noir, passe en mode 256 couleurs (8bpp). Si vous precedez SETTINGS du signe plus entre guillemet "+", cela forcera le programme a rester en 16bpp (utile pour le debogage d'une erreur Basic!). incorpore en plein programme: "+":Asm(prgmSETTINGS ou juste avant de lancer votre programme DEMO: "+":prgmDEMO 2) CLSCREEN permet d'effacer (tout ou partie de) l'ecran, avec l'une des 256 couleurs (voir 256_colors.png). 255:Asm(prgmCLSCREEN efface TOUT l'ecran avec la couleur blanche. {x,y,largeur,hauteur,couleur,x2,y2,largeur2,hauteur2,couleur2...:Asm(prgmCLSCREEN affiche a l'ecran un (ou plusieurs) rectangle plein dont les coordonnees (x,y) representent le coin superieur gauche. 3) PALETTE permet de modifier/reinitialiser la palette standard de 36 couleurs (voir Palette_36colors.png) {255,15,0,...:Asm(prgmPALETTE modifie les premieres couleurs de la palette (on peut ainsi modifier toute la palette!). 0:Asm(prgmPALETTE ou "":Asm(prgmPALETTE reinitialise la palette standard. 4) SPRITE permet de definir/afficher un Sprite. Lorsqu'un sprite est a definir, il faut respectivement preciser: -son numero (0 a ...), -sa largeur (1 a 35), -sa hauteur (1 a 35), -son grossissement (zoom x1 a x7), -enfin les couleurs-pixels. Afin de pouvoir coder de telles valeurs en un caractere, la base 36 est utilisee (on va donc de 0 a Z avec A=10, B=11....Z=35) Par exemple: "000,C3,5 Ans+"0123456789AB Ans+"CDEFGHIJKLMN Ans+"OPQRSTUVWXYZ Asm(prgmSPRITE defini le Sprite n°0 , au format 12x3 avec un zoom x5 Detail important: le programme definira par ordre croissant les sprites 0,1,2....etc. Il faudra donc imperativement commencer par definir le sprite 000 ! De plus, cela aura pour effet de (re)initialiser les sprites! 76800 octets sont attribues au stockage des sprites, il y a donc de la marge ! Un sprite occupant en memoire 2+(largeur*hauteur)*zoom^2 octets, on peut donc stocker jusqu'a 62 sprites 35x35 en zoom x1 :) Lors d'un affichage d'un -ou plusieurs- sprite(s), il faut respectivement preciser: -son numero (0 a ...) -son abscisse (nombres entiers de 0 a 319) -son ordonnee (nombres entiers de 0 a 239) Exemple: {0,100,200,1,0,0:Asm(prgmSPRITE affichera le sprite n°0 en coordonnees (100,200) ainsi que le sprite n°1 en coordonnees (0,0), c'est-a-dire le coin superieur gauche de l'ecran. 5) PRINT permet de configurer le mode d'affichage (position graphique, choix des couleurs (0-256), taille des caracteres) ; permet egalement d'afficher des caracteres (texte, variables, calculs...) Bien entendu, les minuscules sont accessibles par le biais d'un double [alpha] Pour configurer... {x,y:Asm(prgmPRINT ou {x,y,couleur,couleur de fond:Asm(prgmPRINT ou {x,y,couleur,couleur de fond,zoom en largeur,zoom en hauteur:Asm(prgmPRINT Et pour afficher... "Hello world":Asm(prgmPRINT x:Asm(prgmPRINT L1(1:Asm(prgmPRINT 123+4567:Asm(prgmPRINT π:Asm(prgmPRINT Pour effectuer un retour a la ligne, il suffit d'inserer le caractere i (que l'on obtient via [2nde] [.] ) Par exemple, "Coucou!iTout va bien?":Asm(prgmPRINT) affichera... Coucou! Tout va bien? A noter que la precision des calculs est plus importante qu'a l'accoutumee! Par exemple, π:Asm(prgmPRINT affichera 3.1415926535898 au lieu du classique 3.141592654 A ce propos, veillez a ce que vos programme soient en mode reponse DECimale (instruction DEC) (sinon , π:Asm(prgmPRINT affichera 1 ) Veillez aussi a ce que cette instruction soient placee en tout debut de programme, bien AVANT Asm(prgmSETTINGS , simplement parce que DEC (tout comme FLOAT, MATHPRINT, CLASSIC,...etc) altere la barre d'etat. 6) BACKHOME permet un bon retour vers le TI-OS (efface toute trace de donnees, converti l'ecran actuel en mode 16bpp,repasse en mode 16bpp, retabli la barre d'etat) Asm(prgmBACKHOME) En option, vous pouvez forcer BACKHOME a NE PAS retablir la barre d'etat, en le precedant d'un "NSB" (No Status Bar) "NSB":Asm(prgmBACKHOME IMPORTANT: afin d'eviter de "contrarier" la TI83PCE, voici quelques recommandations: -SETTINGS est a utiliser en tout debut de programme (car il initialise pas mal de choses...) -Definir les sprites par ordre croissant (en partant du n° 0...) -Et bien entendu, ne JAMAIS tenter d'afficher un sprite avant de l'avoir defini prealablement. -Attention a ne pas faire deborder un sprite hors de l'ecran! -NE PLUS utiliser tout ce qui concerne l'affichage : Output,ClrHome,ClrDraw,Text, Line,Pxl-on,Pt-on... Voila! J'espere que cet utilitaire vous sera utile dans vos creations. Amusez-vous bien !.. Et bonne programmation ! Merci a Epharius, DjOmnimaga, Diolum (astuce "minuscules"), DrDnar (astuces "faster/fastest") et tant d'autres pour les conseils, astuces, et informations !! -Gerald alias grosged (juin 2016) PS: N'hesitez pas a me faire part d'eventuels bugs, merci ;)