Posté le 30/12/2013 11:43
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 38 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
Citer : Posté le 04/05/2023 14:19 | #
A ma connaissance (mais je peux me tromper) l'ensemble des données accessible en Basic (donc les data, les listes, les matrices) finissent à un moment ou un autre dans la mémoire principale. Le texte du programme BASIC lui aussi est en mémoire principale, donc la limite est bien cette mémoire. Je ne pense pas que la limite de RAM (que de toute manière tu n'auras pas moyen de changer en BASIC, contrairement à un addin en C par exemple), représente une contrainte forte. A mon avis tu bloqueras avant par la taille de la mémoire principale (qui est au total de 64ko en passant).
Citer : Posté le 04/05/2023 14:24 | #
https://en.wikipedia.org/wiki/.kkrieger < meilleur exemple que je connaisse, toute les textures sont crées par des algorithmes de quelques ko.... évidament je compte pas arriver a ce niveau mais pour avoir des trucs simples en 16x16 ou même 8x8 pour rajouter un peu d'ambiance
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 04/05/2023 14:27 | #
Attention aussi à ne pas sur-estimer la vitesse du Basic. Un raycaster à la Wolfenstein sur la Graph 90+E comme ça de tête tu seras fort si tu arrives à générer un frame en 10 secondes.
Sinon oui la Graph 90+E a une puce RAM de 8 Mo. Les Prizm (modèle précédent) avaient une puce RAM de 2 Mo. Mais ça veut pas dire que tu peux utiliser 2 Mo, tout le contraire d'ailleurs : la puce originale de 2 Mo est utilisée par l'OS et si tu écris où que ce soit ailleurs que la mémoire qui t'es fournie explicitement, ça va mal se passer. Grosso modo t'as environ 512 ko totalement à toi, jusqu'à 1 Mo si tu tires tous les leviers exotiques, et si tu utilises le reste de la puce spécifique à la Graph 90+E (... ce qu'on sait qu'on peut faire dans certaines circonstances) tu peux gratter quelques Mo. Mais peu de programmes ont besoin de ça.
Citer : Posté le 04/05/2023 14:31 | #
OK, mais je te confirme : tout passe par la mémoire principale qui est la zone ou tout est stocké à un moment ou un autre (code et data, y compris généré à la volée par des algorithmes procéduraux) : cf ici : https://www.planet-casio.com/Fr/programmation/gestion_erreurs.php (partie Memory Error).
En fait en basic les données sont persistantes, si ton programme crash ou si tu l'arretes, les données sont stockées (contrairement à un addin ou la RAM s'efface). Donc ces 64ko (65536o) sont à partager entre le code BASIC et les variables.
Imaginons un cas théorique : si ton corps de programme faisait 65536o (donc prenne toute la mémoire), tu ne pourrais pas créer ou stocker une seule variable, Même un simple 1→A ne serait pas possible car A ne pourrait pas être stocké.
(on est d'accord que d'un point de vue design, c'est un peu con)
Citer : Posté le 04/05/2023 19:17 | #
Bonsoir, lorsque je trace des graphiques d'inequations, en plus de la zone hachuré, une droite représentant l'équation apparaît elle aussi. Il y aurait-il un moyen de la faire disparaitre ?
Citer : Posté le 04/05/2023 19:17 | #
Si tu utilises SketchDot devant le graphe d'inéquation ça dessine la droite comme une série de points ce qui est plus discret
Citer : Posté le 04/05/2023 19:22 | #
Ok merci, et existe-t-il une fonction sur les graphs monochrome pour tracer une ligne blanche ?
Citer : Posté le 04/05/2023 20:50 | #
En vrai même si ça tourne super lentement ça fait de l'entrainement pour refaire en C, et surtout le truc c'est en utilisant des listes et surtout des matrices pour stocker des données je pensait qu'on pouvait arriver a des niveaux décents d'utilisation de mémoire. C'est un peu bête quand même que ça passe forcément par la mémoire principale, surtout ça peut poser des problèmes si elle est un peu plus pleine que prévu.
Lephenixnoir tu peux en théorie utiliser tous les 8mo de ram, vu que tu as un accès libre a la mémoire tu peux virer l'OS, mais bon après il faudrait copier l'intégralité de la mémoire utilisée par l'os sur la mémoire stockage pour pouvoir retourner proprement. Sinon tu peux juste faire un programme qui nécésite d'appuyer sur le bouton reset ou d'enlever les piles pour revenir a l'os, pour un shell ou un autre os (DOS ou Unix seraient les meilleurs choix déja existants)
Gky93, ici et il y a un index des commandes qui a tout (a part les fonctions de trigo )
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 04/05/2023 23:01 | #
Oui bien sûr en théorie tu peux tout faire, mais c'est intéressant que si c'est stable et que la probabilité de détruire la calculatrice de ton utilisateur est 0%.
Là par exemple, si tu creuses un peu c'est pas du tout convaincant. Le point d'entrée du système de fichiers et un certain nombre de structures associées sont dans la RAM. Tu ne peux donc pas sauvegarder avec Bfile puisque les structures changeraient durant la copie, résultant en un fichier corrompu. Tu ne peux définitivement pas sortir proprement car après que ton usage de la RAM aura écrasé les structures ni Bfile ni toi ne pourrez trouver les fichiers ; il faudrait sauvegarder les structures séparément à l'avance (et pour info on ne sait même pas encore comment les localiser avec certitude).
La seule approche qui passe le stade de l'expérience de pensée sans nécessiter de driver fs maison ce serait de pré-créer un fichier de swap et de faire la copie hors-fs sans affecter les structures après avoir localisé les blocs du fichier, garder les indices de secteurs sous la main, et le restaurer après. Ce qui a aussi tous les problèmes associés avec écrire des secteurs à la main que si on écrase le mauvais c'est game over.
Et puis pendant que tu utilises tout cette RAM il est hors de question d'appeler du code OS, donc faut désactiver toutes les interruptions et utiliser tes propres drivers. Comme la table des pages de l'add-in est dans la RAM de l'OS, pas moyen non plus d'utiliser le TLB handler de l'OS et donc il faut aussi que tu la copies indirectement à l'avance et que tu répondes à la main (aussi peu convaincant, la dernière personne qui a joué avec le TLB a la main a grillé sa calto).
Du coup oui "en théorie" tu peux, mais déjà "au papier" tu peux pas... x)
Citer : Posté le 04/05/2023 23:13 | #
Ouaip. Mais bon après je parlais pas d'utiliser ça pour faire tourner un jeu, la ça serait stupide, mais de faire tourner ton propre OS. Après l'intérêt est minimal vu que de toute façon il faudrait au moins recompiler le code des programmes pour porter, avec les capacités limitée d'une calculatrice on est dans les programmes d'avant 1995 donc peu de véritables nécéssitées OS, ou dumoins c'est rien comparé a retrouver les sources ect.. dans la plupart des cas.
Aussi on est plus vraiment en lien avec le sujet, je vais juste dire que moi ça avance de mon côté, j'ai tout le mouvement mais il va sans doute me falloir plusieurs heures en plus pour la partie rendu, et c'est a ce point la que je vois si j'abandonne ou pas selon la perf.
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 30/07/2023 14:46 | #
Bonjour, je travaille sur un Snake en basic-casio et j’ai besoin de trouver l’index d’une valeur dans une matrice sans boucles For. Un post a déjà été fait a ce sujet mais je ne le trouve plus. Merci d’avance.
Citer : Posté le 30/07/2023 19:16 | #
Je ne saurais pas te donner la réponse (je ne sais pas si c'est possible), par contre je suis curieux : pourquoi la boucle For n'est-elle pas une option ?
Citer : Posté le 08/08/2023 14:13 | #
Ce n'est pas grave, j'ai trouvé une solution qui change totalement le processus
La boucle For prendrais trop de temps a être effectuée dans une matrice de 15x30
D’ailleurs, j'ai une autre question :
Laquel de ces deux fonction est la plus rapide à executer ?
PlotOff ou PxlOff ?
(je suppose que Totoyo aura LA réponse (ou pas))
Citer : Posté le 08/08/2023 15:34 | #
Je crois pas que ce soit très différent mais conceptuellement PxlOff devrait aller plus vite. Elle modifie pas X/Y non plus
Citer : Posté le 25/08/2023 14:04 | #
J'avais fait un benchmark des fonctions basic casio en 2011 : https://www.planet-casio.com/Fr/forums/topic9648-3-vitesse-des-fonctions-fx-cg1020-comparaisons-g85g100.html
PlotOn et PxlOn semblent équivalentes en terme de performance, avec un très léger avantage de seulement 1% pour les fonctions Plot (PlotOn, PlotOff etc) par rapport aux fonctions PxlOn et PxlOff. Rien de décisif en tout cas dans le choix d'une ou de l'autre.
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 24/11/2023 10:27 | #
The Basic Casio tutorial is an invaluable resource for mastering the essentials of Casio devices. Clear explanations, step-by-step guides, and practical tips make it a go-to for users of all levels. Kudos to the creators for simplifying the complexities and empowering users to harness the full potential of their Casio products.
Edit Lephenixnoir : Pour ceux qui se demandent, oui il y a eu un lien plus tard.
Citer : Posté le 24/11/2023 12:08 | #
Merci Garywayne64 pour ce retour élogieux (j'espère que ce n'est pas un troll ).
Sur la page "Gestion des erreurs", les retours à la ligne sont font mal pour certaines sous parties comme "Go Error ou Erreur Saut" et "Memory Error (erreur de mémoire)". Je pense que c'est à cause des images flottantes.
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Paline Invité
Citer : Posté le 16/05/2024 07:21 | #
Bonjour
Je voudrais revenir au début d'un calcul si la valeur final ne me convient pas ... Comment je peux faire !!!
Citer : Posté le 16/05/2024 07:40 | #
Il nous faudrait plus de détails... mais l'idée sera probablement d'utiliser une boucle. Une boucle te permet de répéter du code (ici le calcul), ce qui te permet de (1) calculer, (2) déterminer si la valeur finale te convient, et (3) si non, rester dans la boucle pour refaire le calcul. Par contre, il faut que tu changes quelque chose dans ton calcul sinon tu vas continuer d'obtenir la même valeur et tu n'auras jamais un résultat qui te convient.