La Place des Développeurs FUSION-C Codez en C pour MSX les doigts dans le nez !
aoineko
Membre non connecté
Conseiller Municipal
Reprise du message précédent
Pour tout ce qui touche au [font= courier new]define[/font] c'est des choses que tu peux ajouter dans des [font= courier new].h[/font], donc optionnels.Par rapport à la philosophie user-friendly de ta lib, je trouve que ça rendrait les choses plus simple. Mais bon, c'est à toi de voir.
En parlant de [font= courier new].h[/font], j'avais fait un p'tit tool pour générer des tableaux de transformation mathématique pour pouvoir faire des calculs bcp plus rapide.
On peux choisir une opération (sqrt, cos, sin, etc.), le format (virgule fixe avec shift sur 8/16 bits) et la taille du tableau (la précision).
Si tu veux, je peux te fournir les fichiers [font= courier new].h[/font] générés et/ou le tool pour les générer (en CC-BY-AS).
ericb59 :
Pour la version 1.3 j'ai un nouveau code pour jouer PT3 + AYFX en même temps. Mais il y a bug avec certains sons qui ne veulent pas s'arrêter.
J'ai soumis le problème à un autre codeur, qui n'a pas trouvé d'où venait le problème.
Est-ce que tu peux y regarder ?
J'ai soumis le problème à un autre codeur, qui n'a pas trouvé d'où venait le problème.
Est-ce que tu peux y regarder ?
Je suis pas super à l'aise avec l'ASM, mais je vais jeter un œil.
Ca fait 22 ans que je fais du C en pro, mais l'ASM, c'est juste pour le plaisir.
Si tu veux, je peux beta-téster la version 1.3.
On est toujours ignorant avant de savoir.
ericb59
Membre non connecté
Conseiller Municipal
Oui je veux bien tes .h pour le calcul flottant.
J'avais l'intention d'ajouter ça aussi... puis j'ai oublié !
Je suis loin d'être un pro du C. et L'ASM... comment dire... Ca fait des noeuds dans ma tête !
J'arrive à sortir quelques routines simples, ou à en modifier d'autres, mais c'est à peu près tout.
Je t'enverrai d'ici quelques jour un MP avec Fusion-C 1.3.
Merci Edité par ericb59 Le 06/11/2020 à 19h32
J'avais l'intention d'ajouter ça aussi... puis j'ai oublié !
Je suis loin d'être un pro du C. et L'ASM... comment dire... Ca fait des noeuds dans ma tête !
J'arrive à sortir quelques routines simples, ou à en modifier d'autres, mais c'est à peu près tout.
Je t'enverrai d'ici quelques jour un MP avec Fusion-C 1.3.
Merci Edité par ericb59 Le 06/11/2020 à 19h32
aoineko
Membre non connecté
Conseiller Municipal
Voici l'outil de création des tables mathématiques précalculées : MathTable_1_3.zip.
J'ai créé un fil de discussion distinct pour les discussions spécifiques à l'outil.
Le .zip contient l'outil (mathtable.exe) et différents tableaux pré-générés dans le répertoire /generated/.
Tables de sinus/cosinus (les plus utilisés) de différentes tailles (format 8.8):
- trigo_32.inc
- trigo_64.inc
- trigo_128.inc
- trigo_256.inc
Les autres tables de trigo (tan asin acos atan) de différentes tailles (format 8.8):
- trigo_ext_32.inc
- trigo_ext_64.inc
- trigo_ext_128.inc
- trigo_ext_256.inc
Les tables de trigo de 64 entrées séparées dans des fichiers différents (format 8.8):
- math_sin_64.inc
- math_cos_64.inc
- math_tan_64.inc
- math_asin_64.inc
- math_acos_64.inc
- math_atan_64.inc
Les tables de racine-carrées :
- math_sqrt_256.inc (256 entrées, format 4.4)
- math_sqrt_1024.inc (1024 entrées, format 5.3)
Les tables de carrés [0:1] :
- math_sq_64.inc (64 entrées, format 2.6)
- math_sq_256.inc (256 entrées, format 4.12)
Si tu préfères un autre rangement/taille/format, dis-moi, c'est simple à modifier.
Et si tu veux un truc user-friendly (et que l'occupation mémoire ne te préoccupe par trop), on pourrait faire des tables de trigo de 360 entrées : ça permettrait d'avoir une entrée par degrée.
Ce qui est plus simple à comprendre mais pas forcement plus simple à utiliser (c'est toujours plus facile/efficace de travail en puissance de 2).
J'ai pris l'habitude de mettre les includes qui contiennent des datas dans des fichiers .inc, mais on peut les mettre dans des .h si tu préfères.
J'ai créé un fil de discussion distinct pour les discussions spécifiques à l'outil.
Le .zip contient l'outil (mathtable.exe) et différents tableaux pré-générés dans le répertoire /generated/.
Tables de sinus/cosinus (les plus utilisés) de différentes tailles (format 8.8):
- trigo_32.inc
- trigo_64.inc
- trigo_128.inc
- trigo_256.inc
Les autres tables de trigo (tan asin acos atan) de différentes tailles (format 8.8):
- trigo_ext_32.inc
- trigo_ext_64.inc
- trigo_ext_128.inc
- trigo_ext_256.inc
Les tables de trigo de 64 entrées séparées dans des fichiers différents (format 8.8):
- math_sin_64.inc
- math_cos_64.inc
- math_tan_64.inc
- math_asin_64.inc
- math_acos_64.inc
- math_atan_64.inc
Les tables de racine-carrées :
- math_sqrt_256.inc (256 entrées, format 4.4)
- math_sqrt_1024.inc (1024 entrées, format 5.3)
Les tables de carrés [0:1] :
- math_sq_64.inc (64 entrées, format 2.6)
- math_sq_256.inc (256 entrées, format 4.12)
Si tu préfères un autre rangement/taille/format, dis-moi, c'est simple à modifier.
Et si tu veux un truc user-friendly (et que l'occupation mémoire ne te préoccupe par trop), on pourrait faire des tables de trigo de 360 entrées : ça permettrait d'avoir une entrée par degrée.
Ce qui est plus simple à comprendre mais pas forcement plus simple à utiliser (c'est toujours plus facile/efficace de travail en puissance de 2).
J'ai pris l'habitude de mettre les includes qui contiennent des datas dans des fichiers .inc, mais on peut les mettre dans des .h si tu préfères.
On est toujours ignorant avant de savoir.
aoineko
Membre non connecté
Conseiller Municipal
Quand tu m'auras envoyé la 1.3 (j'ai un compte GitHub au cas ou : aoineko-fr), je te ferais un mini programme d'exemple.
On est toujours ignorant avant de savoir.
aoineko
Membre non connecté
Conseiller Municipal
Le code source du tool est dispo sur : https://github.com/aoineko-fr/mathtable
On est toujours ignorant avant de savoir.
ericb59
Membre non connecté
Conseiller Municipal
Merci aoineko.
Pas encore eu le temps d'y regardé...
J'ai passé la journée à essayer de comprendre pourquoi ma fonction SpriteOFF ne fonctionnait pas sur MSX1 (Disable Sprite), et créait des affichages étranges à l'écran ...
Pour finalement comprendre que c'est une possibilité qui n'existe pas sur MSX1. Mais dédiée aux MSX2 et Sup...
Bon.. ben j'ai perdu une journée, mais j'ai appris quelque chose
Edité par ericb59 Le 09/11/2020 à 20h44
Pas encore eu le temps d'y regardé...
J'ai passé la journée à essayer de comprendre pourquoi ma fonction SpriteOFF ne fonctionnait pas sur MSX1 (Disable Sprite), et créait des affichages étranges à l'écran ...
Pour finalement comprendre que c'est une possibilité qui n'existe pas sur MSX1. Mais dédiée aux MSX2 et Sup...
Bon.. ben j'ai perdu une journée, mais j'ai appris quelque chose
Edité par ericb59 Le 09/11/2020 à 20h44
ericb59
Membre non connecté
Conseiller Municipal
J'ai mis à jour FUSION-C 1.2
https://github.com/ericb59/Fusion-C-v1.2
car il y a fait des bug d'affichage lors de l'utilisation des sprites sur MSX1.
https://github.com/ericb59/Fusion-C-v1.2
car il y a fait des bug d'affichage lors de l'utilisation des sprites sur MSX1.
aoineko
Membre non connecté
Conseiller Municipal
Tu as un ordre de grandeur de la durée avant que je puisse avoir accès à la 1.3 ?
Si tu penses que ça va être un peu long, je ferais mon exemple pour MathTable dans la version 1.2 et on le portera quand la 1.3 sera dispo.
Pour info, j'ai publier un autre outil que j'utilisais pour mes projets MSX : MSXImage.
C'est un tool qui génère des tables de sprites pour C/ASM/Binaire à partir d'une image (avec mise au format MSX et divers algo de compression sans perte).
C'est très utile quand tu développes une ROM pour intégrer tes datas à ton programme, mais même si tu utilises un disque, ça permet d'avoir des fichiers beaucoup plus petit et donc plus rapide à charger.
Je vais extraire la partie décompression de mon programme pour en faire un module pour ma lib. Je pourrais aussi facilement en faire un module pour Fusion-C.
Si tu penses que ça va être un peu long, je ferais mon exemple pour MathTable dans la version 1.2 et on le portera quand la 1.3 sera dispo.
Pour info, j'ai publier un autre outil que j'utilisais pour mes projets MSX : MSXImage.
C'est un tool qui génère des tables de sprites pour C/ASM/Binaire à partir d'une image (avec mise au format MSX et divers algo de compression sans perte).
C'est très utile quand tu développes une ROM pour intégrer tes datas à ton programme, mais même si tu utilises un disque, ça permet d'avoir des fichiers beaucoup plus petit et donc plus rapide à charger.
Je vais extraire la partie décompression de mon programme pour en faire un module pour ma lib. Je pourrais aussi facilement en faire un module pour Fusion-C.
On est toujours ignorant avant de savoir.
ericb59
Membre non connecté
Conseiller Municipal
@aoineko : je t'ai envoyé une invitation sur mon Repository Private de Fusion-C 1.3
J'ai commencé à scinder toutes les sources, pour que le linker n'intègre que ce qui est nécessaire dans le programme final.
On gagne déjà pas mal de d'octets et même de Ko ! dans cette version.
Il me reste du travail sur le manual, plus du coté SDK que Librairie C.
ps : Il y a déjà dans Fusion-c la decompression RLE, et sur mon GitHub un compresseur RLE en ligne de commande.
Mais plus on est de fous ... Edité par ericb59 Le 12/11/2020 à 10h50
J'ai commencé à scinder toutes les sources, pour que le linker n'intègre que ce qui est nécessaire dans le programme final.
On gagne déjà pas mal de d'octets et même de Ko ! dans cette version.
Il me reste du travail sur le manual, plus du coté SDK que Librairie C.
ps : Il y a déjà dans Fusion-c la decompression RLE, et sur mon GitHub un compresseur RLE en ligne de commande.
Mais plus on est de fous ... Edité par ericb59 Le 12/11/2020 à 10h50
aoineko
Membre non connecté
Conseiller Municipal
MSXImage contient 9 algo de compression sans perte.
Il n'y en a pas un mieux que les autres, ça dépend vraiment de l'image source.
Avec les 9, on a de quoi palier à tout les cas.
J'ai récupéré Fusion-C 1.3. Je vais commencer à le tester.
Il n'y en a pas un mieux que les autres, ça dépend vraiment de l'image source.
Avec les 9, on a de quoi palier à tout les cas.
J'ai récupéré Fusion-C 1.3. Je vais commencer à le tester.
On est toujours ignorant avant de savoir.
aoineko
Membre non connecté
Conseiller Municipal
J'ai essayé de compiler "hello.c" mais y a des problèmes de path dans la version 1.3 que j'ai récup.
Le .c est censé être dans WorkingFolder\ et le script de build dans WorkingFolder\fusion-c\ comme actuellement ?
Le .c est censé être dans WorkingFolder\ et le script de build dans WorkingFolder\fusion-c\ comme actuellement ?
On est toujours ignorant avant de savoir.
TurboSEB
Membre non connecté
Conseiller Municipal
ericb59 :
Mais plus on est de fous ...
Oui mais ce sont des fous de compet la
Oh la vache, quel maîtrise, ça me donne des frissons rien qu'à penser toutes ces choses envisageable Edité par TurboSEB Le 13/11/2020 à 00h28
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
ericb59
Membre non connecté
Conseiller Municipal
aoineko :
J'ai essayé de compiler "[font= courier new]hello.c[/font]" mais y a des problèmes de path dans la version 1.3 que j'ai récup.
Le [font= courier new].c[/font] est censé être dans [font= courier new]WorkingFolder[/font] et le script de build dans [font= courier new]WorkingFolderfusion-c[/font] comme actuellement ?
Le [font= courier new].c[/font] est censé être dans [font= courier new]WorkingFolder[/font] et le script de build dans [font= courier new]WorkingFolderfusion-c[/font] comme actuellement ?
Les scripts de compilation ont changés de place.
Ils sont dans le sous dossier Fusion-c/
Par contre j’ai pas testé le script .bat pour Windows.
Si tu utilises Fusion-c tel que je l’ai prévu depuis la version 1.0, il y a des modifications à faire sur l’accès aux scripts, regarde la doc, chapitre installation manuellé
, et repère les icônes avec un point d’exclamation. Ils correspondent aux changements à effectuer.
Edité par ericb59 Le 13/11/2020 à 07h04
ericb59
Membre non connecté
Conseiller Municipal
faut voir pour ceux qui n'ont pas appris ça pendant leurs études
c'est comme l'anglais j'arrive a le comprendre un peu mais je ne suis pas capable de le parler
En C
Le programme suivant est donné à titre d'exemple.
Il calcule la moyenne de deux nombres entrés au clavier et l'affiche :
Exemple 1-23. Programme complet simple
#include <stdio.h> /* Autorise l'emploi de printf et de scanf. */
long double x, y;
int main(void)
{
printf("Calcul de moyenne\n"); /* Affiche le titre. */
printf("Entrez le premier nombre : ");
scanf("%Lf", &x); /* Entre le premier nombre. */
printf("\nEntrez le deuxième nombre : ");
scanf("%Lf", &y); /* Entre le deuxième nombre. */
printf("\nLa valeur moyenne de %Lf et de %Lf est %Lf.\n",
x, y, (x+y)/2);
return 0;
}
donc je le décode et je suis capable de le reproduire en basic mais pas l'inverse
j'avais acheté quelques livres dans le temps
le language C de B.W. Kernighan D.M. Ritchie chez Masson
Mode d'emploi C de Bruce Hunter chez Sybex ( en poche il faut une loupe pour lire les exemples )
Aide mémoire de C chez Marabout ( c'est plutot un dico des instructions )
a l'aide : n'y a t'il pas quelque part des tutos simples pour les novices ?
c'est comme l'anglais j'arrive a le comprendre un peu mais je ne suis pas capable de le parler
En C
Le programme suivant est donné à titre d'exemple.
Il calcule la moyenne de deux nombres entrés au clavier et l'affiche :
Exemple 1-23. Programme complet simple
#include <stdio.h> /* Autorise l'emploi de printf et de scanf. */
long double x, y;
int main(void)
{
printf("Calcul de moyenne\n"); /* Affiche le titre. */
printf("Entrez le premier nombre : ");
scanf("%Lf", &x); /* Entre le premier nombre. */
printf("\nEntrez le deuxième nombre : ");
scanf("%Lf", &y); /* Entre le deuxième nombre. */
printf("\nLa valeur moyenne de %Lf et de %Lf est %Lf.\n",
x, y, (x+y)/2);
return 0;
}
donc je le décode et je suis capable de le reproduire en basic mais pas l'inverse
j'avais acheté quelques livres dans le temps
le language C de B.W. Kernighan D.M. Ritchie chez Masson
Mode d'emploi C de Bruce Hunter chez Sybex ( en poche il faut une loupe pour lire les exemples )
Aide mémoire de C chez Marabout ( c'est plutot un dico des instructions )
a l'aide : n'y a t'il pas quelque part des tutos simples pour les novices ?
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie