Résultat de l’API de MediaWiki

Voici la représentation HTML du format JSON. HTML est utile pour le débogage, mais inapproprié pour être utilisé dans une application.

Spécifiez le paramètre format pour modifier le format de sortie. Pour voir la représentation non HTML du format JSON, mettez format=json.

Voyez la documentation complète, ou l’aide de l’API pour plus d’information.

{
    "batchcomplete": "",
    "continue": {
        "gapcontinue": "Transfert_avec_Prizm",
        "continue": "gapcontinue||"
    },
    "query": {
        "pages": {
            "89": {
                "pageid": 89,
                "ns": 0,
                "title": "SDK",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "=== Le fx-9860G SDK ===\n\nVous savez s\u00fbrement que Casio nous a gentiment offert un kit de d\u00e9veloppement permettant de programmer en C ou C++ sur les Graph 75/85/95 (SD). Or la documentation est en anglais, est tr\u00e8s incompl\u00e8te, et contient m\u00eame des erreurs dans les fonctions de lecture et \u00e9criture des fichiers. Une partie de ce wiki est donc consacr\u00e9e aux premiers pas sur le kit de d\u00e9veloppement et aux fonctions offertes par la librairie \"fxlib\" de la calculatrice.\n\nVous aurez besoin de conna\u00eetre les bases du C ou du C++. Pour cela, vous pouvez aller d\u00e9couvrir diff\u00e9rents tutoriels. Vous \u00eates un d\u00e9butant complet et vous voulez des explications ludiques pour avaler les heures d'apprentissage plus facilement ? Le [http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html tutoriel d'Open Classrooms] est pour vous. Vous voulez des explications plus professionnelles provenant d'une source s\u00fbre ? Allez plut\u00f4t voir [http://melem.developpez.com/tutoriels/langage-c/initiation-langage-c ce cours] pour vous initier au langage C.<br />\nPour la pr\u00e9sentation g\u00e9n\u00e9rale et les premiers pas : [[Fx-9860G SDK|fx-9860G SDK]]\n\nPuisque la calculatrice ne fonctionne pas exactement comme un ordinateur, de nombreuses fonctions du C standard ne sont pas support\u00e9es par le SDK. En revanche, Casio nous a concoct\u00e9 une biblioth\u00e8que adapt\u00e9e au d\u00e9veloppement sur calculatrices qu'elle a nomm\u00e9 ''fxlib'' (pour FX library). Cette biblioth\u00e8que contient toutes les fonctions propres \u00e0 la calculatrice qui vous seront nec\u00e9ssaires pour le d\u00e9veloppement de vos programmes. Entre autres, tout ce qui touche \u00e0 l'affichage \u00e0 l'\u00e9cran, r\u00e9ception d'\u00e9v\u00e8nements ou manipulation des fichiers du syst\u00e8me.\n\nPour une pr\u00e9sentation des fonctions de la biblioth\u00e8que fournie par Casio : [[Fxlib.h|fxlib]]\n\n\n=== Le Prizm SDK ===\n\nCasio n'a pas fourni de SDK pour aller avec la [[Fx-CG_20|Prizm]]. Un logiciel communautaire a donc \u00e9t\u00e9 r\u00e9alis\u00e9 pour permettre le d\u00e9veloppement C sur cette calculatrice. Il est compatible avec Windows et Linux, contrairement au pr\u00e9c\u00e9dent.\n\nPour plus d'informations : [[PrizmSDK|Prizm SDK]]\n\n=== Le CPSDK ===\nCasio a partag\u00e9 un plug-in de Dev-C++, d\u00e9velopp\u00e9 par Saltire, permettant de cr\u00e9er des add-in pour Classpad. Ceux-ci ne sont malheureusement compatibles qu'avec les anciens mod\u00e8les (CP300(+) et CP330), et il semblerait que Casio n'ait pas l'intention de combler ce manque.\n\nPour plus d'information : [[CPSDK]]\n[[en:SDK]]\n[[Cat\u00e9gorie:C/C++/Asm]]"
                    }
                ]
            },
            "46": {
                "pageid": 46,
                "ns": 0,
                "title": "Syscall",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "Les syscalls (abr\u00e9viation de ''system call'', c'est-\u00e0-dire ''appel syst\u00e8me'') sont des fonctions fournies par le syst\u00e8me d'exploitation. L'ex\u00e9cution d'un syscall utilise normalement les interruptions du processeur, mais CASIO n'a pas fait dans autant de finesse et laisse les add-ins appeler les syscalls comme des fonctions sur la seule base d'un num\u00e9ro unique qui leur est associ\u00e9.\n\nLes propri\u00e9t\u00e9s des syscalls, leurs param\u00e8tres, leurs buts et leur nombre n'ont jamais \u00e9t\u00e9 document\u00e9s par CASIO. C'est le travail de Simon Lothar and Andreas Bertheussen qui a r\u00e9v\u00e9l\u00e9 leur existence et leur organisation. Nous connaissons aujourd'hui la proc\u00e9dure pour les appeler et une description partielle de leurs r\u00f4les. Une partie de la documentation existante est disponible sur [http://www.planet-casio.com/Fr/programmation/tutoriels.php?id=30 Plan\u00e8te Casio].\n\nLes fonctionnalit\u00e9s offertes par les syscalls couvrent l'ensemble des r\u00f4les du syst\u00e8me d'exploitation et s'\u00e9tendent bien plus loin que ne le permet [[Fxlib.h|fxlib]], avec la gestion des timers, de l'horloge, l'acc\u00e8s aux messages du syst\u00e8me, le lancement crois\u00e9 de plusieurs applications ou la communication s\u00e9rie et USB.\n\n== Int\u00e9r\u00eats ==\nLes avantages de ces syscalls sont nombreux. Ils incluent notamment :\n* '''L'acc\u00e8s \u00e0 des outils non pr\u00e9sents dans fxlib''', comme le syst\u00e8me RTC (Real-Time Clock, l'horloge du processeur) qui permet de g\u00e9rer l'horloge de la machine (active m\u00eame quand la calculatrice est \u00e9teinte) ;\n* '''Le contournement de fxlib''', en r\u00e9\u00e9crivant des proc\u00e9dures parfois significativement plus rapides ([[MonochromeLib|Monochrome Lib]] en est un bon exemple).\n\n== Liste des sycalls connus ==\n\nVoici quelques exemples de ce que permettent les syscalls.\n\n=== Contr\u00f4le du curseur ===\n\n<syntaxhighlight>\nint  Cursor_SetPosition   (char column, char row);\nint  Cursor_GetFlashStyle (void);\nvoid Cursor_EnableFlash   (void);\nvoid Cursor_DisableFlash  (void);\n</syntaxhighlight>\nPour d\u00e9placer le curseur et utiliser le clignotement (champs de saisie).\n\n=== Affichage de texte ===\n\n<syntaxhighlight>\nvoid Print_Generic    (int mode, char *string, int maxcol);\nvoid Print_AtCursor   (char *string, int type);\nvoid Print_AtLocation (char *string, int column, int row);\n</syntaxhighlight>\nDes fonctions de texte utilis\u00e9es par les fonctions habituelles du SDK mais ne faisant pas partie de [[fxlib.h|fxlib]].\n\n=== Gestion du clavier ===\n\n<syntaxhighlight>\nint Kbd_GetKeyWait (int *col, int *row, int waittype, int timeout, int menu, ushort *keycode);\n</syntaxhighlight>\nUn GetKeyWait fonctionnel, contrairement \u00e0 celui de [[fxlib.h|fxlib]].\n\n=== Gestion de l'affichage ===\n\n<syntaxhighlight>\nchar *Disp_GetVRAMPtr (void);\nchar *Disp_Manage     (int pageID, int action);\n</syntaxhighlight>\nPermettent d'utiliser directement la VRAM et les buffers de sauvegarde de SaveDisp() et RestoreDisp().\n\n=== Applications int\u00e9gr\u00e9es ===\n\n<syntaxhighlight>\nvoid App_CONICS  (int isAppli, unsigned short optionNum);\nvoid App_DYNA    (int isAppli, unsigned short optionNum);\nvoid App_EACT    (int isAppli, unsigned short optionNum);\nvoid App_EQUA    (int isAppli, unsigned short optionNum);\nvoid App_PRGM    (int isAppli, unsigned short optionNum);\nvoid App_FINANCE (int isAppli, unsigned short optionNum);\nvoid App_GRAPH   (int isAppli, unsigned short optionNum);\nvoid App_LINK    (int isAppli, unsigned short optionNum);\nvoid App_MEMORY  (int isAppli, unsigned short optionNum);\nvoid App_RECUR   (int isAppli, unsigned short optionNum);\nvoid App_RUNMAT  (int isAppli, unsigned short optionNum);\nvoid App_STAT    (int isAppli, unsigned short optionNum);\nvoid App_SYSTEM  (int isAppli, unsigned short optionNum);\n</syntaxhighlight>\nCes syscalls permettent de lancer n'importe quelle application d\u00e9j\u00e0 existante de l'OS.\n\n<syntaxhighlight>\nint App_RefreshAddInTable  (void);\nint App_GetIntegratedCount (void);\nint App_Run                (int R4, int R4, int index, int allow_recursion);\n</syntaxhighlight>\nCes derniers donnent la possibilit\u00e9 de lancer \u00e9galement des application ajout\u00e9es par l'utilisateur.\n\n=== Utilisation de l'interface Serial ===\n\n<syntaxhighlight>\nint Serial_ReadByte                (unsigned char *dest);\nint Serial_ReadBytes               (unsigned char *dest, int max, short *size);\nint Serial_WriteByte               (unsigned char byte);\nint Serial_WriteBytes              (unsigned char *src, int size);\nint Serial_GetRxBufferSize         (void);\nint Serial_GetTxBufferFreeCapacity (void);\nint Serial_ClearReceiveBuffer      (void);\nint Serial_ClearTransmitBuffer     (void);\nint Serial_Open                    (unsigned char *conf);\nint Serial_Close                   (int mode);\nint Serial_Peek                    (int index, unsigned char *dest);\nint Serial_IsOpen                  (void);\n</syntaxhighlight>\n<ref name=\"ref1\">, Dans la documentation du syscall ''Serial_ReadBytes'', ''dest'' n'est pas un pointeur, mais cela reste invraisemblable. Le m\u00eame ph\u00e9nom\u00e8ne se retrouve pour le param\u00e8tre ''src'' du syscall ''Serial_WriteBytes''.</ref> <br />\nL'utilisation de l'interface Serial est \u00e0 la base de toute communication entre calculatrices/composants \u00e9lectroniques.\n\n=== Utilisation du syst\u00e8me RTC ===\n\n<syntaxhighlight>\nvoid ResetRTC          (uint mode);\nvoid RTC_GetTime       (uint *hours, uint *mins, uint *secs, uint *msecs);\nint  RTC_GetTicks      (void);\nint  RTC_HasElapsed_ms (int start_value, int duration);\nvoid RTC_SetDateTime   (uchar **data);\n</syntaxhighlight>\nL'ensemble de ces syscalls permet d'acc\u00e9der au syst\u00e8me RTC (Real Time Clock ou Horloge Temps R\u00e9el) de la calculatrice et de le manipuler. Cela permet d'utiliser des compteurs de temps ou autres horloges dans les programmes.\n\n=== Les Timers ===\n\n<syntaxhighlight>\nint Timer_Install   (int TimerID, void (*handler)(void), int delay);\nint Timer_Uninstall (int TimerID);\nint Timer_Start     (int TimerID);\nint Timer_Stop      (int TimerID);\n</syntaxhighlight>\nCes quatre syscalls permettent d'utiliser les timers du syst\u00e8me.\n\n=== Acc\u00e8s aux variables de configuration ===\n\n<syntaxhighlight>\nchar Setup_GetEntry     (unsigned int index);\nchar *Setup_SetEntry    (unsigned int index, char value);\nchar *Setup_GetEntryPtr (unsigned int index);\n</syntaxhighlight>\nOn peut modifier les entr\u00e9es du menu SET UP, partout accessible avec la combinaison de touches [SHIFT]+[MENU].\n\n=== Variables de la m\u00e9moire Alpha ===\n\n<syntaxhighlight>\nchar *Alpha_GetData   (char variable, char *dest);\nchar Alpha_SetData    (char variable, char *src);\nvoid Alpha_ClearAlpha (void);\nvoid Alpha_ClearAll   (void);\n</syntaxhighlight>\nLes variables de la m\u00e9moire Alpha sont A~Z, ainsi que r, t\u00eata et Ans.\n\n=== Manipulation des cha\u00eenes de caract\u00e8res \u00e9tendus ===\n\n<syntaxhighlight>\nint       MB_IsLead            (char character):\nint       MB_ElementCount      (char *str);\nint       MB_ByteCount         (char *str);\nchar      *MB_strcat           (char *dest, char *src);\nchar      *MB_strncat          (char *dest, char *src, int bytes);\nchar      *MB_strcpy           (char *dest, char *src);\nchar      *MB_GetSecondElemPtr (char *str);\nshort int MB_GetElement        (char *str);\n</syntaxhighlight>\nLes caract\u00e8res \u00e9tendus sont stock\u00e9s sur plus d'un octet, car la table de la calculatrice en est longue. La plupart de ces fonctions sont des adaptations des fonctions standard de manipulation des cha\u00eenes de caract\u00e8res.\n\n== Notes et r\u00e9f\u00e9rences ==\n\n<references />\n\n[[Cat\u00e9gorie:C/C++/Asm]]"
                    }
                ]
            }
        }
    }
}