MSX Village forum

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

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 24/09/2019 à 20h20

Reprise du message précédent

Salut Éric le support du v9990 est une super nouvelle :)

Est ce que tu envisagés d'implémenter la totalité du support superimpose et digit sans les limites imposées par Phillips et/ou Sony ?


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 24/09/2019 à 20h46
igal :
Salut Éric le support du v9990 est une super nouvelle :)

Est ce que tu envisagés d'implémenter la totalité du support superimpose et digit sans les limites imposées par Phillips et/ou Sony ?


Non, ce n'est pas prévu. Mais je pense que tu connais par coeur les In et les out qu'il faut utiliser pour faire tout ça non ?
Si c'est le cas, ces possibilités peuvent être utilisées tout comme en Basic, avec les fonctions InPort, OutPort, Vpoke, Vpeek de Fusion-C.
Il est aisé de faire quelques procédures qui automatise tout ce que tu veux, et si tu me donnes infos et exemples, je peux te les faire.


banniere-ericb59e
Site web    
Monos Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 28/09/2018 à 17h10

Messages: 101

Le 11/10/2019 à 20h18
Bug sur le livre que j'ai pas vu je crois en 1.0 et qui reste en 1.1.
Page 185 du 1.1.
La paragraphe Sprite Type 2.
Au moment du copier/coller ta pas du effacer la ligne 4 sprites par ligne...


Il faut donner à manger à nos machines !
Monos Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 28/09/2018 à 17h10

Messages: 101

Le 11/10/2019 à 21h59
Aller zou mon ami un 2nd bug du livre 1.2
Page 114

dans les structures.

Tu as noté MMtask avec deux M
Alors qu'il faut utiliser 3 M !


Il faut donner à manger à nos machines !
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 12/10/2019 à 17h31
Merci Momos !!
Tu as l'oeil ! ;)


banniere-ericb59e
Site web    
Monos Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 28/09/2018 à 17h10

Messages: 101

Le 12/10/2019 à 18h35
Pour la structure c'est surtout que ça ma fait un bug xd je me disais merde c'est pas comme ça on déclare une structure ? J'ai du mené l’enquête donc. Ceci dit je suis passé ç HMMC qui fait ce que je veux maintenant. <3

Par contre je n'ai pas vu de fonction pour changer une seul couleur de la palette de l'index en screen 5. Je teste un peu ce mode.


Il faut donner à manger à nos machines !
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 26/01/2020 à 10h46

Version 1.3 sur les rails

Comparaison de vitesse entre la version 1.0/1.1 et la version 1.3

Edité par ericb59 Le 26/01/2020 à 10h46


banniere-ericb59e
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 28/01/2020 à 14h07
C'est super tout ce que tu fais Eric :top


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 28/01/2020 à 16h07
igal :
C'est super tout ce que tu fais Eric :top


Merci Igal.
Maintenant ça serait bien si plus de gens se mettaient à programmer pour le MSX.
Avec les fonctions qu'il y a dans FUSION-C c'est à peine plus compliqué de programmer en C qu'en Basic. ;)


banniere-ericb59e
Site web    
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 03/03/2020 à 21h43
Bonjour,
Je démarre un développement et j'ai un petit pb avec la méthode GetMatrixKey. Je n'obtiens aucune valeur et je ne sais pas pourquoi.
Je veux connaître l'état des boutons F1 et GRAPH.
Voici mon code qui permet juste d'afficher l'état des controles.
line 1 : direction du joueur 1 ok
line 2 : état bouton 1 port 1 (barre d'espace ou bouton 1 joystick) ok
line 3 : état bouton 2 port 1 (bouton 2 joystick seulement) ok
line 4 : état de la matrice de la ligne 6 ok (vaut toujours 0 alors que je devrais m'attendre à 255, en plus la valeur n'évolue pas)

Merci d'avance.


#include "fusion-c/header/msx_fusion.h"
#include "fusion-c/header/vdp_graph2.h"

void Init(void);
void InputRead(void);
void Dispose(void);
char MenuInterrupt(void);

char joystick;
char buttonA;
char buttonB;
char matrix;

void main(void)
{
Init();
Cls();
do {
MenuInterrupt();
} while (buttonA==0);

Dispose();
}

void Init(void) {
SetColors(15,0,0);
KeySound(0);
}

char MenuInterrupt(void) {
InputRead();
Locate(0,0);
PutCharHex(joystick);
Locate(0,1);
PutCharHex(buttonA);
Locate(0,2);
PutCharHex(buttonB);
Locate(0,3);
PutCharHex(matrix);
return 1;
}

void InputRead(void) {
joystick = JoystickRead(0) | JoystickRead(1);
buttonA = TriggerRead(0) | TriggerRead(1);
buttonB = TriggerRead(3);
matrix = GetKeyMatrix(6); // (b2)Graph, (b5)F1
}

void Dispose(void) {
SetColors(15,4,4);
Beep();
KillKeyBuffer();
}

   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 05/03/2020 à 09h31
Salut RibbSayan

Ton code fonctionne.
Tu obtiens matrix = 0xFF quand aucune des touches de la ligne n'est appuyée.
Si tu appuis sur F1 on obtient : 0xDF
Pour Graph je ne sais pas, car par émulation je ne sais pas trop où se trouve la touche GRAPH !

J'ai fait le test avec OpenMSX 0.15 sur machine Philips NMS 8255

Suivant la machine, la matrice clavier peut être différente. (Mais pas pour les touches Spécifiques MSX)
http://www.msxdev.com/articles/keymatrix.php


Edité par ericb59 Le 05/03/2020 à 09h37


banniere-ericb59e
Site web    
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 05/03/2020 à 19h05
Salut Eric,
Merci de ta réponse.
Bah zut pour moi car rien n'y fait, je ne vois même pas FF mais 00. Ce qui n'est déjà pas normal. Je suis sur la même config que toi OpenMsx 0.15, Philips NMS 8255 (et Fusion v1.2)
J'imagine que la touche F1 fonctionne car hors de mon programme, dans le dos, j'affiche bien "color" en tapant F1.
Après je suis sous windows10 64bits, je ne sais pas si ca peut y faire quelque chose.
Je vais vérifier mes roms system.
Tu pourrais m'envoyer ton fichier .com j'aimerai voir si en binaire j'ai des différences.
Merci d'avance.

   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 05/03/2020 à 20h15

Voici le fichier

testK.zip

- Pour être honnête je ne compile pas avec FUSION_C 1.2 et avec ma béta de la version 1.3
mais je n'ai pas touché à ces fonctions dans la nouvelles version.

- Fait attention de compiler avec SDCC v3.6
Certaines autres version plus récentes posent des problèmes, je n'y ai pas encore regardé. Donc dans l'immédiat il faut utiliser SDCC 3.6

- Pour le windows 10, non ca ne pose pas de problèmes


banniere-ericb59e
Site web    
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 05/03/2020 à 20h40
Ta version fonctionne très bien chez moi aussi.
Je suis en SDCC v3.6

SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8 3.6.0 #9615 (MINGW64)
published under GNU General Public License (GPL)

Je vais regarder coté binaire pour voir les différences.
Merci à toi

   
RibbSayan Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 19/08/2010 à 22h47

Messages: 154

Le 05/03/2020 à 21h06
Les binaires sont très différents. J'ai 3 fois le tag "Made with FUSION-C 1.2 (ebsoft)" (au début, au mileu et en bas), tu ne l'as qu'une fois au début.
Après le contenu est difficilement comparable.
Voici mon binaire si ca t'intéresse.
hota.zip
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 05/03/2020 à 21h23
Oui pour le Tag c'est un bug que j'ai corrigé

Hum chez moi ton dernier indicateur (celui des touches de fonctions) réagit avec les touches fléchées !

J'ai peut être corrigé un bug de la 1.2 à 1.3 ? Je ne m'en souviens pas en tout cas !
Bref... On va faire autrement.
Je m'aperçois que je n'ai pas mis de fonctions simple pour le contrôle des touches de fonctions alors voici une routine que je vais intégrer dans FUSIONC-C 1.3
tu peux l'intégrer à ton programme

Code C :
 
char Fkeys(void)            // Return Status of keys : F1 - F2 - F3 - F4 - F5 - ESC - GRAPH - STOP
{
    __asm
            ld a,(#0xFBEB)
            xor #0xFF
            rra
            rra
            rra
            rra
            rra
            and #0b01000111
            ld b,a
            ld a,(#0xFBEC)
            xor #0xFF
            rla
            rla
            rla
            and #00011000
            or b
            ld l,a
            ld h,#0
            ret
    __endasm;
}
 


Cette fonction FKeys vas te retourner un Octet qui correspond à l'état des touches.
Etat 1 : Touche appuyées
Etat 0 : Touche non appuyée



bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
STOP GRAPH ESC F5 F4 F3 F2 F1


Ou plus simple elle retourne
1 : Si F1 est appuyé
2 : Si F2
4 : Si F3
8 : Si F4
16 : SI F5
32 : Si ESC
64 : Si GRAPH
128 Si STOP


Les combinaisons de touches sont possibles.

Dis moi si ca fonctionne chez toi...

PS De plus cette fonction est plus rapide que GetKeyMatrix, car elle n'utilises pas d'appel au Bios.
Edité par ericb59 Le 05/03/2020 à 21h27


banniere-ericb59e
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie