π
<-
Chat plein-écran
[^]

3 nouvelles ROMs grâce à TI

:32ti30xbv: :32ti30xbb: :32ti30xsmv: :32ti30xpmv: :32ti34mv: :32ticolp:

Re: 3 nouvelles ROMs grâce à TI

Message non lude critor » 23 Mai 2010, 15:50

Mic a écrit:A quand Super Mario sur Collège Plus ??



Doucement, j'avance... :;):

Voici déjà la démo non jouable de Kong sur TI-Collège Plus! :#top#:
http://tibank.forumactif.com/ti-non-gra ... -t5543.htm
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 44.2%
 
Messages: 41586
Images: 15121
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: 3 nouvelles ROMs grâce à TI

Message non lude critor » 23 Mai 2010, 16:54

Toujours pas de jeu d'instructions pour les processeurs T4X...

Mais voici un petit PDF qui a l'avantage de mentionner et décrire 4 processeurs de cette famille!
http://www.datasheetarchive.com/pdf/Dat ... 155162.pdf
(pages PDF 10 et 11)


Sont cités les processeurs T41, T42, T43 et T44.


Je rappelle que l'émulateur de TI simule un T49.
Mais peut-être que le T49 n'a jamais été gravé, et qu'il s'agit simplement du nom attribué à ce processeur Java virtuel.

Auquel cas, la TI-Collège Plus pourrait très bien utiliser un des 4 processeurs ci-dessus...


Si personne ne trouve, il va falloir vraiment que je m'attaque à cette goutte d'epoxy...
Mais il faudrait que je puisse m'y attaquer sans risquer d'effacer les inscriptions sur la puce... sinon, ça ne servira à rien...
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 44.2%
 
Messages: 41586
Images: 15121
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: 3 nouvelles ROMs grâce à TI

Message non lude Kiligolo » 23 Mai 2010, 17:07

je vois que vous êtes tous des pro en trafiquages de TI :8):
Perso j'arriverai pas du tout à faire ce genre de manip!
Avatar de l’utilisateur
Kiligolo
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 84.3%
 
Messages: 1465
Inscription: 17 Mai 2010, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1reS

Re: 3 nouvelles ROMs grâce à TI

Message non lude Ciwtron » 23 Mai 2010, 17:11

critor2000 a écrit:Si personne ne trouve, il va falloir vraiment que je m'attaque à cette goutte d'epoxy...


Je n'ai pas trouvé de mail pour le service Composants électroniques de Toshiba.
J'ai un n° de téléphone si quelque est prêt à appeler pour demander.
critor2000 a écrit:Adresse : 7, rue Ampère, 92 800 Puteaux
Téléphone : 01 47 28 28 28



(téléphone en hide pour éviter les méchants bots).
Avatar de l’utilisateur
Ciwtron
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 36.7%
 
Messages: 1332
Inscription: 29 Nov 2009, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1S

Re: 3 nouvelles ROMs grâce à TI

Message non lude critor » 23 Mai 2010, 18:07

Bon, Toshiba n'ayant apparemment pas de documents publiques intéressants sur les T4X, je continue de fouiller le source Java de l'émulateur TI-SmartView.

J'ai trouvé une fonction de parsing.
Elle prend 16 bits, et détermine le type d'instruction à l'aide des bits 0 à 5.

Selon l'instruction, des arguments sont alors extraits des bits 4 à 15.


Il faut que je regarde un peu mieux le contexte pour savoir si c'est du poids fort ou du poids faible...

Voici le code en attendant.
Evidemment, les instructions ne sont pas nommées...


Code: Tout sélectionner
    public void ParseBinCode(String Code, int Addr)
    {
        ObjField1[Addr] = GeneralUtility.DBinary(Code.substring(0, 6));
        switch(ObjField1[Addr])
        {
        case 20: // '\024'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(6, 12));
            break;

        case 14: // '\016'
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(6, 12));
            break;

        case 1: // '\001'
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 8));
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(8, 12));
            break;

        case 32: // ' '
        case 33: // '!'
        case 34: // '"'
        case 35: // '#'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(8, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(4, 8));
            break;

        case 15: // '\017'
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(6, 12));
            break;

        case 5: // '\005'
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 8));
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(8, 12));
            break;

        case 22: // '\026'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(8, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 8));
            break;

        case 30: // '\036'
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(6, 12));
            break;

        case 31: // '\037'
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(6, 12));
            break;

        case 10: // 'n'
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(6, 12));
            break;

        case 11: // '\013'
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(6, 12));
            break;

        case 7: // '\007'
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 8));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(8, 12));
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            break;

        case 16: // '\020'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 17: // '\021'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(13, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 21: // '\025'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(13, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 2: // '\002'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 8));
            break;

        case 6: // '\006'
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(8, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 8));
            break;

        case 18: // '\022'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 19: // '\023'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(13, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 23: // '\027'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(13, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 24: // '\030'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 25: // '\031'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(13, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 3: // '\003'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 8));
            break;

        case 26: // '\032'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 27: // '\033'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(13, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 28: // '\034'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(12, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 29: // '\035'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(13, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 12: // 'f'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(14, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 8: // 'b'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(14, 16));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 13: // 'r'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(14, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(9, 12));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 9: // 't'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(14, 16));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 9));
            break;

        case 60: // ''
        case 61: // '='
        case 62: // ''
        case 63: // '?'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(4, 16));
            break;

        case 44: // ','
        case 45: // '-'
        case 46: // '.'
        case 47: // '/'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(4, 16));
            break;

        case 48: // '0'
        case 49: // '1'
        case 50: // '2'
        case 51: // '3'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(4, 16));
            break;

        case 52: // '4'
        case 53: // '5'
        case 54: // '6'
        case 55: // '7'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(4, 16));
            break;

        case 56: // '8'
        case 57: // '9'
        case 58: // ':'
        case 59: // ';'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(4, 16));
            break;

        case 0: // '\0'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(13, 16));
            ObjField3[Addr] = GeneralUtility.DBinary(Code.substring(8, 10));
            ObjField4[Addr] = GeneralUtility.DBinary(Code.substring(6, 8));
            break;

        case 40: // '('
        case 41: // ')'
        case 42: // '*'
        case 43: // '+'
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(4, 16));
            break;

        case 36: // '$'
        case 37: // '%'
        case 38: // ''
        case 39: // '''
            ObjField2[Addr] = GeneralUtility.DBinary(Code.substring(4, 16));
            break;
        }
    }



Je n'ai jamais décrypté d'assembleur.
Donc si vous avez des idées, n'hésitez pas...

Je suis aussi débutant que vous.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 44.2%
 
Messages: 41586
Images: 15121
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: 3 nouvelles ROMs grâce à TI

Message non lude Lionel Debroux » 23 Mai 2010, 18:22

Dans plusieurs cas (ceux où 4 "case" sont traités de la même façon), les 2 bits de poids le plus faible parmi les 6 bits pris en compte comme argument du switch(...) font partie de l'instruction, comme tu l'as mentionné plus haut.

Dans les instructions, on voit un assortiment de fields de 2, 3, 4, 6 et 12 bits. Et certains des bits sont inutilisés (cases 14, 30, 31, etc.).
On peut supposer que les fields de 6 bits correspondent aux 64 registres indiqués dans le premier post. Et les fields de 12 bits peuvent être des valeurs immédiates (mais je trouve que ça fait beaucoup d'instructions différentes avec des valeurs immédiates) ou une paire de fields de 6 bits (mais alors pourquoi ne séparent-ils pas ces fields en ObjField2 et ObjField3 ??).
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: 3 nouvelles ROMs grâce à TI

Message non lude charognard » 29 Mai 2010, 17:35

critor2000 a écrit:
Mic a écrit:De l'ASM sur TI-Collège, ça serait totalement OUF !!!! :o:



En touts cas, le fait que ce soit du "4-bits" n'empêche pas de réaliser de super jeux en niveaux de gris.
Il n'y a qu'à regarder ce qui a été réalisé sur les HP-48S/SX/G/G+/GX...

Le saturn c'est un cas à part !!!
as tu vu beaucoup de proc avec des registres internes de 64bit ??!! et DCB
Avatar de l’utilisateur
charognard
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 81.8%
 
Messages: 869
Inscription: 18 Oct 2007, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: sans

Re: 3 nouvelles ROMs grâce à TI

Message non lude critor » 31 Mai 2010, 22:13

charognard a écrit:
critor2000 a écrit:
Mic a écrit:De l'ASM sur TI-Collège, ça serait totalement OUF !!!! :o:



En touts cas, le fait que ce soit du "4-bits" n'empêche pas de réaliser de super jeux en niveaux de gris.
Il n'y a qu'à regarder ce qui a été réalisé sur les HP-48S/SX/G/G+/GX...

Le saturn c'est un cas à part !!!
as tu vu beaucoup de proc avec des registres internes de 64bit ??!! et DCB


Le T4X/T49 dispose quand même de 64 registres!!!!
C'est pas rien...

Par concaténation, tu les as tes 64 bits :#langue#:
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 44.2%
 
Messages: 41586
Images: 15121
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: 3 nouvelles ROMs grâce à TI

Message non lude critor » 31 Mai 2010, 22:21

Mic a écrit:Filme ton expérience si tu t'attaques à l'epoxy.
Il faudrait y aller tout doucement à l'acide en frottant avec un chiffon légérement imbibé puis frotter à l'eau tout de suite après et recommencer, recommencer, jusqu'à ce que les inscriptions apparaissent...



Bien sûr, j'ai l'air du gars qui a toute une collection de bouteilles d'acide sur son étagère...


Si ce que j'ai lu en anglais est correct, il n'y a que 2 choses pour attaquer cet expoxy:
- un acide fort
- un chauffage à 100°C (autant la mettre dans le micro-onde...)


Le pH de l'acide (sa concentration) peut toujours se bricoler..;
L'important c'est son pKa.

Dans le commerce, on trouve facilement de l'acide chlorhydrique.
Le pKa est de 7, ce qui n'est pas génial, même si je ne conseille pas d'en boire.

En cherchant d'avantage, on peut trouver de l'acide sulfurique, notamment pour recharger les "batteries sèches" de voitures/camions.
Là, le pKa est de 3, ce qui est beaucoup mieux pour l'attaque.

Mais je ne sais pas si cela suffira...
Et dans le cas négatif, je doute que l'on ait facilement accès à des produits plus puissants...


En passant Mic, avec un tel pKa, ton chiffon va se tranformer en gruyère... et je ne parle même pas des doigts qui tiennent le chiffon...
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 44.2%
 
Messages: 41586
Images: 15121
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: 3 nouvelles ROMs grâce à TI

Message non lude Levak » 31 Mai 2010, 22:29

critor2000 a écrit:
Mic a écrit:Filme ton expérience si tu t'attaques à l'epoxy.
Il faudrait y aller tout doucement à l'acide en frottant avec un chiffon légérement imbibé puis frotter à l'eau tout de suite après et recommencer, recommencer, jusqu'à ce que les inscriptions apparaissent...



Bien sûr, j'ai l'air du gars qui a toute une collection de bouteilles d'acide sur son étagère...


Si ce que j'ai lu en anglais est correct, il n'y a que 2 choses pour attaquer cet expoxy:
- un acide fort
- un chauffage à 100°C (autant la mettre dans le micro-onde...)


Le pH de l'acide (sa concentration) peut toujours se bricoler..;
L'important c'est son pKa.

Dans le commerce, on trouve facilement de l'acide chlorhydrique.
Le pKa est de 7, ce qui n'est pas génial, même si je ne conseille pas d'en boire.

En cherchant d'avantage, on peut trouver de l'acide sulfurique, notamment pour recharger les "batteries sèches" de voitures/camions.
Là, le pKa est de 3, ce qui est beaucoup mieux pour l'attaque.

Mais je ne sais pas si cela suffira...
Et dans le cas négatif, je doute que l'on ait facilement accès à des produits plus puissants...


En passant Mic, avec un tel pKa, ton chiffon va se tranformer en gruyère... et je ne parle même pas des doigts qui tiennent le chiffon...


Je sais pas mais... tu es pas prof de Physique/chimie ? On va plutôt dire "Tu n'as pas accès à des labos de physique/chimie par des connaissances profs ?"
du genre "Et Salut Albert ! Tu as du dichlorométhanol à 2 mol/L ?"


J'imagine déjà la tête du pauvre Albert :#gni#:
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
Avatar de l’utilisateur
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 98.9%
 
Messages: 6414
Images: 22
Inscription: 27 Nov 2008, 00:00
Localisation: 0x1AACC355
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BAC+5: Epita (ING3)

PrécédenteSuivante

Retourner vers TI (30/34/36, Collège)

Qui est en ligne

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

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
"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.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
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.
1057 utilisateurs:
>1042 invités
>9 membres
>6 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)