Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » C.Basic Projets
Sentaro21 Hors ligne Membre Points: 862 Défis: 0 Message

C.Basic Projets

Posté le 30/04/2017 11:08

Hello, everyone.

I am Sentaro21, and I am developing C.Basic, a Basic interpreter that allows high-speed execution of Basic programs while maintaining compatibility with genuine Casio Basic.

Here is an English site, by Krtyski, about the C.Basic project (I helped him with the translation, but it's still unfinished) :
https://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html

The articles and various programs from this site served as a reference to evaluate the compatibility level of C.Basic. Results were not good every time I tested them, but compatibility increased over time.

These programs have been ported experimentally. Many thanks to their authors.

Block Tower (C.Basic version)
https://pm.matrix.jp/CB/CB_BlockTower.zip

Sudoku (C.Basic version)
https://pm.matrix.jp/CB/CB_Sudoku.zip

Maze Generator (C.Basic version)
https://pm.matrix.jp/CB/CB_MazeGene.zip

Graph 3D (C.Basic version)
https://pm.matrix.jp/CB/CB_Graph3D.zip

TokiTori (C.Basic version 25/11/2018)
https://pm.matrix.jp/CB/CB_Tokitori.zip
(added Save/Load feature)

Ice slider (C.Basic version 25/11/2018)
https://pm.matrix.jp/CB/CB_IceSlider.zip
(added Save/Load feature)

Clonelab (C.Basic version 25/11/2018)
https://pm.matrix.jp/CB/CB_Clonlab.zip
(added Save/Load feature)

Arkenstone (C.Basic version 25/11/2018)
https://pm.matrix.jp/CB/CB_Arkenstone.zip
(added Save/Load feature)

Aventura (C.Basic version 25/11/2018)
https://pm.matrix.jp/CB/CB_Aventura.zip
(added Save/Load feature)

Electricity (C.Basic version 10/2/2019)
https://pm.matrix.jp/CB/CB_Electric.zip
(added Save/Load feature)

Here are examples of programs that reach near-C performance :

BallGame (C.Basic version)
https://pm.matrix.jp/CB/CB_BallGame.zip

Asprin (C.Basic version)
https://pm.matrix.jp/CB/CB_Aspirin.zip


The C.Basic project is still yet to be completed, thus I would like to get your feedback.

This is the latest version of C.Basic 2.45 beta for Graph 35+USB/35+EII/75/85/95 (SD)
https://pm.matrix.jp/CB/CBASIC245beta20.zip (updated 21/5/2020)

This is the latest version of C.BasicCG 1.45 beta for Graph90+E/fx-CG10/20/50:
https://pm.matrix.jp/CB/CBASICCG145beta20.zip (updated 21/5/2020)

C.Basic manuals
https://gitlab.com/sentaro21/cbasic

Currently C.Basic exists thanks to this site.
Thank you very much.


Précédente 1, 2, 3 ··· 10 ··· 20 ··· 24, 25, 26, 27
Lephenixnoir Hors ligne Administrateur Points: 19605 Défis: 142 Message

Citer : Posté le 27/08/2020 09:47 | #


Les nombres décimaux de C.Basic sont au format flottant, 0.01 est difficile à traquer. Ce sera plus simple si tu vas juste de 1 en 1 pour trouver. Soit c'est un float de 4 octets, soit c'est un double de 8 octets. Tu peux aussi envoyer des chaînes de caractères, ce sera plus facile à déchiffrer. Une fois que tu auras trouvé les données tu peux trouver l'en-tête et le footer. Ou lire le code de C.Basic !
Farhi Hors ligne Membre Points: 520 Défis: 0 Message

Citer : Posté le 27/08/2020 11:08 | #


En effet j'ai trouvé que le chiffre flottant était de 8 octets. Et actuellement j'essaye de convertir ces octets mais j'ai du mal à comprendre la comment ça fonctionne.
J'ai aussi essayer les chaînes de caractère mais cela ne fonctionne pas du tout de la même manière.
Maintenant ce qu'il reste à faire c'est trouver un moyen pour convertir 8 octets en float.
Merci pour ton message
"La créativité est contagieuse faites la tourner"
Albert Einstein
Kbd2 Hors ligne Membre Points: 239 Défis: 0 Message

Citer : Posté le 27/08/2020 11:16 | #


8 bytes is for storing a double-precision floating point number, and in the calculator would be stored as big-endian - info on doubles can be found here.
Farhi Hors ligne Membre Points: 520 Défis: 0 Message

Citer : Posté le 27/08/2020 18:36 | #


Merci beaucoup Kbd2 !
Grâce à toi j'ai réussi à convertir les données en floattant
Voici le code pour ceux qui sont intéressés.
C.Basic:

1.01->A
Send(A,7)


Python:

import serial
import struct
arduino=serial.Serial("COM6",baudrate=38400,timeout=1)#port de l'arduino à régler en fonction de celui que vous utilisez
b=arduino.readline()
c=list(b)
c=c[8:] #Retire le header
data=bytes(c)
NbFloat=struct.unpack('>d', data)[0]


Arduino:


    #include <SoftwareSerial.h>

    SoftwareSerial serialCalc(10, 11); // RX, TX

    void setup()  
    {
        // Ouvre les ports serials
        Serial.begin(38400); //Pour la com avec l'ordi. Dont les ports sont Tx:1, Rx:0
        serialCalc.begin(38400); //Pour la com avec la calculatrice. Les  Donc les ports sont Tx:11, Rx:10 (ils sont définis juste au dessus)
    }

    void loop()
    {
        //si la calculatrice nous envoi quelque chose, alors on l'envoi sur l'ordi
        if(serialCalc.available())
            Serial.write(serialCalc.read());
        //si l'ordi nous envoi quelque chose, alors on l'envoi sur la calculatrice
        if(Serial.available())
            serialCalc.write(Serial.read());
    }


Voilà !
"La créativité est contagieuse faites la tourner"
Albert Einstein
Kbd2 Hors ligne Membre Points: 239 Défis: 0 Message

Citer : Posté le 28/08/2020 00:54 | #


Glad I could help
Redcmd En ligne Membre Points: 292 Défis: 5 Message

Citer : Posté le 07/09/2020 12:54 | #


Bug Report: "" commands are very slow
This is because the screen is refreshed everytime a new character is displayed, rather than after the entire string, like in normal CASIO Basic
Create a program like
"1234567890ABCDEFGHIJ"
"1234567890ABCDEFGHIJ"
"1234567890ABCDEFGHIJ"
"1234567890ABCDEFGHIJ"
"1234567890ABCDEFGHIJ"
"1234567890ABCDEFGHIJ"
"1234567890ABCDEFGHIJ"

Notice how every single character of each line is sent to the screen separately, instead of the entire line all at once
This ends up making C.Basic being slower than normal CASIO Basic
(Can be more easily seen when using a ScreenReceiver tool)
RedCMD#4299 - Discord
Mandelbrot SNKEmini Minesweeper Sudoku
Lephenixnoir Hors ligne Administrateur Points: 19605 Défis: 142 Message

Citer : Posté le 07/09/2020 13:14 | #


Usually C.Basic native rendering functions such as those from MonochromeLib are much faster. There might be options to Locate and LocateYX to not refresh the VRAM too.
Précédente 1, 2, 3 ··· 10 ··· 20 ··· 24, 25, 26, 27

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 40 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