C.Ret a écrit : ↑03 avr. 2022 19:06 Ce qui fait que je suis bien incapable de programmer une TI-95.
Bon, ça c'est ce que je croyais il y a vingt mois. Depuis, j'ai fait quelques progrés. A vrai dire, j'ai tout de même perdu une heure et demi sur une erreur de 58tard; mon code ne fonctionnais pas, j'avais oublié les instructions GTL aa arpsè chaque DSE nnn ! C'est vrai qu'entre les Ti-58/59 et cette Ti-95 il y a un pas de géant.
Du coup, je peux faire part de mon expérience:
FLISZT a écrit : ↑04 avr. 2022 00:23Une des grandes différences entre les TI-58(C)/59 et la TI-95, c'est l'absence de la fonction OP sur cette dernière.
À la 2ème ligne du
programme de C.Ret, on a
2nd OP 20. C'est l'équivalent de
1 SUM 00.
C'est vrai, il n'y a plus d'opération codé
OP xx, mais on gagne l'équivalent des PEEK, POKE ou CALL des pockets (respectivement
RCB STB et
SBA) et surtout une très grande rigueur les argument et domaine de chaque instruction.
Ce qui fait que l' équivalent de
2nd OP 20 n'est plus
1 SUM A (qui altère le contenu du registre d'affichage) mais
INC 000 (ou
INC A) et on est pas limité à dix registre, cela marche tout aussi bien pour incrémenter le
885ième registre (par
INC 884).
tyann a écrit : ↑04 avr. 2022 07:22Oui il y a quelques adaptations à faire entre une TI 59 et une Ti 95.
Mais rien d'insurmontable je pense. [...] Voila la 95 est vraiment une superbe machine qui mérite que l'on s 'y intéresse.
Je confirme, il y a quelques aménagements à faire pour adapter mon code Ti-58/59 à cette puissante Ti-95. Mais rien d'insurmontable. Notamment, on se passe très bien du registre de test
t car il est souvent plus facile d'utiliser directement la comparaison avec un des registres.
Mon code, utilise toujours le registre
t, mais uniquement pour retourner les deux résultats que demande ce MPO à l'issu du calcul.
Maintenant que j'ai trouvé pourquoi mon code ne fonctionnait pas, j'obtiens une version opérationnelle de 116 pas qui permet (en théorie) de traiter une ronde de plus de 880 élèves (sans utiliser le moindre module d'extension mémoire).
seb_A2 a écrit : ↑04 avr. 2022 23:00Je vais tacher d'implémenter cela ce week end. Je ferais les 2 algos sur TI59 et TI95 en parallèle. Les 2 calculatrices côte a côte, ca va être sympa.
J'ai profité de mon retour en TGV de ce Week-End de pokéticaire pour composer le code sur mon tout nouveau Ti-95, et maintenant que je suis de retour à mon domicile; j'ai cote à cote Ti-58 et Ti-95 armés du même programme, ajusté dans le dialecte propre de chaque machine. Mais, le Ti-95, même avec une version pouvant traité 20x plus d'élèves, va 15x plus vite aussi.
zpalm a écrit : ↑04 avr. 2022 23:08J’imagine que sur l’une la distribution se fera de gauche à droite et sur l’autre de droite à gauche
Non, les deux versions suivent exactement le même algorithme et des codes très similaires qui tous deux tirent profit de l'instructions
DSZ. Mais c'est vrai que ce n'est pas drôle, car je n'ai pas de Ti-59 à faire miroité à coté de ma Ti-95.
Par contre, le code se décompose effectivement en deux parties, les labels A et B du code pour Ti-58/59 trouvant leur correspondant dans les 'User Function' F1 et F5.
- MPO106 - Ti-95 Printed Listing.gif (74.31 Kio) Vu 426 fois
Usage:
Partitionnez votre Ti-95 en réservant un maximum de registres et au plus 120 pas de programme.
Vérifiez le partitionnement par
2nd PART.
Saisir le programme:
Code : Tout sélectionner
// Initialisation: // SAISIE initiale // Calcul TEMPS et Nbr final de bonbons
0000 FIX 0 Cms 0018 LBL P1 0029 LBL 00 0050 LBL 02 0082 LBL P2
0003 DFN F1:ENT@P1 0021 INC 000 0032 RCL 000 0053 SBL 00 0085 SBL 00
0010 DFN F5:EXQ@P2 0022 STO IND 000 0035 STO 884 0056 SBL 01 0088 x~t
0017 HLT 0028 HLT 0038 RCL 001 0059 LBL 03 0089 LBL 04
0041 RTN 0062 EXC IND 884 0092 RCL IND 884
0066 SBL 01 0096 INV IF= 001 GTL 02
0042 LBL 01 0069 ST+ IND 884 0103 DSZ 884 GTL 04
Partition attendue: 0045 /2= RND 0073 DSZ 884 GTL 03 0109 RCL 883
P0120, R885, F00000 0049 RTN 0079 INC 883 0112 FIX 9 DFN CLR
0116 HLT
Vérifiez votre saisie en la relisant et en essayant quelques exemples.
Lancez le programme par la touche espace
[RUN] et sélectionnez
(F1:PGM)
Utilisez la touche de fonction
F1:ENT pour entrer chaque nombre de bonbons initial.
- MPO106 - Ti95.gif (82.37 Kio) Vu 426 fois
Une fois le dernier nombre de la liste initiale saisi, lancez le calcul de temps par
F5:EXQ
Le nombre final que possède chaque élève s'affiche alors.
Pressez la touche
[x~t] pour alterner entre l'affichage du temps et du nombre final de bonbons.
Exemple:
[RUN] (F1:PGM) 10 (F1:ENT) 2 (F1:ENT) 8 (F1:ENT) 22 (F1:ENT) 16 (F1:ENT) 4 (F1:ENT) 10 (F1:ENT) 6 (F1:ENT) 15 (F1:ENT) 20 (F1:ENT) (F5:EXQ) affiche
12 et
[x~t] affiche 18 en moins de 12" (au lieu de plus de 2'40"2 sur Ti-58c).
Une fois débuggé, assemblez le code à l'aide de l'instruction
2nd ASM afin d'en optimiser la vitesse d'exécution.