π
<-

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

Unread postby critor » 23 Feb 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41980
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

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

Unread postby mdr1 » 01 Mar 2016, 21:49

critor wrote:
  • 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
User avatar
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 44%
 
Posts: 1083
Images: 12
Joined: 28 Mar 2011, 00:00
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Je voyage toujours en première.

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

Unread postby 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41980
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

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

Unread postby mdr1 » 01 Mar 2016, 21:53

Il existe également les sauts absolus.
Image ImageImage
User avatar
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 44%
 
Posts: 1083
Images: 12
Joined: 28 Mar 2011, 00:00
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Je voyage toujours en première.

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

Unread postby 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41980
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

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

Unread postby 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
User avatar
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 44%
 
Posts: 1083
Images: 12
Joined: 28 Mar 2011, 00:00
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Je voyage toujours en première.

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

Unread postby 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.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6865
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

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

Unread postby Adriweb » 01 Mar 2016, 22:10

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

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby critor » 01 Mar 2016, 22:18

Ok, merci.

Si vous voulez donc vous amuser à économiser un octet supplémentaire, allez-y. :)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41980
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor


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

Who is online

Users browsing this forum: ClaudeBot [spider] and 9 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
743 utilisateurs:
>724 invités
>12 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)