π
<-

1ère connexion JTAG fonctionnelle sur TI-Nspire CX

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

1ère connexion JTAG fonctionnelle sur TI-Nspire CX

Unread postby critor » 07 Aug 2016, 21:04

En avril 2015, Lionel Debroux nous signalait la prise de contrôle totale des calculatrices HP Prime via la voie matérielle du JTAG sur le site Cemetech.
Une fois les connexions JTAG correctement soudées, il devenait alors possible de reprogrammer totalement l'intégralité de la mémoire NAND, y compris la zone d'amorçage contenant le Boot Code, et ce même si la calculatrice n'était plus en état de démarrer correctement ! :o
Les applications directes de la technique étaient de réparer des calculatrices inutilisables (mémoire Flash-NAND corrompue ou effacée), ou d'injecter des failles qui pouvaient être exploitées par la suite (Boot Code modifié par exemple).



Là où la HP Prime sortie à la rentrée 2013 était encore relativement jeune, sur les TI-Nspire sorties dès la rentrée 2007 pour les modèles monochromes, personne n'avait jamais réussi un tel exploit malgré des années ayant vu défiler des gens très compétents. :'(
Pourtant, dans le contexte des recherches visibles à l'époque sur le site Yaronet et ayant conduit à la sortie du jailbreak Ndless 1.0 pour la rentrée 2010, l'on suspectait déjà la présence de connexions JTAG.

397398445La présence du JTAG est devenue de plus en plus une certitude, lorsque nous pûmes observer la carte de développement du TI-Phoenix 1, nom de code interne de la gamme TI-Nspire monochrome.

Cette carte datée de décembre 2005 fut utilisée par les ingénieurs Texas Instruments pendant la phase initiale de développement, ayant l'avantage d'exposer à échelle humaine des moyens de contrôle directs des différents composants, y compris ceux renfermés dans la puce ASIC.
Et cette carte comportait justement un bloc dénommé JTAG avec deux connecteurs usuels 14 et 20 broches... :o

3019Ces connecteurs étaient bien évidemment absents des cartes mères miniaturisées des TI-Nspire. Mais nous avons pu remarquer sur les modèles monochromes puis couleur, la présence interne de contacts pour un connecteur J04 manquant à 30 broches. :o

Un connecteur fort bizarrement présent sur les prototypes prêtés par Texas Instruments à divers partenaires et pas toujours récupérés, ce qui fait que certains d'entre eux se retrouvent régulièrement revendus en ligne, notamment en Chine. Un connecteur que nous soupçonnions donc très fortement d'implémenter entre autres le JTAG. ;)

3035Dès octobre 2013 nous récupérions donc une calculatrice TI-Nspire CX munie d'un tel connecteur, et arrivions même à l'identifier ! :D



72137214Désormais munis des bonnes références et connecteurs, près de deux ans et demi après, nous venons enfin de réaliser la toute première connexion JTAG fonctionnelle avec cette calculatrice, à l'aide d'un adaptateur USB/JTAG de chez Olimex, le TMS320-JTAG-USB XDS100 V2 ! :bj:

En effet, une fois la calculatrice connectée le logiciel OpenOCD détecte deux éléments exploitables :
Code: Select all
Open On-Chip Debugger 0.9.0 (2015-08-15-12:41)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
adapter speed: 1500 kHz
Warn : Using DEPRECATED interface driver 'ft2232'
Info : Consider using the 'ftdi' interface driver, with configuration files in interface/ftdi/...
Info : device: 6 "2232H"
Info : deviceID: 67348176
Info : SerialNumber: TIWBH0NSA
Info : Description: Texas Instruments Inc.XDS100 Ver 2.0 A
Info : max TCK change to: 30000 kHz
Info : clock speed 1500 kHz
Warn : There are no enabled taps.  AUTO PROBING MIGHT NOT WORK!!
Info : JTAG tap: auto0.tap tap/device found: 0x1b900f0f (mfg: 0x787, part: 0xb900, ver: 0x1)
Info : JTAG tap: auto1.tap tap/device found: 0x07926f0f (mfg: 0x787, part: 0x7926, ver: 0x0)

Les deux éléments ont pour identifiant de fabricant 0x787, ce qui est le code générique pour de la technologie ARM, la même utilisée par le processeur des TI-Nspire, tout colle ! :bj:

A titre d'information pour ceux souhaitant tenter de reproduire l'exploit, le fichier de configuration OpenOCD utilisé à ce jour est le suivant :
Code: Select all
#
# Texas Instruments XDS100v2
#
# http://processors.wiki.ti.com/index.php/XDS100#XDS100v2_Features
#

interface ft2232
ft2232_device_desc "Texas Instruments Inc.XDS100 Ver 2.0"
ft2232_layout xds100v2
adapter_khz 1500


Ce sont de nouveaux horizons qui s'ouvrent aujourd'hui sur TI-Nspire, avec là encore la possibilité de reprogrammer la mémoire NAND des calculatrices hors service, et peut-être de reconfigurer divers autres petites choses intéressantes... ;)



Un grand merci aux nombreuses personnes bien plus compétentes que nous, qui ont bien voulu nous assister et aider sur plusieurs années dans cette tâche inédite pour nous. :bj:
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15890
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: 1ère connexion JTAG fonctionnelle sur TI-Nspire CX

Unread postby Wistaro » 07 Aug 2016, 22:18

Reprogrammer la NAND d'une Nspire...

C'est cool :bj: !

Bientôt l'ASIC de la Nspire n'aura plus de secret :p
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.4%
 
Posts: 3183
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: 1ère connexion JTAG fonctionnelle sur TI-Nspire CX

Unread postby Lionel Debroux » 08 Aug 2016, 06:13

Pour l'instant, on ne sait pas si c'est possible de reprogrammer la NAND à travers le JTAG. Mais réussir à communiquer avec le JTAG d'une Nspire est une grande avancée :)
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: 1ère connexion JTAG fonctionnelle sur TI-Nspire CX

Unread postby critor » 01 Jan 2018, 21:52

Fichier de config JTAG un peu plus étoffé, basé entre autre sur celui de la HP Prime :
https://pastebin.com/41Fsa0tM

J'ai supposé que le composant de même ID 0x07926f0f était le cpu ARM.
Aucune idée de comment configurer le second composant 0x1b900f0f détecté si ce n'est pas un cpu.

Code: Select all
#
# Texas Instruments XDS100v2
#
# http://processors.wiki.ti.com/index.php/XDS100#XDS100v2_Features
#

interface ft2232
ft2232_device_desc "Texas Instruments Inc.XDS100 Ver 2.0"
ft2232_layout xds100v2

adapter_khz 60
adapter_nsrst_delay 200
jtag_ntrst_delay 200
reset_config trst_and_srst srst_pulls_trst

# TI-Nspire Navigator
#jtag newtap auto0 tap -irlen 6 -expected-id 0x2b89102f

# TI-Nspire CX
jtag newtap auto0  tap -irlen 4 -expected-id 0x1b900f0f
jtag newtap nspire cpu -irlen 4 -expected-id 0x07926f0f
target create nspire.cpu arm926ejs -endian little -chain-position nspire.cpu

scan_chain
targets


On avance... très doucement :
Code: Select all
>openocd.exe
Open On-Chip Debugger 0.9.0 (2015-08-15-12:41)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
adapter speed: 60 kHz
adapter_nsrst_delay: 200
jtag_ntrst_delay: 200
trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
   TapName             Enabled  IdCode     Expected   IrLen IrCap IrMask
-- ------------------- -------- ---------- ---------- ----- ----- ------
0 auto0.tap              Y     0x00000000 0x1b900f0f     4 0x01  0x03
1 nspire.cpu             Y     0x00000000 0x07926f0f     4 0x01  0x03
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
0* nspire.cpu         arm926ejs  little nspire.cpu         unknown
Warn : Using DEPRECATED interface driver 'ft2232'
Info : Consider using the 'ftdi' interface driver, with configuration files in interface/ftdi/...
Info : device: 6 "2232H"
Info : deviceID: 67348176
Info : SerialNumber: TIWBH0NSA
Info : Description: Texas Instruments Inc.XDS100 Ver 2.0 A
Info : max TCK change to: 30000 kHz
Info : clock speed 60 kHz
Info : JTAG tap: auto0.tap tap/device found: 0x1b900f0f (mfg: 0x787, part: 0xb900, ver: 0x1)
Info : JTAG tap: nspire.cpu tap/device found: 0x07926f0f (mfg: 0x787, part: 0x7926, ver: 0x0)
Info : Embedded ICE version 6
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15890
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: 1ère connexion JTAG fonctionnelle sur TI-Nspire CX

Unread postby critor » 01 Jan 2018, 22:42

Allez, je suis généreux, une petite ligne de plus avec le 2ème élément qui est un boundary scan :
Code: Select all
#
# Texas Instruments XDS100v2
#
# http://processors.wiki.ti.com/index.php/XDS100#XDS100v2_Features
#

interface ft2232
ft2232_device_desc "Texas Instruments Inc.XDS100 Ver 2.0"
ft2232_layout xds100v2

adapter_khz 500
adapter_nsrst_delay 10
jtag_ntrst_delay 200
reset_config trst_and_srst srst_pulls_trst

# TI-Nspire Navigator
#jtag newtap auto0 tap -irlen 6 -expected-id 0x2b89102f

# TI-Nspire
jtag newtap nspire bs  -irlen 4 -expected-id 0x1b900f0f
jtag newtap nspire cpu -irlen 4 -expected-id 0x07926f0f
target create nspire.cpu arm926ejs -endian little -chain-position nspire.cpu

scan_chain
targets



Code: Select all
>openocd.exe
Open On-Chip Debugger 0.9.0 (2015-08-15-12:41)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
adapter speed: 500 kHz
adapter_nsrst_delay: 10
jtag_ntrst_delay: 200
trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
   TapName             Enabled  IdCode     Expected   IrLen IrCap IrMask
-- ------------------- -------- ---------- ---------- ----- ----- ------
0 nspire.bs              Y     0x00000000 0x1b900f0f     4 0x01  0x03
1 nspire.cpu             Y     0x00000000 0x07926f0f     4 0x01  0x03
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
0* nspire.cpu         arm926ejs  little nspire.cpu         unknown
Warn : Using DEPRECATED interface driver 'ft2232'
Info : Consider using the 'ftdi' interface driver, with configuration files in interface/ftdi/...
Info : device: 6 "2232H"
Info : deviceID: 67348176
Info : SerialNumber: TIWBH0NSA
Info : Description: Texas Instruments Inc.XDS100 Ver 2.0 A
Info : max TCK change to: 30000 kHz
Info : clock speed 500 kHz
Info : JTAG tap: nspire.bs tap/device found: 0x1b900f0f (mfg: 0x787, part: 0xb900, ver: 0x1)
Info : JTAG tap: nspire.cpu tap/device found: 0x07926f0f (mfg: 0x787, part: 0x7926, ver: 0x0)
Info : Embedded ICE version 6
Info : nspire.cpu: hardware has 2 breakpoint/watchpoint units
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15890
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: 1ère connexion JTAG fonctionnelle sur TI-Nspire CX

Unread postby critor » 28 Feb 2018, 23:03

Je continue à avancer. A pas d'escargot car n'y connaissant pas grand chose et ne recevant aucune aide, mais j'avance.

Bonne nouvelle, les TI-Nspire TouchPad utilisent le même format de connecteur JTAG que les TI-Nspire CX. :bj:

1ère connexion JTAG TI-Nspire TouchPad fonctionnelle ce soir, je raconterai comment dans une news prochainement. :bj:

Je découvre donc les valeurs à configurer comme vous :
Code: Select all
openocd.exe -f openocd.cfg
Open On-Chip Debugger 0.9.0 (2016-09-01) [https://github.com/sysprogs/openocd]
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
adapter speed: 500 kHz
Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED
Info : clock speed 500 kHz
Warn : There are no enabled taps.  AUTO PROBING MIGHT NOT WORK!!
Info : JTAG tap: auto0.tap tap/device found: 0xb069316d (mfg: 0x0b6 (ZSP Corp.), part: 0x0693, ver: 0xb)
Warn : AUTO auto0.tap - use "jtag newtap auto0 tap -irlen 29 -expected-id 0xb069316d"
Warn : gdb services need one or more targets defined
Info : JTAG tap: auto0.tap tap/device found: 0x0792606d (mfg: 0x036 (LSI Logic), part: 0x7926, ver: 0x0)
   TapName             Enabled  IdCode     Expected   IrLen IrCap IrMask
-- ------------------- -------- ---------- ---------- ----- ----- ------
0 auto0.tap              Y     0x0792606d 0x00000000    29 0x01  0x03
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------


Comme conseillé par OpenOCD, je suis passé du pilote ft2232 au pilote ftdi.
Mais pour faire fonctionner correctement mon interface JTAG dans ce cas le fichier de config est plus compliqué, lançant la détection 2 fois et obtenant je suppose de mauvaises valeurs la première fois.

Contrairement aux CX, le fabricant de la puce principale sur les TouchPad n'est donc pas TI (0x787), mais LSI Logic (0x036).

Voici donc la config qui vient avec, et que j'ai améliorée depuis la dernière fois, pour pouvoir basculer facilement entre :
  • nos différents appareils avec JTAG que je peux connecter à ce jour et donc leurs configs (TI-Nspire CX, TI-Nspire TouchPad, TI-Nspire ViewScreen, TI-Nspire Navigator)
  • mes interfaces JTAG (j'en ai pris une deuxième exprès pour le connecteur 20 broches TI-Nspire ViewScreen mais ne suis arrivé à rien avec à date)
  • les pilotes ft2232 et ftdi, puisque OpenOCD recommande fortement de passer à l'ftdi et que la nouvelle interface JTAG marche encore moins bien avec l'ancien pilote
Code: Select all
#set DRV "ft2232"
set DRV "ftdi"

set INT "xds100v2"
#set INT "tinyh"

#set TRG "navigator"
#set TRG "viewscreen"
set TRG "nspire"
#set TRG "cx"
#set TRG "none"

# *** DRIVERS ***
interface $DRV

# *** INTERFACES ***
if { $INT=="xds100v2" } {
   set INT_DESC "Texas Instruments Inc.XDS100 Ver 2.0"
   set INT_VID 0x0403
   set INT_PID 0xa6d0
}
if { $INT=="tinyh" } {
   set INT_DESC "Olimex OpenOCD JTAG ARM-USB-TINY-H"
   set INT_VID 0x15ba
   set INT_PID 0x002a
}
if { $DRV=="ft2232" } {
   ft2232_device_desc "$INT_DESC"
   ft2232_vid_pid $INT_VID $INT_PID
   ft2232_layout $INT
}
if { $DRV=="ftdi"} {
   ftdi_vid_pid $INT_VID $INT_PID
   if { $INT=="xds100v2"} {
      ftdi_layout_init 0x0038 0x597b
      ftdi_layout_signal nTRST -data 0x0010
      ftdi_layout_signal nSRST -oe 0x0100
      ftdi_layout_signal EMU_EN -data 0x0020
      ftdi_layout_signal EMU0 -oe 0x0040
      ftdi_layout_signal EMU1 -oe 0x1000
      ftdi_layout_signal PWR_RST -data 0x0800
      ftdi_layout_signal LOOPBACK -data 0x4000
   }
   if { $INT=="tinyh"} {
      ftdi_layout_init 0x0808 0x0a1b
      ftdi_layout_signal nSRST -oe 0x0200
      ftdi_layout_signal nTRST -data 0x0100 -oe 0x0100
      ftdi_layout_signal LED -data 0x0800
   }
   transport select jtag
}

adapter_khz 500

# *** TARGETS ***
if { $TRG=="navigator" } {   # TI-Nspire Navigator access point
   jtag newtap nsnav jrc -irlen 6 -expected-id 0x2b89102f -ircapture 0x1 -irmask 0x3f
   target create nsnav.jrc cortex_a -chain-position nsnav.jrc
}
if { $TRG=="viewscreen" } {   # TI-Nspire+ calculator / TI-Nspire ViewScreen
   jtag newtap nspirep cpu -irlen 4 -expected-id 0x0692602f
   jtag newtap nspirep unknown -irlen 2 -expected-id 0x00000000 -ircapture 0x1 -irmask 0x3
   target create nspirep.cpu arm926ejs -endian little -chain-position nspirep.cpu
}
if { $TRG=="cx" } {   # TI-Nspire CX calculator
   jtag newtap nspire bs  -irlen 4 -expected-id 0x1b900f0f
   jtag newtap nspire cpu -irlen 4 -expected-id 0x07926f0f
   target create nspire.cpu arm926ejs -endian little -chain-position nspire.cpu
}
if { $TRG=="nspire" } {   # TI-Nspire calculator
   jtag newtap nspire cpu -irlen 4 -expected-id 0x0792606d
   target create nspire.cpu arm926ejs -endian little -chain-position nspire.cpu
}

init
if { $DRV=="ftdi"  && $INT=="xds100v2"} {
   ftdi_set_signal PWR_RST 1
   jtag arp_init
}

scan_chain
targets


Et le résultat : :)
Code: Select all
openocd.exe -f openocd.cfg
Open On-Chip Debugger 0.9.0 (2016-09-01) [https://github.com/sysprogs/openocd]
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
adapter speed: 500 kHz
Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED
Info : clock speed 500 kHz
Info : JTAG tap: nspire.cpu tap/device found: 0x0792606d (mfg: 0x036 (LSI Logic), part: 0x7926, ver: 0x0)
Info : Embedded ICE version 6
Info : nspire.cpu: hardware has 2 breakpoint/watchpoint units
Info : JTAG tap: nspire.cpu tap/device found: 0x0792606d (mfg: 0x036 (LSI Logic), part: 0x7926, ver: 0x0)
   TapName             Enabled  IdCode     Expected   IrLen IrCap IrMask
-- ------------------- -------- ---------- ---------- ----- ----- ------
0 nspire.cpu             Y     0x0792606d 0x0792606d     4 0x01  0x03
    TargetName         Type       Endian TapName            State
--  ------------------ ---------- ------ ------------------ ------------
0* nspire.cpu         arm926ejs  little nspire.cpu         running
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15890
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: 1ère connexion JTAG fonctionnelle sur TI-Nspire CX

Unread postby critor » 07 Mar 2018, 12:39

Annoncé le connecteur JTAG TI-Nspire TouchPad :
viewtopic.php?f=43&t=21141#p228087
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15890
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: 1ère connexion JTAG fonctionnelle sur TI-Nspire CX

Unread postby critor » 17 Mar 2018, 18:39

Connexion maintenant annoncée : :)
viewtopic.php?f=43&t=21190&p=228647#p228647
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15890
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor


Return to News TI-Nspire

Who is online

Users browsing this forum: No registered users and 13 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.
946 utilisateurs:
>915 invités
>23 membres
>8 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)