Planète Casio - Vos tutoriels et astuces - Flux RSS http://www.planet-casio.com Programmes Casio, Jeux, Cours pour Calculatrices Casio fr-FR https://www.planet-casio.com/images/logo.gif Planète Casio - Vos tutoriels et astuces - Flux RSS http://www.planet-casio.com 55 50 Programmes Casio, Jeux, Cours pour Calculatrices Casio. Tue, 27 Sep 2022 10:46:31 GMT Tue, 27 Sep 2022 10:46:31 GMT contact@planet-casio.com (Planet Casio) contact@planet-casio.com (Planet Casio) 5 Casio Compiler Explorer Setup Tutorial! https://www.planet-casio.com/Fr/forums/topic17143--.html Today I will show you how to run a local instance of compiler explorer (https://godbolt.org) with a compiler option for Casio calculators! Please note I have only tried this on Linux although it probably also works on MacOS. https://cdn.discordapp.com/attachments/743577895494221894/1015984694606696498/Casio_Compiler_Explorer.png #Step 0: Install basic build tools for your operating system On Linux it is often “build-essential” if you are on a debian based distro or “base-devel” if you are on an Arch based distro. On MacOS it is “xcode-select --install”. If that doesn’t work you may need to install XCode from the AppStore first (please note I am not a Mac expert). #Step 1: Install nodejs and npm If you already have them installed make sure you are using node version 16 LTS release and skip to step 2. It is not recommended to install nodejs and npm from your Linux distro’s repository! You should install them with a version manager like nvm or fnm. I will show you how to use fnm which is written in rust. If you are using MacOS you should install fnm with homebrew. Then go to (https://github.com/Schniz/fnm#shell-setup) and use the instructions for your shell and go to step 2. If you are unsure which one you have, type "echo $0" into the terminal and it will tell you. To install nodejs and npm type “fnm install 16” followed by “fnm use 16”. If you are on Linux do not install rustup or cargo from your Linux distro’s repository! Instead, go to the rust website (https://www.rust-lang.org/tools/install) and use the script to install rustup. Press 1 and hit enter to proceed with the default installation. Once it is finished you must close and reopen your terminal. Now type “cargo install fnm”. Once it is installed go to (https://github.com/Schniz/fnm#shell-setup) and use the instructions for your shell and go to step 2. If you are unsure which one you have, type "echo $0" into the terminal and it will tell you. To install nodejs and npm type “fnm install 16” followed by “fnm use 16”. #Step 2: Install Compiler Explorer Go to (https://github.com/compiler-explorer/compiler-explorer) and clone the repository to the directory of your choice. Then go into the directory and type “make”. If all has gone according to plan after a while (it can take quite some time) it should compile and you can access compiler explorer at http://localhost:10240. For now, just Ctrl+C to stop it and proceed to step 3. #Step 3: Install the Casio calculator compiler and build tools Go to (https://gitea.planet-casio.com/Lephenixnoir/GiteaPC) and install giteapc. If you are using MacOS make sure to also look at (https://www.planet-casio.com/Fr/forums/topic16614-8-giteapc-installer-et-mettre-a-jour-automatiquement-des-projets-gitea.html#186763). You may need to restart your terminal after you are done installing giteapc. Now we need to install gint and the compiler. Type “giteapc install Lephenixnoir/gint”. Please note that this will compile a lot of stuff including gcc and binutils so it will take quite some time. After that restart your terminal once more. Once that is done continue to step 4. #Step 4: Configure compiler explorer to add an option for a casio compiler If you want to download the config files instead I will attach them (https://gitea.planet-casio.com/Atrt7/Compiler-Explorer-Casio-Config). For additional information read (https://github.com/compiler-explorer/compiler-explorer/blob/main/docs/AddingACompiler.md). Please note in the provided config files you must put your username in the fields that require them, search for username and you fill find two in each config file. In the directory for compiler explorer go into the “etc” directory and then go into the “config” directory. Copy the file “c.defaults.properties” and paste it into the same directory with the name “c.local.properties”. Open “c.local.properties” and change the second line from “compilers=:&gcc:&clang” to “compilers=:&gcc:&clang:&casio”. By doing this we will add a Casio compiler group. Go to the bottom of the file and copy the following after an empty line. group.casio.compilers=ccasiodefault compiler.ccasiodefault.exe=/home/ChangeToYourUsername/.local/bin/sh-elf-gcc compiler.ccasiodefault.supportsExecute=false compiler.ccasiodefault.needsMulti=false compiler.ccasiodefault.objdumper=/home/ChangeToYourUsername/.local/bin/sh-elf-objdump compiler.ccasiodefault.name=casio default Make sure you put your username where ChangeToYourUsername is, there are two spots. Also where it says “defaultCompiler=gdefault” change "gdefault" to “ccasiodefault”. Now we must do the same for c++. Copy “c++.defaults.properties” and name the copy “c++.local.properties”. Open “c++.local.properties” and change the second line from “compilers=:&gcc:&clang” to “compilers=:&gcc:&clang:&casio”. You will notice a block of continuous lines that starts with group.gcc.compilers=g44:g45:g46:g47:g48:g5:g6:g7:g8:g9:g10:g11:gdefault and ends with compiler.gdefault.name=g++ default After this continuous block of configurations add a blank line followed by group.casio.compilers=cppcasiodefault compiler.cppcasiodefault.exe=/home/ChangeToYourUsername/.local/bin/sh-elf-g++ compiler.cppcasiodefault.supportsExecute=false compiler.cppcasiodefault.needsMulti=false compiler.cppcasiodefault.objdumper=/home/ChangeToYourUsername/.local/bin/sh-elf-objdump compiler.cppcasiodefault.name=casioc++ default Please note that you must put your username where ChangeToYourUsername is, there are two spots. Now go to the bottom of the file. Finally around the bottom of the file there should be a line that says “defaultCompiler=gdefault”. Change “gdefault” to “cppcasiodefault”. #Step 5 Now everything should be set up, you can go to the top of the compiler explorer directory and type “make” again and everything should work. Because we don’t have a fully set up cmake project in compiler explorer, you must put “#define FX9860G” or “#define FXCG50” for the respective platform you are using if you want to use gint headers in compiler explorer. Don’t put that #define in your actual project code however, only use it for compiler explorer. Also if you want many more languages and architectures for your local compiler explorer instance read (https://github.com/compiler-explorer/infra). Note that these are the ones you find on godbolt not anything related to casio calculators. If you get a makefile error after running “make” try “make clean” and then “make” again. Please let me know if everything works and if there are any mistakes or any improvements I can make. I hope my work proves helpful to you all! Sun, 04 Sep 2022 16:08:50 +0200 TechTuto #01 - Utiliser la STL sur Casio - Partie 1 - Intro / Installation https://www.planet-casio.com/Fr/forums/topic17097--.html Soyez les bienvenus dans cette petite série d'articles que nous pourrions qualifier de "techniques", dans le sens où le but est de proposer des éléments de résolution de problèmes concrets et pratiques qui apparaissent souvent durant la création d'un programme. Le but n'est clairement pas de proposer des tutoriels exhaustifs sur un sujet, il en existe certainement des milliers d'autres soit plus complets, soit plus détaillés et donc tout simplement meilleurs sur Internet, mais bien de préciser ce qu'il est possible de faire sur nos belles machines Casio avec les outils disponibles. Nous allons donc donner dans le tutoriel applicatif sur nos machines favorites ;) Dans la philosophie, il s'agit avant tout d'un échange, tout commentaire (constructif bien entendu) et toute expérience (bonne ou mauvaise) sera intéressante à partager via les commentaires/messages. Alors n'hésitez pas à participer. Pour commencer ce que j'espère être une série au moyen/long terme, je vous propose de regarder d'un peu plus près une librairie très intéressante : la Standard Template Library ou STL. La STL, c'est quoi au juste ? La Standard Template Library (on écrira STL par la suite, c'est nettement plus court :E ) est une bibliothèque destinée au langage C++ et normalisée par l'ISO à travers le document ISO/CEI 14882. Elle est mise en œuvre à l'aide des templates (ou autrement nommés modèles/patrons en français). Cette bibliothèque offre les fonctionnalités (principales) suivantes : - un ensemble de classes conteneurs (containers), telles que les vecteurs (vector), les tableaux associatifs (map), les listes doublement chaînées (list), etc. qui peuvent être utilisées pour contenir n'importe quel type de données à condition que le type concerné supporte certaines opérations telle que la copie et l'assignation. - une abstraction des pointeurs : les itérateurs (iterator), qui fournissent un moyen simple et élégant de parcourir des séquences d'objets dans les conteneurs sus-cités et qui permettent la description d'algorithmes indépendamment de toute structure de données. - des algorithmes génériques tels que des algorithmes d'insertion/suppression, recherche et tri dans les conteneurs. - une classe string permettant de gérer efficacement et de manière sûre les chaînes de caractères. - et diverses autres classes ou méthodes qui rendent la vie du programmeur C++ nettement plus facile :D Cette définition est assez large, mais elle contient des points néanmoins très très importants : - il s'agit d'une librairie C++, pas C. Elle n'est pas utilisable sans avoir accès à un compilateur C++, qui fort heureusement est disponible pour nos machines Casio (ce bon vieux GCC dans sa version SH). En particulier la définition des classes reposant sur l'usage de templates rend nécessaire le langage C++. - il s'agit d'une librairie normalisée (au sens de correspondant à une norme, i.e. standardisée), donc compatible sur diverses architectures, permettant ainsi la retranscription aisée d'un programme sur une autre cible, en minimisant les parties à ré-écrire. OK, OK, mais concrètement on peut faire quoi avec cette STL ? Imaginons un instant que vous vouliez écrire un programme dont les données seront contenues dans un tableau, mais dont la taille vous est par avance inconnue (par exemple reposant sur les entrées au bon vouloir d'un utilisateur). Il existe classiquement la méthode de l’allocation dynamique via malloc, que les programmeurs avec un peu d’expérience connaissent bien. Mais cela nécessite l’écriture de routines spécifiques pour gérer un nombre de cas usuels (insertion d’un nouvel éléments dans le tableau, suppression d’un élément, …). Les plus courageux peuvent se lancer dans l'écriture de fonction permettant d'opérer dans un tableau dynamiquement alloué ou dans une liste chaînée. Bien entendu tout cela est faisable, mais au prix d’un effort conséquent de programmation. Disons simplement que c'est sympa à faire une fois pour comprendre, mais devient vite pénible si on considère que ce cas revient dans de très nombreux programmes. L'idéal serait d'avoir des méthodes génériques permettant d'opérer de la même manière quel que soit le contenu à stocker. En gros, séparer le contenant du contenu, comme une bouteille en verre sait aussi bien contenir du lait que de l'eau ou même du sable ... Et bien soyez heureux, nous allons justement voir comment arriver à ce résultat dans vos programmes. En effet, la STL offre un ensemble de conteneurs qui permettent de stocker divers types de données indépendamment de leur type. Par exemple, si vous voulez stocker des données de type uint32_t, ou de type char* ou bien encore de type tartampion, la STL vous offre un certain nombre de conteneurs génériques opérationnels de manière totalement transparente (par exemple une liste chainée list ou bien un tableau dynamique vector pourraient être de bons candidats). Ainsi si on désire stocker dans une liste doublement chaînée (pas de panique, on expliquera bientôt) des entiers non signés sur 16bit, rien de plus simple, il suffit de déclarer : std::list<uint16_t> maListe;pour ensuite remplir la liste, il suffit d’ajouter des éléments à la fin de cette dernière : maListe.push_back( 10 ); maListe.push_back( 45 ); maListe.push_back( 60 );ce qui en langage décodé revient à créer une liste d'entiers positifs sur 16bits dans une liste portant le doux nom de maListe (je sais c'est original et recherché comme nom ;) ). Ensuite on ajoute à cette liste les entiers 45 puis 60. De même pour stocker des pointeurs vers des objets de type Point2D, là encore très facile : class Point2D { public: float x; float y; Point2D( float xn, float yn ) {x=xn; y=yn;}; ~Point2D( ); }; std::vector<Point2D *> maListeDePoint2D;l’insertion est dans ce cas juste un peu plus subtile, car il faut créer les instances d’objets dont on désire garder trace du pointeur dans notre liste : Point2D *monPoint = new Point2D( 1.0f, 2.0f ); maListeDePoint2D.push_back( monPoint );cette fois on stocke dans un tableau dynamique (vector, mais on y reviendra là encore par la suite) les adresses des pointeurs de type Point2D instanciés par l'opérateur new. Donc vous l’aurez compris, le but de la STL est d’offrir tout un éventail de classes permettant de gagner énormément de temps lors de la réalisation d’un programme en C++. Elle permet en effet de ne pas avoir à coder des pans entiers de programmes simplement destinés à manipuler des types de données en offrant des classes génériques, mais surtout ces classes sont très largement utilisées par la communauté depuis de nombreuses années et les bugs ont été très largement corrigés (les premières pierres de la STL ayant été posées à la fin des années 70). Le principal apport de la STL est d'offrir un code C++ normalisé pour certains objets classiques, garantissant ainsi un code source lisible, facilement réutilisable et maintenable. Comment on se sert de la STL sur Casio ? Nous partirons sur le principe que vous codez via gint, l’implémentation de la STL étant basée sur gint/fxSDK/fxlibc et le compilateur GCC adapté à l’architecture SH. Sur une installation fonctionnelle de gint/fxSDK, il suffit alors de passer par giteapc pour ajouter la librairie µSTL2.3 giteapc install Slyvtt/uSTL2_3 µSTL est une implémentation légère de la STL destinée en priorité aux architectures dites embarquées et n’offrant pas une puissance de calcul démesurée (typiquement nos Casio correspondent bien à cette définition). Cette version légère reprend néanmoins le standard de la STL et offre les fonctions les plus importantes de cette dernière. Je vous invite éventuellement à regarder le fil du développement de cette librairie ici : µSTL pour Casio Lors de la création d’un nouveau projet avec fxSDK fxsdk new monProjet il vous faudra procéder à quelques ajustements dans le projet afin de vous mettre en ordre de bataille pour compiler en C++ et pour préciser le linkage avec la librairie STL. Pour ce faire, deux étapes sont à réaliser : 1/ le fichier main.c situé dans le répertoire src de votre projet doit être renommé en main.cc afin de faire comprendre au compilateur GCC que le code source est bien en C++ et pas en C (note: a priori ceci est inutile si on applique bien le point 2/, mais reste néanmoins recommandé afin d'éviter tout problème). 2/ il faut indiquer les options de compilation et de linkage dans le fichier CMakeLists.txt situé à la racine de votre projet et le mettre en conformité avec votre changement fait en 1/ : a) il faut changer les lignes set(SOURCES src/main.c # ... ) par set(SOURCES src/main.cc # ... ) afin de refléter le changement d’extension du fichier main vu en 1/. b) il faut changer la ligne target_compile_options(myaddin PRIVATE -Wall -Wextra -Os) par target_compile_options(myaddin PRIVATE -Wall -Wextra -Os -c -std=c++11 -fno-rtti -fno-use-cxa-atexit) ceci permet de dire au compilateur quel standard du langage il doit utiliser (ici C++ version du standard 2011) ainsi que diverses options nécessaires pour avoir une STL fonctionnelle. c) enfin, il faut changer la ligne target_link_libraries(myaddin Gint::Gint) par target_link_libraries(myaddin Gint::Gint -lustl -lc) afin de correctement linker votre programme avec la librairie µSTL compilée pour votre toolchain. A ce stade, il devient possible d'utiliser la STL dans un projet pour Casio (Graph 35 ou 90). Mon premier exemple utilisant la STL sur Casio Nous allons écrire notre tout premier programme utilisant la STL afin de vérifier que tout fonctionne bien, ce qui nous permettra de clore ce premier article avec une installation fonctionnelle. Nous entrerons plus en avant dans l'utilisation de la STL dans les articles à venir. Ce petit programme ne sera donc pas explicité dans le détail, mais permettra seulement de vérifier que votre installation fonctionne correctement, ce qui constituera le point de départ pour les articles suivants (nous considérerons donc que cette étape est franchie et ne reviendrons donc pas sur cette phase d'installation). Notre premier programme consiste donc en un simple remplissage d'un tableau dynamique de type vector, et en son affichage afin de vérifier que tout fonctionne de manière adéquate (compilation, linkage et exécution sur les machines Graph 35/Graph 90). Ouvrons donc le fichier source main.cc de notre projet et copions le texte du programme suivant : #include <gint/display.h> #include <gint/keyboard.h> #include <vector> #define std ustl // A garder pour pouvoir faire des appels via std:: int main(void) { dclear(C_WHITE); dtext(1, 1, C_BLACK, "uSTL vector test."); std::vector<int> v; v.push_back( 10 ); v.push_back( 20 ); auto it = v.emplace( v.begin(), -10 ); v.emplace( it+1, 0 ); for( unsigned int k=0; k<v.size(); k++) dprint( 1, 10+k*10, C_BLACK, "v[%d] = %d", k, v ); dupdate(); getkey(); return 1; } Le fichier CMakeLists.txt complet doit ressembler au minimum à cela: cmake_minimum_required(VERSION 3.15) project(MyAddin) include(GenerateG1A) include(GenerateG3A) include(Fxconv) find_package(Gint 2.4 REQUIRED) set(SOURCES src/main.cc # ... ) # Shared assets, fx-9860G-only assets and fx-CG-50-only assets set(ASSETS # ... ) set(ASSETS_fx assets-fx/example.png # ... ) set(ASSETS_cg assets-cg/example.png # ... ) fxconv_declare_assets(${ASSETS} ${ASSETS_fx} ${ASSETS_cg} WITH_METADATA) add_executable(myaddin ${SOURCES} ${ASSETS} ${ASSETS_${FXSDK_PLATFORM}}) target_compile_options(myaddin PRIVATE -Wall -Wextra -Os -c -std=c++11 -fno-rtti -fno-use-cxa-atexit) target_link_libraries(myaddin Gint::Gint -lustl -lc) if("${FXSDK_PLATFORM_LONG}" STREQUAL fx9860G) generate_g1a(TARGET myaddin OUTPUT "Tuto001.g1a" NAME "STLTuto001" ICON assets-fx/icon.png) elseif("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50) generate_g3a(TARGET myaddin OUTPUT "Tuto001.g3a" NAME "STLTuto001" ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png) endif() Ce simple code peut être compilé via : fxsdk build-fx pour les monochromes Graph 35 (fx9860G) avec ce résultat visuellement lors de l'exécution sur la machine uSTL_Tuto001_G35.png ou fxsdk build-cg pour la Graph 90+E (fxCG 10/20/50) avec ce résultat visuellement lors de l'exécution sur la machine uSTL_Tuto001_G90.png Petite remarque en passant: n'ayant que des machines en SH4 (Graph 90+E, Graph 35+E II et fxCG-20), je n'ai pas pu tester sur les anciens modèles monochrome en SH3. Donc mea culpa si tout ne fonctionne pas très bien. Une recompilation de la librairie STL est certainement à prévoir sur cette architecture :oops: . Logiquement la compilation devrait se passer sans problème. Si tel n'est pas le cas, laissez un commentaire afin que le SAV puisse vous aider à atteindre cette étape importante pour la suite. Il vous reste donc à copier le fichier g1a ou le g3a à la racine de votre machine selon son type et à exécuter l'Addin correspondant. Vous devriez obtenir le résultat présenté sur les captures d'écran précédentes. Si vous arrivez à ce point, bravo à vous 8-) , vous avez désormais une installation complètement fonctionnelle de la STL dans votre toolchain de développement pour Casio. Vous pourrez donc profiter des nombreux avantages offerts par cette libraire. La suite ... Dans les articles à venir, nous ferons un tour rapide des différents conteneurs disponibles dans la STL afin de vous en présenter les avantages et inconvénients (et les points à considérer pour choisir le meilleur candidat pour telle ou telle application) ainsi que les principales méthodes associées. En attendant, n'hésitez pas à faire vos commentaires et/ou à faire remonter vos questions/avis ... A très bientôt pour les prochains épisodes. Liens utiles Si vous voulez trouver plus de documentation sur la STL, la µSTL ainsi que sur leur utilisation, voici quelques liens utiles pour aller plus loin : Site de la µSTL par l'auteur de la librairie Mike Sharov. Le site CPlusPLus et en particulier le chapitre sur les containers. Le site CppReference et là encore le chapitre sur les containers. Pour ces deux derniers sites, n'hésitez pas à les mettre dans vos favoris, si vous codez en C++, ils constituent une mine d'or et permettent de trouver plein infos sur le C/C++. Thu, 09 Jun 2022 18:41:23 +0200 Faire un jeu fx 92+ ? Finalement, c'est pas compliqué ! https://www.planet-casio.com/Fr/forums/topic17094--.html Avez vous déjà rêvé (si vous en avez une) de pouvoir faire ou jouer à un jeu sur votre limité fx 92+ ? Et bien c'est possible ! Grâce aux caractéres et à un peu d'imagination ! Ne vous inquiétez pas ce n'est pas si compliqué que ça. Déjà, posons les bases. Vous n'allez pas pouvoir faire un jeu de dingue non plus. Ce ne sera que vous et vous seule qui donnerez un sens à votre jeu. Et puis vous pouvez quand même contourner un peu le fonctionnement pour pouvoir l'améliorer et le partager à la communauté. Et je ne vais pas vous faire un jeu vidéo. Je vais juste vous apprendre à faire un jeu sur fx 92+ et après vous en ferez ce que vous voudrez. Il reste aussi d'important problème à régler comme ; °Le système d' attaque et de riposte. (il n'y en a tout simplement pas) °Les ennemies statiques. °etc... Bref. Je vais être court. Suivez ce petit schéma et vous comprendrez ou je veux en venir. 8=mur 0=porte ,=sol de tous genre ou zone vide ex. L'entrée d'une grotte ou un mur cassé. A=enemie -=chemin basique ÷=chemin qui mène à autre chose. (généralement une porte) = =de l'eau Etc 🔵N'oubliez pas de détaillé vos carte si vous les publiez. Ex: 16x8, 7x-,etc... Je ne vous en dit pas plus et je vous laisse continuer votre jeu tranquillement. 😁 (N'oublier pas d'en partager le code) Et si cela n'était pas très clair, je vous laisse me demander de faire un autre tuto plus détaillé ! Sur ce, a bientôt ! 🖖 Wed, 08 Jun 2022 15:50:00 +0200 [Tutoriel] Utiliser les émulateurs CASIO sous Linux avec Wine https://www.planet-casio.com/Fr/forums/topic17072--.html Les émulateurs officiels de CASIO sont très utiles pour avoir un aperçu de chaque modèle, pour tester des programmes sur les calculatrices qu'on ne possède pas, prendre des captures d'écran ou des captures vidéo, ou même tester des add-ins en développement. Ils ne sont officiellement pas compatibles avec Linux, mais Wine vient à notre rescousse pour les utiliser de façon transparente ! Wine Wine est un outil classique des Linuxiens. C'est un niveau de compatibilité qui traduit les API Windows en Linux/BSD, ce qui permet de lancer nativement des applications Windows sous Linux. Généralement, la difficulté avec Wine c'est qu'il est difficile de supporter l'intégralité de l'environnement Windows et ses API, et donc il y a souvent des subtilités pour installer/lancer correctement les applications. D'où ce tutoriel, qui vous aidera à tout mettre en place :) Émulateur Graph 90+E Commencons par un facile : l'émulateur Graph 90+E (ici en version 3.60 - lien de téléchargement). Lancez le fichier téléchargé avec la commande `wine` ou directement depuis une interface graphique : % wine fx-CG_Manager_PLUS_Subscription_for_fx-CG50_GRAPH90_series_Ver.3.60.exe Wine démarre. Si une popup s'affiche parlant de `wine-mono` pour les applications .NET, vous povez l'ignorer ("Cancel"). Ensuite vient la sélection de la langue. https://gitea.planet-casio.com/Lephenixnoir/Tutoriels/raw/branch/master/Utiliser%20les%20%C3%A9mulateurs%20CASIO%20sous%20Linux%20avec%20Wine/cg50-lang.png Ensuite le contrat de licence, et après quelques étapes l'installation se termine de façon automatique. https://gitea.planet-casio.com/Lephenixnoir/Tutoriels/raw/branch/master/Utiliser%20les%20%C3%A9mulateurs%20CASIO%20sous%20Linux%20avec%20Wine/cg50-license.png Pour lancer l'émulateur, il faut maintenant appeler l'exécutable qui a été installé. Cependant, il faut aussi spécifier un argument, sans quoi on a une erreur (un fait découvert par Redoste) : wine "$HOME/.wine/drive_c/Program Files (x86)/CASIO/fx-CG Manager PLUS Subscription for fx-CG50series/fx-CG_Manager_PLUS_Subscription_for_fx-CG50series.exe" /n"fx-CG Manager PLUS Subscription for fx-CG50series" Et voilà ! Je conseille d'ajouter un alias à votre terminal. https://gitea.planet-casio.com/Lephenixnoir/Tutoriels/raw/branch/master/Utiliser%20les%20%C3%A9mulateurs%20CASIO%20sous%20Linux%20avec%20Wine/cg50-emu.png Émulateur Graph 35+E II L'émulateur Graph 35+E II (ici en version 3.50 - lien de téléchargement) est plus récent et un peu plus complexe : il faut aussi installer des dépendances. Pour ça, on va utiliser WineTricks, un utilitaire de Wine (technique découverte par Ptitjoz). # Installation de WineTricks pour Debian/Ubuntu/Linux Mint et dérivés: % sudo apt install winetricks # Installation de WineTricks pour Manjaro/Arch et dérivés % sudo pacman -S winetricks Les deux composants dont on a besoin sont `vb6run` et `vcrun2015`: % winetricks vb6run % winetricks vcrun2015 Une fois ces formalités accomplies, on peut continuer comme pour la Graph 90+E : % wine fx_Manager_PLUS_Subscription_for_fx_9860GIII_GRAPH35_series_Ver.3.50.exe Et de même, il faut un argument spécial pour le lancer : wine "$HOME/.wine/drive_c/Program Files (x86)/CASIO/fx-Manager PLUS Subscription for fx-9860GIIIseries/fx-Manager_PLUS_Subscription_for_fx-9860GIIIseries.exe" /n"fx-Manager PLUS Subscription for fx-9860GIIIseries" Et voilà, ça roule ! https://gitea.planet-casio.com/Lephenixnoir/Tutoriels/raw/branch/master/Utiliser%20les%20%C3%A9mulateurs%20CASIO%20sous%20Linux%20avec%20Wine/fx-emu.png Émulateur fx-92 Scientifique Collège+ L'installation se déroule comme pour les autres. Commencez par lancer l'installeur directement dans Wine : % wine "ClassWiz Emulator Subscription for fx-92+ Speciale College Ver.2.01_b.exe" Pour celui-ci le lancement est direct, pas besoin d'un argument supplémentaire : wine "$HOME/.wine/drive_c/Program Files (x86)/CASIO/ClassWiz Emulator Subscription/fx-92+ Speciale College Emulator/fx-92+ Speciale College Emulator.exe" Et voilà ! Le terminal se plaint de divers problèmes, mais ça marche quand même. https://gitea.planet-casio.com/Lephenixnoir/Tutoriels/raw/branch/master/Utiliser%20les%20%C3%A9mulateurs%20CASIO%20sous%20Linux%20avec%20Wine/fx92-emu.png Amusez-vous bien avec ces émulateurs ! :D Sun, 08 May 2022 18:21:45 +0200 [Snippet] File.h, une petite bibliothèque pour rechercher des fichiers dans votre calculatrice https://www.planet-casio.com/Fr/forums/topic17020--.html Hello Cher Casiophile ! :D Ce que je te présente ici n'est pas un programme. Hein ??! Mais du coup, qu'est-ce que c'est ? Il s'agit en réalité d'une petite bibliothèque (enfin, si l'on peut appeler bibliothèque une fonction unique), destinée aux développeurs C. Cette fonction, User_Choose_File(), permet à l'utilisateur de choisir un fichier dans la mémoire de stockage ou dans la carte SD (pour les caltos équipées). En voici un aperçu : https://ejkblw.bn.files.1drv.com/y4m0du-A0yEXilD1l9PuJwEKl7NCXsK8O3bbW-7tI3eShhwzwEUuG861x49Ow63jitsj6NTYJ2Z8hk9AsH9b-ekspo-rHHbHf67L90Tvpff8Ff0bLsiFfVSbIFUQGkNhVzcCCw8qLD4gOrEtdaOm8NsbTND28ugAlhfBuK20Oc4_nEDJkvsxPI9aMA5Wlw6dr0iMfqwvZpwMzcZDtFm8pfJIA/GIF.gif?download&psid=1 Elle se comporte un peu comme lorsque vous faites CTRL + o dans un éditeur de texte. Elle dépend de MonochromeLib. Cette fonction peut être utilisée par une Graph 85, 75+E SH3/SH4, et théoriquement même par une 35+E II. Cependant, étant donné que la fonction fouille la mémoire de votre calculatrice, la compatibilité avec ce modèle n'est pas certaine. :here: Le zip contient les deux fichiers sources (.c et .h) ainsi qu'une documentation détaillée. Lisez la documentation fournie dans le zip pour pouvoir en comprendre l'utilisation, et n'hésitez pas à commenter pour tout retour de bogue ou idées d'améliorations ! ;) Ce produit est sous license Creative Commons CC BY-NC-SA 4.0. En vous souhaitant (oui, oui, avec du retard…) une excellente année 2022 pleine de programmes, de projets, et de succès ! :D Sat, 12 Mar 2022 17:43:30 +0100 [100% VRAI] 5 astuces pour rendre son jeu plus populaire ! https://www.planet-casio.com/Fr/forums/topic17017--.html Bonsoir à toutes et à tous ! Cette nuit, nous nous retrouvons pour un tout nouvel épisode de "Casio Techno", dédié cette fois-ci à la promotion de son jeu ! La plus grande angoisse de nos jeunes programmeurs est d'avoir un faible compteur de téléchargements, trahissant une mauvaise qualité de ses jeux. Tout le monde rêve de reproduire le mythique succès de Dumb Clicker, or la tâche n'est pas facile. Aujourd'hui dans "Casio Techno", la rédaction vous propose 5 conseils indispensables pour rendre votre jeu plus populaire et atteindre le top 10 ! Tip #1 – Faites un platformer ou un RPG pour la Graph 90+E ! Que serait Planète Casio sans ses innombrables jeux de plateforme et autres jeux de rôle ? Le marché est inondé de ces créations, et prouve bel et bien qu'il est pri-mor-dial de s'orienter vers ces deux genres afin de toucher un public plus large. De plus, évitez les jeux en monochrome. Le noir et blanc, c'est moche, c'est has-been et de toute façon t'auras pas d'émulateur NES sur ta Graph 35+E II. Nah. Tip #2 – Faites des jeux durs. Très durs ! Parce qu'on sait que l'humain est masochiste par nature, faites vos jeux le plus dur possibles. Si votre platformer a plus de blocs d'airs que de pics, il faut remettre votre level design en question. Si votre RPG n'a pas de monstres avec 10 niveaux de plus que vous au bout d'une douzaines de minutes, alors la courbe de progression est mal calculée. L'homme aime se surpasser, jouez avec ça ! De plus, la frustration d'un niveau non terminé fera revenir le joueur à l'avenir. Dans la même veine, ne faites pas de checkpoint ni de points de sauvegarde. C'est pour les loosers, ne prenez pas le public pour des bébés. Tip #3 – Prenez votre temps, vous avez toute une vie ! Faites de la promotion dans la Revue des Projets, partagez des semblants d'avancées dans un topic dédié, ou bien spammez subtilement le channel #projets. Ne rendez pas votre jeu public avant l'heure, ce serait gâchez totalement la hype entourant votre ouvrage de maître. Ne le faites pas playtester, n'en faites pas des vidéos qui dévoilent trop : contentez-vous de longs devlogs textuels sans image afin de stimuler l'imagination et le curiosité du lecteur. Prenez votre temps ! Mieux vaut un jeu bien fait avec plein de contenu et une longue durée de vie – quitte à augmenter la difficulté, plutôt qu'un prototype moche dont personne ne voudra. Voyons, vous avez tout le temps qu'il faut, que pourrait-il arriver de mal ? Tip #4 – Il n'y a jamais assez de waifus et des explosions ! C'est assez explicite. Tip #5 – Postez vos jeux sur TI-Planète à la place de Planète Casio ! De toute façon Planète Casio est un vieux forum obsolète. Tous les jeunes se fournissent sur TI-Planète de nos jours ! Ne vous privez pas d'une audience aussi large. En prime, Critor fera la promotion de votre jeu contrairement aux feignasses qui se prétendent rédacteurs sur Planète Casio. "Casio Techno", l'émission qui fait éclater la vérité ! Et bien chers amis auditeurs, c'est tout pour cette nuit. Bien évidemment, la liste de conseils est vaste, et nous aurions pu parler aussi des remakes de jeux déjà existant pour attirer le public ou bien l'emploi du Comic Sans MS sur fond de couleurs flashy afin d'attirer les joueurs. La rédaction vous souhaite un bon moment de programmation et un glorieux succès. À bientôt sur "Casio Techno !" Note de l'éditeur : N'hésitez pas à partager vos plus belles astuces en commentaire et à partager ce post sur tous les réseaux sociaux ! Note de l'auteur : À l'aiiiide ils m'ont trouvmmmh— mmmh— —— Sat, 12 Mar 2022 01:00:33 +0100 Une Mémoire externe pour la Casio FX92+ https://www.planet-casio.com/Fr/forums/topic16979--.html https://user-images.githubusercontent.com/60618118/148842566-0fca7c9a-aee2-4199-9532-d9d905ae6102.jpg L’inspiration derrière ce projet provient initialement de la Casio 92B, qui était la calculatrice recommandée pour les humanités en Belgique et en France. Malheureusement la 92B, sauf son élégance, n’avait rien d’impressionnant… Ayant récemment fait la découverte de la 92+ et de son mode algorithmique tout juste après mes études secondaires, j’étais heureux de voir que « la » calculatrice qui m’avait accompagnée pendant six ans allait encore m’occuper quelque temps ! …La seule déception était bien sûr que la 92+ n’a pas de mémoire interne. Il me semblait donc intéressant de créer un module de mémoire externe et détachable pour pouvoir sauvegarder ces longs programmes qui deviennaient une lourde tâche à réécrire. Bien que ce module puisse être compatible avec n'importe quelle calculatrice (ou n'importe quel appareil avec un clavier matriciel), il a été principalement conçu pour la Casio FX-92+. https://youtu.be/2eeQFywnhbU Fonctionnement : Un microcontrôleur Arduino au cœur du module pilote les quatre circuits intégrés (CD4066), qui a leur tour simulent une pression de touche sur la calculatrice. Un CI CD4066 est composé de 4 interrupteurs électroniques bilatéraux, une touche sur la calculatrice est « pressée » lorsque l’interrupteur électronique correspondant à la colonne et l’interrupteur électronique correspondant à la rangée de la touche voulue sont activés simultanément. En bas du module, 5 boutons permettent de sélectionner un parmi les 5 algorithmes sauvegardés dans la mémoire EEPROM de l’arduino. Chaque algorithme peut contenir 200 instructions/coordonnées des touches Logiciel MATRIXIO : J’ai également écrit un programme afin de charger les algorithmes dans la mémoire EEPROM de l’arduino. Les Instructions et coordonnées des touches peuvent être envoyées manuellement via le moniteur de série de l’IDE arduino, ou automatiquement via un chargeur écrit en Python. MATRIXIO v1.0 (c) Jan 2022 Aditya Chugh -type 'help'- xy : Instruction, where x is column and y is row of calculator key a~t : Shortcut instruction sequences write : Enable writing of instructions to EEPROM memory read : Disable enable writing of instructions to EEPROM memory prog 1~5 : Memory address set to beginning of program 1~5 clear 1~5 : Clears all 200 instructions of program 1~5 list 1~5 : Lists all 200 instructions of program 1~5 addr 0~999 : Memory address set to 0~999 (for uno & nano) On Casio FX-92B & FX-92+, the bottom-most row is matrixed differently, keys should hence be addressed as such : '0' : 65 ',' : 64 'x10^x' : 63 'ANS/REP' : 62 'EXE' : 61 Shortcut instruction sequences for Casio FX-92+: a : avancer de b : tourner de c : s'orienter à d : aller à x,y e : stylo écrit f : stylo relevé g : mettre var à h : demander valeur i : commentaire j : afficher résultat k : style l : attendre m : répéter n : répéter jusqu'à o : si alors p : si alors sinon q : exécuter r : copier et insérer s : insérer ligne t : tout supprimer Construction : Matrice du clavier: https://user-images.githubusercontent.com/60618118/148846426-03d987a7-4d7a-4fbe-92f6-1d9f49573ca8.jpghttps://user-images.githubusercontent.com/60618118/148846461-9cea8d04-2e72-436b-bf92-1d6ddaa8ca17.jpghttps://user-images.githubusercontent.com/60618118/148846635-a3a908b2-60d7-4e95-8a05-c00d08f6e0af.jpg Le schéma parait impressionnant de loin, en réalité c'est très répétitif :) https://user-images.githubusercontent.com/60618118/148841993-c133e295-6a00-4389-a011-c1bb7adf9ca5.png https://github.com/adityachugh02/casio-external-memory/blob/main/images/IMG-7890.jpg?raw=true Vous pouvez télécharger tous les fichiers et schémas ici: https://github.com/adityachugh02/casio-external-memory/ Avantages : -On peut sauvegarder des programmes pour la 92+ ^^ -Chargement rapide -Détachable et relativement esthétique Inconvénients : -On ne peut pas (encore) sauvegarder des programmes à partir de la calculatrice, il faut pour le moment toujours charger les algorithmes à partir d’un ordinateur. Tue, 11 Jan 2022 00:01:23 +0100 Une erreur dans le mode d'emploi ? https://www.planet-casio.com/Fr/forums/topic16948--.html Bien le bonjour chers et chères calsspadeurs, une petite observation que j'ai faite sur le mode d'emploi et plus particulièrement la fonction GetKey Voici une capture d'image du mode d'emploi. Le tableau nous indique quelles valeurs est associées à chaque touches de la calculatrice. https://www.zupimages.net/up/21/49/jos3.png Regardons la touche -, il en existe deux sur la calculatrice, celle qui sert à faire une différence, et celle qui indique le signe d'un réel. Mais en pratique, les deux font exactement la même chose, et visuellement ce sont les mêmes caractères. C'est ce qu'on remarque dans le tableau, les deux touches renvoient la valeur 45. Vérifions ça : Le code suivant nous révèle ce que renvoie réellement la fonction GetKey https://www.zupimages.net/up/21/49/xt35.png Résultat: https://www.zupimages.net/up/21/49/sgyi.png Vous remarquez que la touche - revoie 45 et (-) renvoie 146. Résultat sans appel, il y a bien une erreur dans le mode d'emploi ! En conclusion, eh bien ne vous faîtes pas avoir. Tue, 07 Dec 2021 14:46:10 +0100 Prise en Main du site - NOVICE - Question CASIO GRAPH +90 https://www.planet-casio.com/Fr/forums/topic16946--.html Bonjour, bonsoir, Totalement novice, j'aimerais insérer des logiciels (Formules, physique, math - BTS SNIR..). J'ai une casio graph 90+, mais les programmes que je cherche sont majoritairement en format dédiée à d'autre casio. Est ce possible de convertir / faire fonctionner des logiciel dédiée à une calculatrice différente ? Le cas échéants, quels alternatives ? Des pistes logiciels physiques appliqué, mathematiques pour graph 90+ ? Cordialement. Mon, 06 Dec 2021 21:46:05 +0100 Vector Calculations on Version 2.09 https://www.planet-casio.com/Fr/forums/topic16912--.html Recently, I have flashed my fx-9750GII with fx-9860GII OS Version 2.09. When I flashed it from 2.05, it still had vector calculations. Ti-Planet says that 2.09 has no vector calculations. Thu, 21 Oct 2021 04:42:58 +0200