La Place des Développeurs FUSION-C Codez en C pour MSX les doigts dans le nez !
ericb59
Membre non connecté
Conseiller Municipal
DarkNekros :
Petite question à la con :
est-ce que tu penses faire un erratum pour ceux qui ont acheté la première édition du livre par Amazon ?
ericb59 :
Le livre FUSION-C Complete Journey a été mis à jour et corrigé, est toujours disponible sur Amazon
Le livre FUSION-C Complete Journey a été mis à jour et corrigé, est toujours disponible sur Amazon
Petite question à la con :
est-ce que tu penses faire un erratum pour ceux qui ont acheté la première édition du livre par Amazon ?
Non, car il n'y a pas de fausses informations dans la v1 du livre. Dans la V2 du livre il y a des corrections orthographiques et de syntaxes essentiellement.
Plus l'ajout des nouvelles fonctions.
Ces nouvelles fonctions tu les retrouves dans le PDF QUICK MANUAL fourni avec Fusion-C v1.1
D'autres corrections, comme certaines fonctions renommées, ou enlevées de la librairie sont indiquées dans le fichier "history.txt" du pack 1.1
ericb59 :
Non, car il n'y a pas de fausses informations dans la v1 du livre. Dans la V2 du livre il y a des corrections orthographiques et de syntaxes essentiellement.
Plus l'ajout des nouvelles fonctions.
Ces nouvelles fonctions tu les retrouves dans le PDF QUICK MANUAL fourni avec Fusion-C v1.1
Plus l'ajout des nouvelles fonctions.
Ces nouvelles fonctions tu les retrouves dans le PDF QUICK MANUAL fourni avec Fusion-C v1.1
Merci pour la réponse, mais je crois que je me suis mal exprimé quand j'ai dit : "faire un erratum".
En effet, je voulais dire si tu avais prévu faire un pdf qu'avec ces nouvelles fonctions pour pouvoir les imprimer et les "attacher" au livre et le reste de corrections le faire directement sur les pages du livre car imprimer (ou acheter) à nouveaux tout est un peu trop.
ericb59 :
D'autres corrections, comme certaines fonctions renommées, ou enlevées de la librairie sont indiquées dans le fichier "history.txt" du pack 1.1
Fichier très bien construit qui sers à voir les différences entre l'ancienne et la nouvelle version de la librairie
ericb59
Membre non connecté
Conseiller Municipal
Monos :
Coquille v1.1
Page 63 :
ReadMSXtype :
coquille : Manque un A avant le ND pour faire AND
Page 63 :
ReadMSXtype :
coquille : Manque un A avant le ND pour faire AND
Scrogneugneu ! La prochaine fois tu me feras une relecture avant publication !! Monos : chercheur de coquilles
J'ai fait quelques tests avec Fusion-C, mais je n'arrive pas à utiliser correctement la fonction LMMM en screen 8.
Autant en assembleur j'avais réussi à bien utiliser correctement la commande LMMM du VDP, autant en C je ne vois pas pourquoi ca ne fonctionne pas !!!
En ASM j'avais fait ce petit programme de test : SCREEN8_ASM
La disquette de tests :
l'intérêt n'est pas dans la qualité des images ou la rapidité mais uniquement la manipulation des zones des 2 pages du screen 8.
SCREEN8_C
Ca fonctionne mais uniquement parceque je colle à partir de la ligne 255 en débordant sur la deuxième page !!!
Donc est ce que quelqu'un à réussi à utiliser cette fonction en SCREEN 8 et copier des zones écrans entre les 2 pages ?
Autant en assembleur j'avais réussi à bien utiliser correctement la commande LMMM du VDP, autant en C je ne vois pas pourquoi ca ne fonctionne pas !!!
En ASM j'avais fait ce petit programme de test : SCREEN8_ASM
La disquette de tests :
l'intérêt n'est pas dans la qualité des images ou la rapidité mais uniquement la manipulation des zones des 2 pages du screen 8.
SCREEN8_C
Ca fonctionne mais uniquement parceque je colle à partir de la ligne 255 en débordant sur la deuxième page !!!
Donc pour résumé ce que je n'arrive pas à faire :
images chargé sur la pages 0, visualisation de la page 1.
LMMM( X, Y, Largeur,hauteur, Dx, Dy, OP );
Si j'indique en Dy (destination Y) un chiffre >255 la copie ne vas pas sur la page 1 mais sur la page 0 ou n'apparait nulle part
J'ai aussi essayé avec une valeur >511 mais ca ne fonctionne pas mieux !
images chargé sur la pages 0, visualisation de la page 1.
LMMM( X, Y, Largeur,hauteur, Dx, Dy, OP );
Si j'indique en Dy (destination Y) un chiffre >255 la copie ne vas pas sur la page 1 mais sur la page 0 ou n'apparait nulle part
J'ai aussi essayé avec une valeur >511 mais ca ne fonctionne pas mieux !
Donc est ce que quelqu'un à réussi à utiliser cette fonction en SCREEN 8 et copier des zones écrans entre les 2 pages ?
ericb59
Membre non connecté
Conseiller Municipal
Hummmm Je crains que la fonctione LMMM ne fonctionne que jusqu'au screen5. J'ai pas du la réécrire en entier (un oublie ! ?)
Par contre utilise la fonction fLMMM
C'est la même chose, sauf que les coordonnées sont transmises par une structure.
Celle là fonctionne très bien en Screen8
les coordonnées y >=256 sont sur la seconde page de la Vram
Par contre utilise la fonction fLMMM
C'est la même chose, sauf que les coordonnées sont transmises par une structure.
Celle là fonctionne très bien en Screen8
les coordonnées y >=256 sont sur la seconde page de la Vram
Code C :
Edité par
ericb59
Le 08/07/2019 à 21h26
#include <stdio.h> #include "fusion-c/header/vdp_graph2.h" #include "fusion-c/header/msx_fusion.h" MMMtask t; // Structure need for fLMMM int main (void) { Screen(8); SetActivePage(0); SetDisplayPage(0); Rect (0, 0, 255, 212, 11, 0xFF ); // Fill The page Rect (10, 10, 110, 40, 190, 0 ); // Draw a rectangle t.X = 10; // Parameters to Copy rctangle to Page 1 t.Y = 10; t.DX = 101; t.DY = 31; t.X2 = 10; t.Y2 = 356; t.s0 = 0; t.DI = 0; t.LOP = 0; fLMMM(&t); // Do it while (Inkey()!=27) /// Wait Push ESC key {} SetDisplayPage(1); // Show page 1 while (Inkey()!=27) /// Wait Push ESC key {} Screen(0); return 0; }
Merci effectivement ca fonctionne très bien avec fLMMM !
C'est quand même un peu dommage que LMMM soit bridée
le principal c'est d'obtenir le résultat voulu, dans certains cas on peu utiliser l'ASM mais c'était vraiment dommage vu qu'il y a avait des fonctions spécifiques inclus dans ton Fusion-C .
Je continue mes tests ...
Edit:
J'avais une autre question : est ce qu'il y a une raison particulière de ne pas avoir implémenté la fonction YMMM du VDP qui est très pratique parce que plus rapide que LMMM pour déplacer des zones graphiques (surtout en screen 8 puisque 1 octet = 1 pixel) ?
Edité par 6502man Le 08/07/2019 à 21h46
C'est quand même un peu dommage que LMMM soit bridée
le principal c'est d'obtenir le résultat voulu, dans certains cas on peu utiliser l'ASM mais c'était vraiment dommage vu qu'il y a avait des fonctions spécifiques inclus dans ton Fusion-C .
Je continue mes tests ...
Edit:
J'avais une autre question : est ce qu'il y a une raison particulière de ne pas avoir implémenté la fonction YMMM du VDP qui est très pratique parce que plus rapide que LMMM pour déplacer des zones graphiques (surtout en screen 8 puisque 1 octet = 1 pixel) ?
Edité par 6502man Le 08/07/2019 à 21h46
ericb59
Membre non connecté
Conseiller Municipal
Pour Fusion-c, je me suis largement inspiré et pompé sur les autres C existant. Une fonction du Type YMMM n'y était jamais définie, sans doute parce-qu’elle est plus spécifique vu que abscisse est toujours fixe. Donc ca ne m'est même pas venu à l'idée de l'intégrer.
J'ai encore du boulot sur Fusion-c. En tout cas je note déjà de revoir LMMM pour Screen8 et voir pour les autres routine graphiques du VDP.
J'ai encore du boulot sur Fusion-c. En tout cas je note déjà de revoir LMMM pour Screen8 et voir pour les autres routine graphiques du VDP.
ericb59
Membre non connecté
Conseiller Municipal
Nouveautés de Fusion-C qui arrivent ...
La plus importante nouveauté concerne l'optimisation des routines graphiques, et l'ajout de toutes la plupart des routines VDP rapides.
Ici en video exemple. Le mode est le Screen 5.
- LMMV Fill : remplissage rapide d'un rectangle par le VDP
- LMMV Fill : remplissage rapide d'un rectangle par le VDP, avec possibilité d'opération logique
- YMMM copy : copy VRAM to VRAM d'un bloc d'image vers une autre position Y (le bloc n'est pas définissable entiérement il se continue vers la position x=255 ou X=0
- HMMM copy : copy VRAM to VRAM d'un bloc d'image vers une autre position X,Y
- LMMM copy : copy VRAM to VRAM d'un bloc d'image vers une autre position X,Y avec possibilité d'opération logique
- LMMC copy : HMCM + LMMC, copie le block d'image dans un buffer RAM (Possibilité d'une opération logique), puis on copie ce buffer vers la VRAM (Possibilité d'opération Logique)
- HMMC : HMCM + HMMC, copie le block d'image dans un buffer RAM (Possibilité d'une opération logique), puis on copie ce buffer vers la VRAM
Autres fonctions qui arrivent :
Itoa (Transforme un entier en chaine de caractère)
StrReverse : inverse les caractères dans une chaine
Nouvelles versions de MouseRead
Corrections de bugs...
NOTE / Attention la video n'est pas fluide. Je ne sais pas pourquoi ! Edité par ericb59 Le 09/08/2019 à 10h12
La plus importante nouveauté concerne l'optimisation des routines graphiques, et l'ajout de toutes la plupart des routines VDP rapides.
Ici en video exemple. Le mode est le Screen 5.
- LMMV Fill : remplissage rapide d'un rectangle par le VDP
- LMMV Fill : remplissage rapide d'un rectangle par le VDP, avec possibilité d'opération logique
- YMMM copy : copy VRAM to VRAM d'un bloc d'image vers une autre position Y (le bloc n'est pas définissable entiérement il se continue vers la position x=255 ou X=0
- HMMM copy : copy VRAM to VRAM d'un bloc d'image vers une autre position X,Y
- LMMM copy : copy VRAM to VRAM d'un bloc d'image vers une autre position X,Y avec possibilité d'opération logique
- LMMC copy : HMCM + LMMC, copie le block d'image dans un buffer RAM (Possibilité d'une opération logique), puis on copie ce buffer vers la VRAM (Possibilité d'opération Logique)
- HMMC : HMCM + HMMC, copie le block d'image dans un buffer RAM (Possibilité d'une opération logique), puis on copie ce buffer vers la VRAM
Autres fonctions qui arrivent :
Itoa (Transforme un entier en chaine de caractère)
StrReverse : inverse les caractères dans une chaine
Nouvelles versions de MouseRead
Corrections de bugs...
NOTE / Attention la video n'est pas fluide. Je ne sais pas pourquoi ! Edité par ericb59 Le 09/08/2019 à 10h12
ericb59
Membre non connecté
Conseiller Municipal
La nouvelle version de FUSION_C 1.2 est disponible.
Quoi de neuf...
Des corrections, des optimisations et de nouvelles fonctions, notamment des fonctions VDP MSX2, support de la V9990 et de la GR8NET
- CheckBreak : Check Break sequence in MSX-DOS console
- PutCharHex : Pint Hex conversion of a char on console
- PrintHex : Print Hex conversion of an Interger on console
- HMMM : Vram to Vram fast copy function
- LMMC : Ram to Vram fast copy function
- YMMM : Vram to Vram fast Copy to Y position
- HMMV : High speed draw filled rectangle
- LMMV : High speed filled rectangle with operator
- MouseReadTo : Fast Read mouse state and buttons to variable structure
- Itoa : Integer to Char conversion
- StrReverse : Reverse a string
- BoxFill : Fast Draw of a Filled box on screen (easy version of HMMV/LMMV)
- BoxLine : Fast Draw of an empty box on screen
Ajout du Support de la V9990 par le portage de la library graphique de TeamBomba GFX9K vers SDCC (merci Sylvain). (beta)
Ajout du Support TCP IP pour la cartouche GR8NET (Merci Eugeny)(beta)
La librairie est toujours gratuite.
Pour télécharger cette version 2 possibilités :
sur le Site Repro-Factory : http://www.ebsoft.fr/shop/es/19-fusion-c
ou sur GitHub : https://github.com/ericb59
Soyez heureux et codez pour MSX !
Edité par ericb59 Le 14/09/2019 à 10h41
igal
Membre non connecté
Conseiller Municipal
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie