MPO 106 - Distribution de bonbons

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3405
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO 106 - Distribution de bonbons

Message par C.Ret »

tyann a écrit : 04 avr. 2022 07:22 [...]Oui il y a quelques adaptations à faire entre une TI 59 et une Ti 95.[...]Voila la 95 est vraiment une superbe machine qui mérite que l'on s 'y intéresse.
Merci tyann pour ces petits rappels.

Oui, je crois que la Ti-95 est infiniment plus puissante et bien plus versatile que les Ti58/59 et il doit être infiniment plus facile de convertir le programme d'une Ti59 vers une Ti95; La conversion inverse doit parfois être problématique, même si le programme n'utilise pas l'alphanumérique. En particulier, la possibilité de faire les tests sans un registre particulier est un grand avantage qui permet de simplifier considérablement l'implémentation du tout algorithme.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
seb_A2
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 306
Enregistré le : 27 oct. 2019 21:46
Localisation : Ile de France

Re: MPO 106 - Distribution de bonbons

Message par seb_A2 »

Merci pour les infos.
Je 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. :-)
Avatar du membre
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2919
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: MPO 106 - Distribution de bonbons

Message par zpalm »

seb_A2 a écrit : 04 avr. 2022 23:00 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’imagine que sur l’une la distribution se fera de gauche à droite et sur l’autre de droite à gauche :wink:
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3405
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO 106 - Distribution de bonbons

Message par C.Ret »

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
MPO106 - Ti-95 Printed Listing.gif (74.31 Kio) Vu 403 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
MPO106 - Ti95.gif (82.37 Kio) Vu 403 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.
Modifié en dernier par C.Ret le 13 nov. 2023 08:18, modifié 1 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
tyann
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 845
Enregistré le : 06 oct. 2012 14:37

Re: MPO 106 - Distribution de bonbons

Message par tyann »

Bonjour C.Ret

Je vois que tu as récupéré ta 95, félicitations.
Tu peux réduire le nombre de pas de ton programme en utilisant
la notation alpha pour les registres RCL A au lieu de RCL 000.
C'est quoi ce 32K que je vois sur la première photo ?
Ti(s) 60, 62 Galaxy, 66, 67 Galaxy, 68, 74 Basical 80, 81, 82, 83+, 83 CE, 84+SE, 85, 86, 89, 89 titanium, 92, 95 Procalc, v200, nSpire cx
Hp(s) 35s, 41CX, 28S, 48g, 50g, 39gII, Prime G1 et G2,
Casio(s) fx 602P, 702P, 4000P, 4500P, 6000G, 6900G, 7700G, 8500g, PB-700, CG-20, Graph 95 sd
Psion(s)II LZ64, siena, s3a, s3mx, s5mx.
Sharp(s) pc-1350, 1403, 1500A, E500, El 5120, 9200, 9600
Canon X-07
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3405
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO 106 - Distribution de bonbons

Message par C.Ret »

tyann a écrit : 13 nov. 2023 07:07C'est quoi ce 32K que je vois sur la première photo ?
C'est pratique, je l'ai trouvé ici.

Merci pour l'astuce, effectivement on peut aussi gagner un octet en remplaçant l'adresse de registre 001 par B dans le RCL 001 et le test INV IF= 001.
Voici donc une version un peu raccourcie en attendant que je trouve le moyen de me passer des registres aux adresses hautes 884 et 885 dont les nombreuses références consomment aussi quelques octets. Mon idée est également de combiner en une même boucle le test d'arrêt et le transfert des bonbons et utilisant un drapeau.

Code : Tout sélectionner

0000 FIX 0   CMS   DFN F1:ENT@P1   DFN F5:EXQ@P2   HLT
0018 LBL P1   INC A   STO IND A   HLT
0027 LBL 00   RCL A   STO 884   RCL B   RTN
0038 LBL 01   /   2   =   RTN
0046 LBL 02   SBL 00   SBL 01   
0055 LBL 03   EXC IND 884   SBL 01   ST+ IND 884   DSZ 884 GTL 03   INC 885
0078 LBL P2   SBL 00   x~t   
0085 LBL 04   RCL IND 884   INV IF= B GTL 02   DSZ 884 GTL 04   RCL 885   FIX 9   DFN CLR
0111 HLT

Partition: P0120, R885, F00000
Bon, je n'aurai pas le temps et la patience d'essayer une ronde de 883 élèves. Mais en théorie, c'est possible 8O
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
seb_A2
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 306
Enregistré le : 27 oct. 2019 21:46
Localisation : Ile de France

Re: MPO 106 - Distribution de bonbons

Message par seb_A2 »

seb_A2 a écrit : 04 avr. 2022 23:00 Merci pour les infos.
Je 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. :-)
Hello,
un grand merci a toi pour ton code sur TI 95.
Honte a moi, j’avais finit par jeter l’éponge... :oops:
je ressort ma TI 95 et je teste .
et j’ai une boite de bonbon a mes cotés pour me motiver :-)
Répondre

Retourner vers « Tous les Pockets »