Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » C.Basic Projets
Sentaro21Hors ligneMembrePoints: 565 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

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.28 beta for Graph 35+USB/35+EII/75/85/95 (SD)
https://pm.matrix.jp/CB/CBASIC228beta.zip (updated 10/9/2019)

This is the latest version of C.BasicCG 1.28 beta for Graph90+E/fx-CG10/20/50:
https://pm.matrix.jp/CB/CBASICCG128beta.zip (updated 10/9/2019)

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

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


Pages : Précédente1 ... , 8, 9, 10, 11, 12, 13, 14, 15, 16Suivante
CaptainluigiEn ligneMembrePoints: 471 Défis: 0 Message

Citer : Posté le 22/07/2019 17:47 | #


Hi .
I found a bug that wasnt in before version ( i am on 2.0.0 )
The Isexist( fonction doesnt detect files if the name doesnt contain at the end a letter : if used with 1.96 version a save2.sav file i created , detected and now doesnt detect ...
Jouez à Mario sans arrêt sur votre Casio !

Cliquez pour découvrir
Cliquez pour recouvrir
City Heroes
Piano Casio
Micro GIMP
Merci d'avoir lu.
De rien !
Super !

M'en fout
C'est pas très bien ...
KikoodxHors ligneMembrePoints: 1322 Défis: 7 Message

Citer : Posté le 24/07/2019 13:01 | #


Hello !
I installed C.Basic on my fx-CG50 and it's really fast !
I mean, if C is even faster than this I definitly want to learn how to install gint
A minesweeper I made for my own (I haven't found text based one to download) generate in a instant against 4 to 5 seconds in regular Basic Casio, and I had to change the For delay from 100 to 15e3 for playing it !
(I also really love syntax highlight.)

While seeing this, I was wondering : this is a very accurate emulator, do you think it would be possible for you to "emulate" monochrome Basic for polychrome calculators ? It would be a very handy tool in my guess.
Sentaro21Hors ligneMembrePoints: 565 Défis: 0 Message

Citer : Posté le 24/07/2019 14:39 | #


@Captainluigi
Thanks for a bug report.
Save "asave2.sav",A
IsExist("asave2.sav")

This program is Ok.
Sorry, I do not understand the details of the bug a little, so
Could you please explain in more detail the requirements of the bug?


@Kikoodx
Thanks for using C.Basic for CG.

C.Basic is much faster than Basic Casio, but C is even faster (especially for integer programs). I think gint is the fastest because it is optimized.
The advantage of C.Basic is that it can be programmed only on the calculator itself, like Basic Casio.

The current C.Basic also supports g1m programs, but apart from that, I think that full emulation of Monochrome Basic is sufficiently possible.

Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
CaptainluigiEn ligneMembrePoints: 471 Défis: 0 Message

Citer : Posté le 24/07/2019 18:46 | #


Sentaro21 a écrit :
@Captainluigi
Thanks for a bug report.
Save "asave2.sav",A
IsExist("asave2.sav")

This program is Ok.
Sorry, I do not understand the details of the bug a little, so
Could you please explain in more detail the requirements of the bug?


@Kikoodx
Thanks for using C.Basic for CG.

C.Basic is much faster than Basic Casio, but C is even faster (especially for integer programs). I think gint is the fastest because it is optimized.
The advantage of C.Basic is that it can be programmed only on the calculator itself, like Basic Casio.

The current C.Basic also supports g1m programs, but apart from that, I think that full emulation of Monochrome Basic is sufficiently possible.


Hem , very strange : happened with the 2.0 , perhaps the file was corrupted .
Thank you for your time .
Jouez à Mario sans arrêt sur votre Casio !

Cliquez pour découvrir
Cliquez pour recouvrir
City Heroes
Piano Casio
Micro GIMP
Merci d'avoir lu.
De rien !
Super !

M'en fout
C'est pas très bien ...
Sentaro21Hors ligneMembrePoints: 565 Défis: 0 Message

Citer : Posté le 25/07/2019 01:24 | #


Thanks.
File corruption is a bit of a worry.
I wish there were no errors in the latest version.
Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
LightmareHors ligneMembre de CreativeCalcPoints: 506 Défis: 0 Message

Citer : Posté le 29/07/2019 15:58 | # | Fichier joint


Hello ! while i was programming a new dialogue engine, i got a bug : the condition right below is true, but the code in it is not executed, this is a pretty big problem, because i don't know how the bug can be realized. I put the whole program in this message ( the bug is commented in the TEXT program).


//BUG: condition vraie, mais non execution du dialogue

If Frac Mat A[(E/13),(F/13)]=0.3
Then "J'aime l'air frais de la mer ! Comment ? tu savais pas que ce truc a gauche c'est de l'eau ? Normal, le dev ne sais pas faire des graphismes !"->Str 1
Goto 1
IfEnd

42
HackcellEn ligneMembrePoints: 1121 Défis: 6 Message

Citer : Posté le 29/07/2019 16:04 | #


T'es sûr que t'as le droit d'utiliser frac sur une matrice ?
Si oui qu'est-ce que ça voudrais dire que le tout soit égal à 0.3 ?

Pour moi, c'est ta condition qui est fausse...
I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐
LephenixnoirEn ligneAdministrateurPoints: 15508 Défis: 136 Message

Citer : Posté le 29/07/2019 16:15 | #


C.Basic c'est de l'arithmétique de flottants en IEEE 754 non ?
LightmareHors ligneMembre de CreativeCalcPoints: 506 Défis: 0 Message

Citer : Posté le 29/07/2019 16:35 | #


@Hackcell : si, la condition est juste, car Frac cible la valeur contenue dans une case de la matrice A, et non pas la matrice en elle même.
De plus, je sais que ca vient très probablement d'un bug, car toutes les autres conditions de ce type ( qui comportent Frac Mat A[x,y]=z ) fonctionnent. En plus, si on affiche juste avant la condition la valeur de Frac Mat A[(E/13),(F/13)], on obtient bien 0,3
42
LephenixnoirEn ligneAdministrateurPoints: 15508 Défis: 136 Message

Citer : Posté le 29/07/2019 16:38 | #


Et si tu affiches Frac Mat A[(E/13),(F/13)]=0.3 tu obtiens quoi ?
HackcellEn ligneMembrePoints: 1121 Défis: 6 Message

Citer : Posté le 29/07/2019 16:41 | #


Bah cherche pas, comme Senpai l'a dis c'est pas du BCD, mais du binaire tout court et tu peux pas représenter 0.3 en binaire
I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐
LightmareHors ligneMembre de CreativeCalcPoints: 506 Défis: 0 Message

Citer : Posté le 29/07/2019 16:42 | #


@Lephenixnoir : j'obtiens 0 :/
42
LephenixnoirEn ligneAdministrateurPoints: 15508 Défis: 136 Message

Citer : Posté le 29/07/2019 16:43 | #


Donc voilà, c'est de l'arithmétique flottante binaire, donc 0.3 n'est pas représentable. Les deux nombres sont en réalité différents, mais tous les deux approximés à 0.3 lors de l'affichage.

La question pertinente est donc : pourquoi as-tu choisir de mettre des informations dans la partie fractionnaire de ta matrice et comment peux-tu le changer ?
LightmareHors ligneMembre de CreativeCalcPoints: 506 Défis: 0 Message

Citer : Posté le 29/07/2019 16:48 | #


Alors j'ai choisi de faire ca pour relier chaque PNJ avec un dialogue, mais ce qui me perturbe, c'est que ca marche pour les autres PNJs qui ont des conditions similaires ( avec une partie fractionnaire ), et que ca marche parfaitement.
42
HackcellEn ligneMembrePoints: 1121 Défis: 6 Message

Citer : Posté le 29/07/2019 16:49 | #


https://egadget2.web.fc2.com/CBasic/Interpreter/CBasic_interpreter.html#Specification a écrit :
Calculations do not yield the same results as the usual interpreter because C.Basic use double-precision floating point instead of fixed-point BCD.

I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐
LephenixnoirEn ligneAdministrateurPoints: 15508 Défis: 136 Message

Citer : Posté le 29/07/2019 16:52 | #


Tu sais, 0.3 n'est pas représentable mais 0.5 l'est. Donc c'est inutile de chercher à le faire marcher.

Non, le fond pour moi c'est que c'est bizarre (inutile) de mettre des infos dans ce chiffre-là. Multiplie ton nombre par 10. Et si tu as besoin d'un stockage plus compliqué, utilise un stockage plus compliqué, n'essaie pas de tout faire rentrer dans une seule matrice, ça ne sert à rien.
Sentaro21Hors ligneMembrePoints: 565 Défis: 0 Message

Citer : Posté le 30/07/2019 08:25 | #


@Lightmare
It has an error due to binary arithmetic (IEEE754).
Please change the program like this.
If Frac Mat A[(E/13),(F/13)]-0.3<1e-15

If the program does not require floats, it is recommended to integer mode.

@Hackcell
@Lephenixnoir
Thanks for the quick response.


Ajouté le 04/08/2019 à 13:25 :
Here are new updated version.
Newly supports the indent of editor.
There may still be bugs.
Please report as soon as you find it.

2.20 beta for Graph 35+USB/35+EII/75/85/95 (SD)
https://pm.matrix.jp/CB/CBASIC220beta.zip

1.20 beta for Graph90+E/fx-CG10/20/50
https://pm.matrix.jp/CB/CBASICCG120beta.zip

-Added the indent function to the editor.
When [EXE] is pressed, the indent(blank spaces) at the beginning of the current line is continued to the next line.

-In the setup setting, the indent is added automatically when loading the program. (Edit Indent+)
Programs already indented are not added indent.
You can also delete blank spaces including indents when saving program. (=to compatible with Casio Basic)
The following command adds indents.
If-Else-ElseIf-IfEnd
For-To-Step-Next
While-WhileEnd
Do-LpWhile
Switch-SwithEnd

-Fixed a bug that did not work Dim List1 using the old command List1.


Ajouté le 05/08/2019 à 11:21 :
A severe error is found.
re-uploaded now. (5/8/2019)
-Fixed the bug that create a new program with an existing file name.

Ajouté le 07/08/2019 à 05:02 :
Here is new updated version.
Details of the bug are as follows.
https://community.casiocalc.org/topic/7637-cbasic-international-release/page-7#entry62475

2.21 beta for Graph 35+USB/35+EII/75/85/95 (SD)
https://pm.matrix.jp/CB/CBASIC221beta.zip
-Fixed "Range Error" when assigned directly to ViewWindow variable.
-hange specification that Graph 35+E II hidden memory usable size has been changed from 128KB to about 188KB.
-Fixed a bug that the SDK emulator could not be started after initialization.

1.21 beta for Graph90+E/fx-CG10/20/50
https://pm.matrix.jp/CB/CBASICCG121beta.zip

Ajouté le 15/08/2019 à 07:05 :
Here is a little updated version.

2.22 beta for Graph 35+USB/35+EII/75/85/95 (SD)
https://pm.matrix.jp/CB/CBASIC222beta.zip

1.22 beta for Graph90+E/fx-CG10/20/50
https://pm.matrix.jp/CB/CBASICCG122beta.zip
-Fixed MOD( bug in integer mode.
(False) MOD(-5,3)->5
(True ) MOD(-5,3)->1

-Fixed a bug that garbage was generated at the end of the program when the indent function was used on the main memory.

Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Krevo_Hors ligneMaître du PuzzlePoints: 304 Défis: 0 Message

Citer : Posté le 15/08/2019 09:16 | #


Hi, what is 'integer mode' ?

My Casio Basic web interpreter give -2 for MOD(-5,3)
Découvrez mon projet principal : Casio Basic Web Interpreter, le basic Casio dans votre navigateur web !
LephenixnoirEn ligneAdministrateurPoints: 15508 Défis: 136 Message

Citer : Posté le 15/08/2019 10:56 | #


It's the default one execution mode of C.Basic where variables are integers. This speeds up computations (a lot I think?). More details in the documentation.
Sentaro21Hors ligneMembrePoints: 565 Défis: 0 Message

Citer : Posté le 15/08/2019 14:22 | #


@Krevo_
The integer mode is one of the C.Basic execution mode that speeds up by limiting the number to be handled to an integer.
It can be set in setup.

MOD( command of Basic Casio is unique in the negative number.


@Lephenixnoir
Thanks!
The default execution mode of C.Basic is double.
Integer mode was added later.
Complex mode was added last.

Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
LephenixnoirEn ligneAdministrateurPoints: 15508 Défis: 136 Message

Citer : Posté le 15/08/2019 15:09 | #


Thanks for pointing out my mistake, I edited my message.
Pages : Précédente1 ... , 8, 9, 10, 11, 12, 13, 14, 15, 16Suivante

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