Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC
Liens
¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Utilitaires >> Graph 35+USB/75(+E)/85/95 SD >> Add-ins >> Memory
Memory
Version : 3.0 Taille : 10917 octets Ajouté le : 2014-02-14 08:13 Modifié le : 2020-08-24 11:17
Auteur et posteur :
LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Planète Casio - Add-in Casio - Memory - LePhenixNoir - Calculatrices
Nombre de visites sur cette page : 17512
Score au progrank : 41
Pas encore de note !
Vous devez être connecté(e) pour noter (inscription).
2525 téléchargements | Soumettre un test

Ce programme est sous licence Creative Commons 2.0 BY


A cause du changement de processeur des nouvelles Graph 35+ USB, 75 et 95 SD, de nombreux addins sont incompatibles avec ces calculatrices.
Rendre un addin compatible - Plus d'informations sur ce problème - Liste des addins compatibles

Description :

Attention : cette antiquité n'est compatible qu'avec le fx-9860G SDK et n'est plus maintenue depuis 2015.

La bibliothèque C memory simplifie la manipulation de la mémoire. Elle permet entre autres d'utiliser des interfaces utilisateur, de charger et sauvegarder les fichiers automatiquement, d'utiliser des char * pour les adresses, tout en se passant de Bfile.

Une documentation en HTML est jointe à l'archive, très complète depuis la version 3. Celle-ci comprend quelques explications sur la mémoire, la liste des fonctions de memory et un court tutoriel pour l'utilisation de cette dernière.
N'oubliez pas d'inclure memory.h au début de votre programme et d'ajouter memory.c au projet.
Cette bibliothèque génère un code nativement compatible SH4.

Pour ceux qui utilisent encore les versions 1.1 ou 2, je les laisse dans les fichiers (données perdues...).

Fichiers
1. memory.zip : version 3.0
2. memory.zip : version 2.0
3. memory.zip : version 1.1
Les archives contiennent la source, le header, et la documentation HTML.

Changelog
Cliquer pour enrouler
13.06.2014
Ajout de la documentation de la version 3.

11.06.2014 -- Version 3.0
Compression de la transformation de l'adresse char * en FONTCHARACTER.
Ajout de l'affichage des erreurs et causes pour les développeurs.

29.05.2014
Correction de bugs détectés au niveau de l'allocation, qui généraient parfois une adresse FONTCHARACTER fausse et provoquaient systématiquement une erreur.

24.05.2014 -- Version 2.0
Ajout des fonctions d'interfacage et des fonctions automatisées.
Définition par define des fonctions basiques.

15.03.2014 -- Version 1.1
Ajouté un header à la bibliothèque.
La fonction memory_seekfile() (alias de Bfile_SeekFile) a été ajoutée.
Les doubles inclusions de headers sont évitées.

01.03.2014
Quelques bugs corrigé (inclusions de headers)


Commentaires :

Pages: Précédente | 1, 2, 3, 4, 5, 6, 7, 8, 9 | Suivante

PontilevienHors ligneMembrePoints: 88 Défis: 0 Message
Posté le 03-12-2018 à 12:18 | #
Pas non plus ça ! Autant dire que j'ai vérifié les moindres détails. La bibliothèque est bien inclue, ajoutée au projet, je compile quasi-systématiquement avec "rebuild all"...
LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Posté le 03-12-2018 à 13:02 | #
Je pense que c'est le bon moment pour nous partager tes sources, on si tu préfères les garder pour toi, un petit exemple qui illustre le problème.
PontilevienHors ligneMembrePoints: 88 Défis: 0 Message
Posté le 03-12-2018 à 13:40 | # | Fichier joint
Voici le code source complet (le fragment incriminé est dans le main).
C'est celui du démineur que je vient de sortir et auquel j'ajoute quelques fonctionnalités, dont sauvegarde de partie notamment.

Là en vrai, je commence à espérer que c'est vraiment un problème hyper subtil que je n'aurais pas pu voir venir tout seul, et pas juste un truc tout pourri que j'aurais du remarquer et qui me mettrait bien la honte...

edit : pour l'instant comme cela est apparent à la lecture du programme, l'ouverture d'une sauvegarde est implémentée mais pas l'enregistrement. Je suis bien conscient que ça n'a donc aucune utilité (pour l'heure), mais de toute façon, ce n'est pas ça qui pose problème
LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Posté le 03-12-2018 à 17:03 | #
Ah. Est-ce que tu as pensé à écrire ceci ?

unsigned char *last_map = (unsigned char *)memory_load("\\\\crd0\\last_map");

Si c'est pas ça alors je passe sur une machine virtuelle pour le debugger à la main, en détail...
PontilevienHors ligneMembrePoints: 88 Défis: 0 Message
Posté le 03-12-2018 à 17:32 | #
Oui ! Ça marche ! Merci infiniment du conseil, voilà un détail auquel je penserai à l'avenir

En revanche... J'ai toujours une erreur venue des tréfonds : "memory.h(22) : C2133 (E) Multiple parameter declarations", sur laquelle je n'ai pas réussi à trouver le moindre signe de documentation toujours à la ligne :
unsigned short *memory_char2font   (char *);
dans memory.h...
LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Posté le 03-12-2018 à 20:08 | #
Oui ! Ça marche ! Merci infiniment du conseil, voilà un détail auquel je penserai à l'avenir

C'est un peu casse-pieds, les compilateurs décents ne t'obligent pas à caster dans tous les sens. x)

Regardons dans la doc : https://www.renesas.com/us/en/doc/products/tool/doc/001/r20ut0704ej0101_shc_optimz.pdf (cherche "C2133") :

Either a parameter name is declared in a macro or function definition parameter list more than once or a parameter is declared inside and outside the function declarator.

Peut-être un souci sur la valeur de retour, essaie d'inclure fxlib.h dans memory.h et de remplacer unsigned short par FONTCHARACTER.

C'est quand même bizarre tout ça, la lib a jamais eu ce problème... '-'
PontilevienHors ligneMembrePoints: 88 Défis: 0 Message
Posté le 03-12-2018 à 22:01 | #
Mouais... Toujours pas. Je suis en train de voir pour compiler avec MinGW. Si ça se trouve, en partant sur un malentendu ça peut marcher.
LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Posté le 03-12-2018 à 22:02 | #
Tu as essayé de compiler un exemple minimal qui utilise juste la lib dans un programme vide sur le SDK ? Si oui, alors je veux bien tester les fichiers.
PontilevienHors ligneMembrePoints: 88 Défis: 0 Message
Posté le 03-12-2018 à 22:11 | # | Fichier joint
De plus en plus curieux. Ce que je viens de mettre en pièce jointe compile sans souci.
Du coup... ça voudrait forcément dire qu'il y a quelque chose dans mon code source qui aurait par je ne sais quelle manipulation spatio-temporelle un effet quelconque sur la compilation de memory. Mmmmmmmh... "Il y a quelque chose de pourri au royaume de Casio."
LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Posté le 03-12-2018 à 22:21 | #
C'est bien ce que je pensais donc, la lib marche bien en principe. Il y a donc deux possibilités :

1. Il y a un problème dans la lib', et ton programme le révèle.
2. Il y a un problème dans ton programme, et la lib' le révèle.

Je n'ai pas trouvé de problème évident en regardant dans ton code, mais je soupçonne que le caillou est là (pas par vanité, plutôt parce que la lib' a déjà utilisée pas mal de fois sans problème).

Pages: Précédente | 1, 2, 3, 4, 5, 6, 7, 8, 9 | Suivante

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 268 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd