Fx-9860G SDK : Différence entre versions
(→Bdisp_AllClr_DD/ Bdisp_AllClr_VRAM/ Bdisp_AllClr_DDVRAM) |
(→Bdisp_AllClr_DD/ Bdisp_AllClr_VRAM/ Bdisp_AllClr_DDVRAM) |
||
Ligne 58 : | Ligne 58 : | ||
prototypes : | prototypes : | ||
− | ''void Bdisp_AllClr_DD(void); | + | ''void Bdisp_AllClr_DD(void);'' |
− | + | ''void Bdisp_AllClr_VRAM(void);'' | |
− | void Bdisp_AllClr_VRAM(void); | + | ''void Bdisp_AllClr_DDVRAM(void);'' |
− | |||
− | void Bdisp_AllClr_DDVRAM(void);'' | ||
Ne prend aucun argument et ne renvoie aucune valeur. | Ne prend aucun argument et ne renvoie aucune valeur. |
Version du 22 juin 2012 à 09:31
-article en cours de rédaction-
Vous savez sûrement que Casio nous a gentiment offert un kit de développement permettant de programmer en C ou C++ sur les Graph 75/85/95 (SD). Or la documentation est en anglais, est très incomplète, et contient même des erreurs dans les fonctions de lecture et écriture des fichiers. Pour lire cette présentation des fonctions offertes par le SDK, vous aurez besoin de connaître les bases du C, voire du C++. Pour cela, vous pouvez aller découvrir différents tutoriels. Vous êtes un débutant complet et vous voulez des explications (très) ludiques pour avaler les heures d'apprentissage plus facilement ? Allez voir le tutoriel du site du zéro : tutoriel pour les Zér0s. Vous voulez des explications plus professionnelles provenant d'une source sûre ? Allez plutôt voir ici : initiation au langage C.
Prêts à attaquer ?
Sommaire
Présentation générale
Le Fx-9860G Software development kit ou kit de développement
est un logiciel de programmation qui permet de créer des add-in en C compatible avec la graph 75, 85, 85 SD, 95. Les add-ins crée par ce logiciel sont beaucoup plus rapide que les programmes en basic, et ils permettent l'utilisation des syscall
Comment l'utiliser
Téléchargement et installation
Tout d'abord vous devez télécharger le logiciel, soit sur le site officiel de Casio, mais il faudra vous inscrire et prouver que vous avez la bonne calculatrice, soit sur Planet-Casio, croissez le fichier "sdk85.rar" Ouvrez le fichier que vous avez téléchargé avec un gestionnaire d'archive comme 7zip et exécutez "fx-9860G SDK setup.exe". Continuez l'installation normalement et une fois celle-ci terminé lancez le programme.
Création du projet
Tout d'abord, vous devez créer un projet. Pour cela allez dans le menu "Projet" et faites "New...". Une fenêtre apparaît:
- "Path to project" : Donner ici un dossier général des projets.
- "Folder name" : Ici donnez le nom du dossier de votre projet, un dossier de ce nom sera créé dans le répertoire que vous avez indiqué juste au dessus. Tout votre projet sera dans ce nouveau dossier.
- "Title" : C'est le nom de votre projet, il ne peut contenir que 8 caractères.
- "Version" : Indiquez ici la version de votre projet. Vous pouvez par exemple écrire "1.0".
- "Copy from project" : Cela permet de récupérer la config d'un ancien projet
- "Copy sources and header files" : Lorsque cette case est coché et que vous avez indiquer un projet a récupérer, il copiera en plus les sources.
- "Copy icons" : Lorsque cette case est coché et que vous avez indiquer un projet a récupérer, il récupérera en plus les icônes.
Une fois que vous validez, il se peut qu'un message s'affiche ou la seul possibilité est de cliquer sur OK. Faites le, ce n'est pas un problème, c'est juste le compilateur qui vous dit que vous devez compiler avant de lancer le programme.
Première compilation
Ça y est votre projet est près vous pouvez dès maintenant coder, mais pour être sûr que tout fonctionne bien, je vous conseil de lancer une première compilation en utilisant le bouton "compiler" (celui tout moche et coloré). Si tout s'est bien passé vous devriez voir en bas de la fenetre "Build results", "Build has completed". Si vous voyez ça, vous pouvez lancer l’émulateur en cliquant sur le bouton "run" (la petite flèche style "play" noire) ou en appuyant sur F5 (et si vous ne voyez pas ça vous avez deux solutions : chercher l'erreur avec les indications qu'il vous donne, et abandonner). Normalement l'écran et le clavier vont s'afficher; pour ouvrir votre add-in, restez dans le menu principal et utilisez les fléches de la calculatrice pour vous déplacer en bas a droite (vous pouvez aussi utiliser votre clavier) sur le logo de votre add-in qui où actuellement il est écrit "Debug", sauf si vous avez pensé à refaire l'icone. Cliquez ensuite sur [EXE], et vous devrez voir a l'écran "This application is sample Add-In". Si tout s'est bien passé, c'est parfait vous pouvez continuer, si il n'a pas réussi a compiler et que vous êtes sous Windows 64 bit, essayez cette astuce.
Problèmes rencontrés
Incompatibilité avec les versions de windows 64bit
Il arrive que la compilation ne fonctionne pas avec les versions 64bit de windows. L'incompatibilité vient du fait que par défaut les logiciel crée pour les versions 32bit s'installent automatiquement dans le dossier "C:\Program Files (x86)\" au lieu de "C:\Program Files\" et le compilateur ne fonctionne pas si son chemin d'accès comporte des parenthèse.
Si le logiciel est déjà installé
Pour régler le problème, allez dans "C:\Program Files (x86)\CASIO", faites clique droit puis couper sur le dossier "fx-9860G SDK". Allez ensuite dans "C:\Programmes\", si il y a déjà un dossier "CASIO", ouvrez le sinon créez le. Et enfin collez dans ce dossier. Normalement les racourcis se metterons automatiquement à jour mais si ce n'est pas le cas, allez dans le dossier que vous venez de déplacer "fx-9860G SDK" et faites un raccourci de "FXSH.exe"
Si le logiciel est pas encore installé
Lors de l'installation changez le dossier de destination pour "C:\CASIO\fx-9860G SDK". Une fois l’installation terminé allez dans "C:\" et déplacez le dossier "CASIO" dans "Programmes". Normalement les racourcis devrait se mettre à jour automatiquement mais si ce n'est pas le cas, allez dans "C:\Programmes\CASIO\fx-9860G SDK" et faites un raccourci de "FXSH.exe"
Éditeur sans colorisation syntaxique
Ce logiciel à un gros inconvénient, c'est qu'il n'est pas équipé de colorisation syntaxique, c'est a dire que tout le code en C que vous allez programmer sera écrit en noir, ce qui peut vite devenir illisible quand on a beaucoup de lignes. Pour remédier à cela, je vous conseil d'utiliser un autre éditeur, par exemple Notepad++. Néanmoins, on est oblgé d'utiliser encore le SDK pour compiler et pour tester, donc dans le sdk, vous fermez toutes les fenêtres d'éditions et gardez celle qui vous servent pour débugger. Ouvrez ensuite notepad++ et allez chercher les fichiers dans le dossier de votre projet. Si vous en ouvrez plusieurs, ils se mettrons sous forme d'onglet. L’inconvénient c'est que vous aurez deux fenêtre au lieu d'une pour programmer, mais cet inconvénient est négligeable.
Fonctions de "fxlib.h"
Affichage
Bdisp_PutDisp_DD
prototype : void Bdisp_PutDisp_DD(void);
Affiche à l'écran le contenu de la VRAM (buffer stockant le contenu de l'écran virtuel). Ne prend aucun argument et ne renvoie aucune valeur.
Bdisp_AllClr_DD/ Bdisp_AllClr_VRAM/ Bdisp_AllClr_DDVRAM
prototypes :
void Bdisp_AllClr_DD(void); void Bdisp_AllClr_VRAM(void); void Bdisp_AllClr_DDVRAM(void);
Ne prend aucun argument et ne renvoie aucune valeur.
Bdisp_AllClr_DDVRAM() efface l'écran et la VRAM.
Pour effacer uniquement l'écran, utiliser Bdisp_AllClr_DD().
Pour effacer uniquement la VRAM, utiliser Bdisp_AllClr_VRAM().
Bdisp_AreaClr_DD/ Bdisp_AreaClr_VRAM/ Bdisp_AreaClr_DDVRAM
prototypes : void Bdisp_AreaClr_DD( const DISPBOX *pArea // pointeur sur une structure ); void Bdisp_AreaClr_VRAM( const DISPBOX *pArea ); void Bdisp_AreaClr_DDVRAM( const DISPBOX *pArea ); La fonction ne renvoie aucune valeur. Efface une partie de l'écran. L'argument à passer (par passage d'adresse) à cette fonction est une structure de la forme : typedef struct tag_DISPBOX{ // Déclarée dans dispbios.h int left; // 0~127 int top; // 0~63 int right; // 0~127 int bottom; // 0~63 } DISPBOX
Bdisp_AreaReverseVRAM
prototype : void Bdisp_AreaReverseVRAM( int x1, // coordonnée x à gauche int y1, // coordonnée y en haut int x2, // coordonnée x à droite int y2 // coordonnée y en bas ); La fonction ne renvoie aucune valeur. Inverse une zone de l'écran (pixel éteint en allumé et allumé en éteint). Passez-lui en argument les coordonnées de la zone à inverser, comme indiqué ci-dessus).