Syscall : Différence entre versions

De Casio Universal Wiki
Aller à : navigation, rechercher
(Un peu avancé la "liste" des syscalls)
Ligne 12 : Ligne 12 :
 
=== Contrôle du curseur ===
 
=== Contrôle du curseur ===
  
<syntaxhighlight>int  Cursor_SetPosition(char column, char row);
+
<syntaxhighlight>
int  Cursor_GetFlashStyle();
+
int  Cursor_SetPosition   (char column, char row);
void Cursor_EnableFlash();
+
int  Cursor_GetFlashStyle (void);
void Cursor_DisableFlash();</syntaxhighlight>
+
void Cursor_EnableFlash   (void);
 +
void Cursor_DisableFlash (void);
 +
</syntaxhighlight>
 
Pour déplacer le curseur et utiliser le clignotement (champs de saisie).
 
Pour déplacer le curseur et utiliser le clignotement (champs de saisie).
 +
 +
=== Affichage de texte ===
 +
 +
<syntaxhighlight>
 +
void Print_Generic    (int mode, char *string, int maxcol);
 +
void Print_AtCursor  (char *string, int type);
 +
void Print_AtLocation (char *string, int column, int row);
 +
</syntaxhighlight>
 +
Des fonctions de texte utilisées par les fonctions habituelles du SDK mais ne faisant pas partie de [[fxlib.h|fxlib]].
 +
 +
=== Gestion du clavier ===
 +
 +
<syntaxhighlight>
 +
int Kbd_GetKeyWait (int *col, int *row, int waittype, int timeout, int menu, ushort *keycode);
 +
</syntaxhighlight>
 +
Un GetKeyWait fonctionnel, contrairement à celui de [[fxlib.h|fxlib]].
  
 
''En cours...''
 
''En cours...''

Version du 26 avril 2014 à 21:54

Les syscalls (abréviation en anglais de system call, traduit en français par appel système) sont des fonctions inscrites dans le noyau du système de la calculatrice. Pour pouvoir lancer un syscall, on a besoin de son numéro. Malheureusement, Casio n'a jamais donné ces informations, il faut donc les trouver en tâtonnant. Nous connaissons le point d'entrée de la fonction (0x80010070), mais la liste des numéros de fonctions (et surtout de leurs paramètres) est loin d'être complète. Simon Lothar et Andreas Bertheussen ont fait une documentation(en anglais) sur les syscalls disponible sur Planète Casio

Intérêts

Les avantages de ces syscalls sont nombreux, grâce à eux on peut :

  • Utiliser des fonctions utilisables juste en C, comme le système RTC (Real-Time Clock ou Horloge temps réel) qui permet d'avoir l'heure sur sa calculatrice (heure qui continue à tourner lorsque cette dernière est éteinte).
  • Utiliser des fonctions beaucoup plus rapides que celles fournies par Casio dans la bilbiothèque fxlib.h. Lorsque les syscalls sont bien utilisés, on peut obtenir des fonctions beaucoup plus rapides, comme celles de Monochrome Lib par exemple.

Liste des sycalls connus

Voici quelques exemples de ce que permettent les syscalls.

Contrôle du curseur

int  Cursor_SetPosition   (char column, char row);
int  Cursor_GetFlashStyle (void);
void Cursor_EnableFlash   (void);
void Cursor_DisableFlash  (void);

Pour déplacer le curseur et utiliser le clignotement (champs de saisie).

Affichage de texte

void Print_Generic    (int mode, char *string, int maxcol);
void Print_AtCursor   (char *string, int type);
void Print_AtLocation (char *string, int column, int row);

Des fonctions de texte utilisées par les fonctions habituelles du SDK mais ne faisant pas partie de fxlib.

Gestion du clavier

int Kbd_GetKeyWait (int *col, int *row, int waittype, int timeout, int menu, ushort *keycode);

Un GetKeyWait fonctionnel, contrairement à celui de fxlib.

En cours...