π
<-
Chat plein-écran
[^]

CircleIT pour TI-83 Premium CE, version corrigée TI-Planet

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

CircleIT pour TI-83 Premium CE, version corrigée TI-Planet

Message non lude critor » 23 Fév 2016, 17:33

Signalons aujourd'hui un nouveau jeu de KingInfinity pour ta TI-83 Premium CE, CircleIT.

Dans ce jeu de réflexes digne d'une application smartphone, tu dois arrêter le cercle sur la bordure du disque grâce à la touche :f105:. :)



L'actualité ayant été un peu chargée dernièrement, nous n'avions pas encore parlé de ce jeu pourtant hébergé sur TI-Planet depuis le 17 février dernier.
Mais en réalité le jeu est sorti il y a plus longtemps le 6 février dernier, et tu as le droit de savoir pourquoi nous n'en avions pas parlé entre temps.
Peut-être avais-tu déjà récupéré le jeu via d'autres sources avant le 17 février, et en gardes tu alors sûrement un très mauvais souvenir ...



Même si des choses peuvent bien sûr nous échapper, nous prenons toujours le temps sur TI-Planet de tester chaque programme que nous mettons à la une.
CircleIT est un programme assembleur, et en assembleur toute erreur peut être fatale à la machine. :#non#:
La version initiale de CircleIT du 6 février dernier jusqu'à aujourd'hui jamais mise à jour par son auteur était gravement bugguée, conduisant systématiquement à la perte des données pour tout nouveau joueur. :mj:
C'est pour cela que nous n'avions toujours pas mis en avant ce jeu - pour te protéger.



6600L'auteur ne semblant hélas pas s'en sortir malgré notre signalement des problèmes, nous avons pris le temps d'analyser la chose.
Il y avait visiblement un bug dans le code de création de la variable destinée à conserver le meilleur score. Après avoir joué pour la toute première fois, la sortie du programme déclenchait donc la création de cette variable, qui donnait en apparence un blocage total de la calculatrice (retour à l'écran de calculs sans le curseur clignotant) conduisant l'utilisateur résigné à appuyer sur le bouton reset.
En réalité la calculatrice n'était pas tout-à-fait bloquée avec la touche :f105: qui réagissait encore, mais ce n'est pas cela qui te sauvera, l'état de la machine étant clairement corrompu comme visible avec l'affichage alors quadruplé du programme ci-contre.



Le programme étant publié sous licence MIT autorisant non seulement la rediffusion mais également la modification, nous avons pris quelques heures pour corriger ce bug.
Le code source assembleur non fourni n'a pas arrangé les choses, nous forçant à travailler directement en langage machine.
En réalité, nous avons plus contourné que corrigé le bug. Nous avons :
  • rajouté en fin du programme du code propre de création de la variable pour le meilleur score
  • écrasé le tout premier appel CALL du programme par l'appel de ce nouveau code
  • rajouté à la fin de notre code l'appel CALL écrasé ainsi qu'une instruction de retour à l'appelant RET
Désormais, la création de la variable pour le meilleur score est faite systématiquement par notre code directement au lancement du programme, le code initial de l'auteur ne s'occupant plus que de sa mise à jour, chose apparemment non problématique. :)

6599Plus aucun problème donc désormais, si tu télécharges le jeu sur TI-Planet comme tu peux le voir ci-contre. :bj:
Sauras-tu battre notre record ? ;)



Nous ne pouvons que féliciter l'auteur pour son choix d'une licence ouverte, permettant de mutualiser la diffusion et le développement dans l'intérêt de tous, et l'encourager à nous montrer ses progrès dans ses prochains jeux ! :bj:



Téléchargement : archives_voir.php?id=436568
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.6%
 
Messages: 41501
Images: 14719
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: CircleIT pour TI-83 Premium CE, version corrigée TI-Plan

Message non lude mdr1 » 01 Mar 2016, 21:49

critor a écrit:
  • rajouté à la fin de notre code l'appel CALL écrasé ainsi qu'une instruction de retour à l'appelant RET

Sinon, plutôt que de faire un appel suivi d’un retour, on peut directement faire un saut.
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: CircleIT pour TI-83 Premium CE, version corrigée TI-Plan

Message non lude critor » 01 Mar 2016, 21:52

Les sauts relatifs sont il me semble limités en longueur.
Hors de question de sauter à la fin d'un programme aussi long, sauf erreur de ma part.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.6%
 
Messages: 41501
Images: 14719
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: CircleIT pour TI-83 Premium CE, version corrigée TI-Plan

Message non lude mdr1 » 01 Mar 2016, 21:53

Il existe également les sauts absolus.
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: CircleIT pour TI-83 Premium CE, version corrigée TI-Plan

Message non lude critor » 01 Mar 2016, 21:56

Dans tous les cas, il faut revenir pour reprendre l'exécution du code initial, si l'on parle bien d'un correctif ajouté en fin de programme comme ici.
Donc je ne vois vraiment pas comment tu penses économiser un retour, sous une forme ou sous une autre.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.6%
 
Messages: 41501
Images: 14719
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: CircleIT pour TI-83 Premium CE, version corrigée TI-Plan

Message non lude mdr1 » 01 Mar 2016, 22:02

On saute vers la procédure secondaire dont le « call » a été effacé et son « ret » nous ramène à la position initiale, au début du programme.
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: CircleIT pour TI-83 Premium CE, version corrigée TI-Plan

Message non lude Lionel Debroux » 01 Mar 2016, 22:07

mdr1 suggère apparemment que tu fasses l'optimisation call + ret -> jump, connue sous le nom de "tail call (optimization)".
C'est un tail call qui m'a permis de passer de 129 à 127 octets pour http://www.ticalc.org/archives/files/fi ... 43329.html .
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: CircleIT pour TI-83 Premium CE, version corrigée TI-Plan

Message non lude Adriweb » 01 Mar 2016, 22:10

Ouai - un exemple direct de ça ici : https://en.wikipedia.org/wiki/Tail_call#In_assembly
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: CircleIT pour TI-83 Premium CE, version corrigée TI-Plan

Message non lude critor » 01 Mar 2016, 22:18

Ok, merci.

Si vous voulez donc vous amuser à économiser un octet supplémentaire, allez-y. :)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.6%
 
Messages: 41501
Images: 14719
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor


Retourner vers News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 329 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1978 utilisateurs:
>1956 invités
>17 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)