CEmu - Émulateur de calculatrices TI 83 Premium CE et TI 84 Plus CE

Texas Instrument commercialise des calculatrices, parmi lesquelles les TI-83 Premium CE et TI-84 Plus CE, mais ne propose pas, à ce jour (27/02/2017), d'émulateur de ces calculatrices pour Linux.

Heureusement, le projet libre CEmu existe ! Il est présenté ici par son initiateur MateoConLechuga. Ce projet est actif et en constante évolution ; il est suffisamment avancé pour pouvoir utiliser cet émulateur en classe, par un professeur qui veut montrer à ses élèves comment utiliser une de ces calculatrices.

Nous allons voir comment :

  • compiler et installer CEmu sur un ordinateur tournant sous LinuxMint 18.1 ou Ubuntu Xenial ;
  • récupérer, grâce à Tilp, l'image de la ROM de notre calculatrice ;
  • utiliser cette image ROM pour émuler la calculatrice dans CEmu.

Disposer :

  • d'une calculatrice TI-83 Premium CE ou TI-84 Plus CE et de son câble USB/micro-USB ;
  • d'un ordinateur tournant sous LinuxMint ou Ubuntu ou toute autre distribution à base de Debian.

Tout ceci se fait sous Linuxmint ou Ubuntu.

Télécharger les sources de CEmu

Les sources de CEmu sont dans un dépôt GitHub : https://github.com/MateoConLechuga/CEmu. Pour les récupérer aisément, il suffit d'installer le paquet git :

sudo apt-get install git

puis de l'utiliser pour obtenir les sources :

cd
git clone https://github.com/MateoConLechuga/CEmu

Le code source de CEmu est alors dans le dossier CEmu situé à la racine de votre dossier personnel (~/CEmu).

Paquets nécessaires à la compilation

Installer les paquets qt5-default et g++ :

sudo apt-get install qt5-default g++

Qt 5.6.2 /opt pour Xenial

La version de Qt que l'on peut installer dans une Ubuntu Xenial par les dépôts officiels est trop ancienne pour pouvoir compiler CEmu. On va donc utiliser le PPA qui se trouve à l'adresse : https://launchpad.net/~beineri/+archive/ubuntu/opt-qt562-xenial pour installer la version Qt 5.6.2 /opt pour Xenial.

sudo add-apt-repository ppa:beineri/opt-qt562-xenial
sudo apt-get update
sudo apt-get install qt-latest

Cette installation prend quelques minutes.

Enfin, on compile CEmu

cd ~/CEmu/gui/qt
/opt/qt56/bin/qmake -r CEmu.pro
make

Après la compilation (qui peut se terminer par quelques warning sans conséquence), l'exécutable CEmu est situé dans ~/CEmu/gui/qt ; on peut le copier dans un autre dossier, si l'on préfère. Par exemple :

mkdir -p ~/bin
cp ~/CEmu/gui/qt/CEmu ~/bin/
Tilp est un de ces acronymes récursifs dont on est friand dans le monde du logiciel libre et qui signifie Tilp Is a Linking Program.

Tilp (plus précisément Tilp2) est un logiciel permettant d'échanger des fichiers entre l'ordinateur et la calculatrice, et surtout de récupérer la ROM de celle-ci, par l'intermédiaire du câble USB/mini-USB.

La récupération de la ROM de la calculatrice par Tilp2 est plus longue, mais bien plus complète (à ce jour), que celle qui peut être faite par CEmu. En effet, avec Tilp2 on récupère également toutes les applications et les langues (dont le Français), ce qui n'est pas fait par CEmu.

Cependant, les versions de Tilp2 (et ses bibliothèques) présentes dans les dépôts des différentes distributions n'est pas suffisante, à ce jour, pour communiquer pleinement avec les derniers modèles des calculatrices TI ; elles sont de plus incapables de récupérer correctement la ROM de la calculatrice.

Heureusement Romain Liévain, l'auteur de Tilp2, et son équipe ont mis au point un script qui permet d'installer les toutes dernières versions de Tilp2 et des bibliothèques qui lui sont nécessaires.

Voici ce qu'il faut faire, pas à pas.

Récupérer le script install_tilp.sh

Vérifier que l'on dispose bien de wget, qui permet de télécharger des fichiers sur le web, sans passer par un navigateur :

sudo apt-get update
sudo apt-get install wget

Ensuite, récupérer le script, le stocker dans le dossier tilp2 de votre répertoire personnel et le rendre exécutable :

mkdir ~/tilp2
cd ~/tilp2
wget http://lpg.ticalc.org/prj_tilp/download/install_tilp.sh
chmod +x install_tilp.sh

Nettoyage

Il est nécessaire de nettoyer l'ordinateur de tout paquet et fichier de configuration relatif à une éventuelle ancienne installation de tilp2 ou de ses bibliothèques :

sudo apt-get remove --purge libticonv* libtifiles* libticables* libticalcs* gfm tilp2
sudo apt-get autoremove
sudo find /usr/lib -iname "*ticonv*" -exec rm -irf {} \;
sudo find /usr/local/lib -iname "*ticonv*" -exec rm -irf {} \;
sudo find /usr/lib -iname "*ticable*" -exec rm -irf {} \;
sudo find /usr/local/lib -iname "*ticable*" -exec rm -irf {} \;
sudo find /usr/lib -iname "*ticalcs*" -exec rm -irf {} \;
sudo find /usr/local/lib -iname "*ticalcs*" -exec rm -irf {} \;
sudo find /usr/lib -iname "*tifiles*" -exec rm -irf {} \;
sudo find /usr/local/lib -iname "*tifiles*" -exec rm -irf {} \;

sudo rm -rf ~/lpg

Préparation

Installer les paquets nécessaires à la compilation de tilp2 et des ses bibliothèques (oui, c'est une seule ligne !) :

sudo apt-get install build-essential git autoconf automake autopoint libtool libtool-bin libglib2.0-dev zlib1g-dev libusb-1.0-0-dev libgtk2.0-dev libglade2-dev gettext bison flex groff texinfo xdg-utils libarchive-dev intltool

Créer un dossier et un lien symbolique nécessaires lors de la compilation :

sudo mkdir -p /usr/include/tilp2
cd /usr/local/include/
sudo ln -s ../../include/tilp2

Installer Tilp

On lance le script, en demandant de récupérer la dernière version de tilp2 et de ses bibliothèques (c'est le rôle du USE_EXPERIMENTAL=1 qui débute la seconde ligne) :

cd ~/tilp2
USE_EXPERIMENTAL=1 sudo ./install_tilp.sh

La compilation débute dès la fin de la récupération des fichiers ; on a le temps d'une petite pause.

Accès à la calculatrice en utilisateur

Si on laissait les choses en l'état, seul le super-utilisateur (root) aurait accès à la calculatrice par le port usb, et serait donc le seul autorisé à utiliser Tilp (par sudo).

Pour permettre à tout utilisateur de l'ordinateur d'utiliser Tilp, il suffit de copier dans le fichier /etc/udev/rules.d/69-libticables.rules (sudo nano /etc/udev/rules.d/69-libticables.rules) les lignes suivantes :

ACTION!="add", GOTO="libticables_end"

# serial device (assume TI calculator)
KERNEL=="ttyS[0-3]", ENV{ID_PDA}="1"
# parallel device (assume TI calculator)
SUBSYSTEM=="ppdev", ENV{ID_PDA}="1"
# SilverLink
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="e001", ENV{ID_PDA}="1"
# TI-84+ DirectLink
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="e003", ENV{ID_PDA}="1"
# TI-89 Titanium DirectLink
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="e004", ENV{ID_PDA}="1"
# TI-84+ SE DirectLink
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="e008", ENV{ID_PDA}="1"
# TI-Nspire DirectLink
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="e012", ENV{ID_PDA}="1"

LABEL="libticables_end"

Fermez l'éditeur nano avec Ctrl-X (répondez par l'affirmative). Puis :

sudo service udev restart

Brancher ensuite la calculatrice. Si elle était déjà branchée, débranchez puis rebranchez-la.

Récupérer la ROM

Brancher la calculatrice TI-83 Premium CE à l'ordinateur par l'intermédiaire du câble USB/mini-USB fourni avec la calculatrice.

Bien enfoncer le câble dans la calculatrice ; on ne doit plus voir la partie métallique, ne pas hésiter à forcer. La plupart des erreurs de communications sont dues à un câble mal inséré.

Puis lancer tilp avec les droits root :

mkdir -p ~/TI83CERom
sudo tilp

Dans la partie droite de la fenêtre, se placer dans le dossier TI83CERom.

Dans le menu Fichier/Paramètres, indiquer dans la configuration que le câble est un DirectLink et rechercher la calculatrice connectée à l'aide de l'icône représentant une loupe ; sélectionner cette calculatrice en cliquant dessus. Valider.

Une fois revenu dans la fenêtre principale, charger le contenu de la calculatrice :

Puis double-clic sur Système d'exploitation. Après quelques messages d'avertissement, un programme est envoyé sur la calculatrice et exécuté pour en récupérer la ROM. L'exécution de ce programme est assez longue, on a l'impression en regardant ce qui se passe dans le terminal qu'il fait constamment la même chose et la calculatrice affiche une grande quantité de Asm(prgmROMDUMP), c'est normal ; on peut prendre une seconde pause, jusqu'à ce que Tilp vous propose d'enregistrer le fichier contenant la ROM. Enregistrez-le dans le dossier ~/TI83CERom sous le nom TI83PCE.rom.

Une fois la ROM sauvegardée, profiter de Tilp pour supprimer de la calculatrice (clic-droit) les fichiers ROMDUMP et ROMDATA et enregistrer les programmes qui s'y trouvent (afin de les insérer plus tard dans CEmu).
Ayant lancé tilp avec les droits root, les fichiers (y compris la ROM) récupérés par l'intermédiaire de tilp appartiennent à l'utilisateur root. S'ils ont été enregistrés dans ~/TI83CERom, exécuter la commande suivante pour en redevenir propriétaire :
sudo chown -R $USER:$USER ~/TI83CERom
~/bin/CEmu

Au premier lancement de CEmu, il est demandé de choisir le fichier contenant la ROM. Une fois cela fait, on peut utiliser sa calculatrice virtuelle (onglet Keypad pour voir le clavier).

Si l'on voit mal les onglets (en bas de la fenêtre de CEmu), déplacer la fenêtre de CEmu à l'aide de Alt-Clic_Maintenu.

Pour envoyer des fichiers (programmes) ou faire d'autres actions, clic-droit sur l'écran virtuel.

Mille mercis aux géniaux développeurs de CEmu et de Tilp, qui ont permis que l'on puisse n'utiliser que notre système d'exploitation favori pour réaliser tout cela !

  • linuxaddict/logiciels/cemu.txt
  • Dernière modification: 08/09/2017, 18:34
  • par Claude Clerc