MSX Village forum

La Place des Développeurs FUSION-C Codez en C pour MSX les doigts dans le nez !

aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2699

Le 06/11/2020 à 18h31

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 ?


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.
Github    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 06/11/2020 à 19h30
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 ! :lol
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


banniere-ericb59e
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2699

Le 07/11/2020 à 23h46
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.


On est toujours ignorant avant de savoir.
Github    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2699

Le 07/11/2020 à 23h55
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.
Github    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2699

Le 08/11/2020 à 12h25
Le code source du tool est dispo sur : https://github.com/aoineko-fr/mathtable


On est toujours ignorant avant de savoir.
Github    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 09/11/2020 à 20h42
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. :lol 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


banniere-ericb59e
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 10/11/2020 à 15h55
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.


banniere-ericb59e
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2699

Le 11/11/2020 à 23h27
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.


On est toujours ignorant avant de savoir.
Github    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 12/11/2020 à 10h17
@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 ... :p Edité par ericb59 Le 12/11/2020 à 10h50


banniere-ericb59e
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2699

Le 12/11/2020 à 22h40
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.


On est toujours ignorant avant de savoir.
Github    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2699

Le 12/11/2020 à 22h57
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 ?


On est toujours ignorant avant de savoir.
Github    
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5794

Le 12/11/2020 à 22h58
ericb59 :
Mais plus on est de fous ... :p

Oui mais ce sont des fous de compet la :|:siffle
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

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 13/11/2020 à 07h02
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 ?


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


banniere-ericb59e
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 13/11/2020 à 07h06
TurboSEB :

Oh la vache, quel maîtrise, ça me donne des frissons rien qu'à penser toutes ces choses envisageable :)


Viens faire du C avec nous !
C’est pas plus compliqué que le Basic
Sauf qu’il n’y a pas de numéro de lignes ;) Edité par ericb59 Le 13/11/2020 à 07h06


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10340

Le 13/11/2020 à 14h15
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 ?




:noel
Site web    
blike Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 15/09/2020 à 21h07

Messages: 36

Le 13/11/2020 à 16h50
bonjour Jipe

pour moi le langage informatique c'est comme le grec ancien :siffle

j'ai trouvé ça :https://www.youtube.com/watch?v=yiWuZvsFo1I

peut être aux innocents les mains pleines :lol


blike
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie