 | Forum Le CBNA Le Forum du CBNA a pour but de vous aider dans l'utilisation de GameMaker. Premier forum Francophone sous GameMaker, vous trouverez des .gmd, .gm6, .gmk, scripts, logiciels et d'autres ressources sur Le CBNA. |
| | bogue dans la lecture asm du port parallele | |
| | | Auteur | Message |
|---|
[TheDarkTiger] Modérateur 'Programmation'

Age : 21 Inscrit le : 08 Juin 2005 Messages : 5459 Localisation : Essonne : ────────── : Avancement :
  (0/100)
| Sujet: bogue dans la lecture asm du port parallele Sam 15 Mar - 17:51 | |
| kikoo à tous ^^
bon, voila, je post ici car j'ai un bogue : mon code ASM d'une DLL en C/C++ est 'légal' (pas de problème de syntaxe ect.) mais GM plante (ou mouline plutôt : il utilise plein de ressources processeur pour rien et se fige) . (je suis sous Dev-C++ V4.9.9.2)
je poste donc mes sources ici, peut-être l'un de vous pourat-il me dire où ça bogue ?
dllmain.cpp
| Spoiler: | | | /* Replace "dll.h" with the name of your header */ #include "dll.h"
//#include <io2.h> //#include <windows.h>
static unsigned char DATA; static unsigned short PORT; static unsigned char READ;
//0x378 = 888 export unsigned char pp_set(unsigned char PORT, unsigned char DATA) { __asm("mov _PORT, %dx") ; __asm("mov _DATA, %al") ; __asm("out %al, %dx") ; return 1; }
export unsigned char pp_set_data(unsigned char DATA) { __asm("mov 0x378, %dx") ; __asm("mov _DATA, %al") ; __asm("out %al, %dx") ; return 1; }
//-----*****-----
export unsigned char pp_get(unsigned char PORT) { __asm("mov _PORT, %dx"); __asm("in %dx, %al"); __asm("mov %al, _READ"); /* _asm { mov dx,adresse_reg in al,dx mov result,al }*/ return READ; } |
dll.h
| Spoiler: | | | #ifndef _DLL_H_ #define _DLL_H_
/* Début de la définition de l’utilisateur */ #define export extern "C" __declspec (dllexport) /* fin de la définition de l’utilisateur */
#if BUILDING_DLL # define DLLIMPORT __declspec (dllexport) #else /* Not BUILDING_DLL */ # define DLLIMPORT __declspec (dllimport) #endif /* Not BUILDING_DLL */
class DLLIMPORT DllClass { public: DllClass(); virtual ~DllClass(void);
private:
};
#endif /* _DLL_H_ */
|
fonction d'import sous GM:
| Spoiler: | | | /* Ce code va initialiser la fonction de la DLL que vous venez de créer. Cela définit quel est le nom de la DLL, le surnom de la fonction, on parlera d’alias, le type d’appel, le type de ressource, et les arguments. Nous avons deux arguments, tout deux : « real » qui signifient numériques, le type de ressource est donc les réels, car la fonction de notre DLL retourne une valeur numérique. */ global.DLL_pp_set =external_define("PortParallele.dll","pp_set",dll_stdcall,ty_real,2,ty_real,ty_real);
global.DLL_pp_set_data=external_define("PortParallele.dll","pp_set_data",dll_stdcall,ty_string,1,ty_real); |
fonction d'utilisation sous GM :
| Spoiler: | | | external_call(global.DLL_pp_set_data,argument0); |
script utilisé :
| Spoiler: | | | pp_set_data(255); show_message("255");
pp_set_data(0); show_message("0"); |
pour l'import des DLL dans GM, je me suis fortement inspiré du tuto de Damintreg (copier/coller) mais je l'ai lu en entier, et j'ai compris à quoi servait tout , bien entendu ^^
voila, si quelqu'un sait où ça plante, ses commentaires sont les bienvenue ^^ _________________ Bonne chance pour vos projets actuels! Prêt à aider ceux qui en ont besoin ^^

Bienvenue au 1118eme utilisateur : Dada du 29 !
... par pitié, arrêtez de foutre le merdier sur le forum ! (il me serait agréable que vous ussiez la politesse de ne point étaler des propos inutiles.) |
|  | | Topaze22 *Excellent utilisateur*

Age : 22 Inscrit le : 22 Déc 2006 Messages : 4002 Localisation : Pas loin de Playboy et Bubu : ────────── : Projet Actuel : Paper Mario (intermédiaire) Avancement :
  (100/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Sam 15 Mar - 21:51 | |
| Aucune idée. J'aimerais savoir quel processeur tu as. J'ai peu être l'ombre microscopique d'une idée. _________________ Merci à la communauté du CBNA pour son soutient Mon unique projet depuis bientôt 3 ans :
 |
|  | | [TheDarkTiger] Modérateur 'Programmation'

Age : 21 Inscrit le : 08 Juin 2005 Messages : 5459 Localisation : Essonne : ────────── : Avancement :
  (0/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Dim 16 Mar - 0:20 | |
| intel (r) pentium 4 3GHz
pk ?
l' AT&T c'est po compatible ??? _________________ Bonne chance pour vos projets actuels! Prêt à aider ceux qui en ont besoin ^^

Bienvenue au 1118eme utilisateur : Dada du 29 !
... par pitié, arrêtez de foutre le merdier sur le forum ! (il me serait agréable que vous ussiez la politesse de ne point étaler des propos inutiles.) |
|  | | M@d_Doc Modérateur 'Programmation'

Age : 18 Inscrit le : 12 Fév 2005 Messages : 4055 Localisation : 47°44'8.04 : ────────── : Projet Actuel : trouver un contrat Avancement :
  (100/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Lun 17 Mar - 11:03 | |
| ah, l'asm... tant de souvenirs de crash et d'écrans bleus  _________________ Click for a free cookie |
|  | | [TheDarkTiger] Modérateur 'Programmation'

Age : 21 Inscrit le : 08 Juin 2005 Messages : 5459 Localisation : Essonne : ────────── : Avancement :
  (0/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Lun 17 Mar - 22:37 | |
| bha là, ça plante même pas, ça marche pas  _________________ Bonne chance pour vos projets actuels! Prêt à aider ceux qui en ont besoin ^^

Bienvenue au 1118eme utilisateur : Dada du 29 !
... par pitié, arrêtez de foutre le merdier sur le forum ! (il me serait agréable que vous ussiez la politesse de ne point étaler des propos inutiles.) |
|  | | M@d_Doc Modérateur 'Programmation'

Age : 18 Inscrit le : 12 Fév 2005 Messages : 4055 Localisation : 47°44'8.04 : ────────── : Projet Actuel : trouver un contrat Avancement :
  (100/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Jeu 20 Mar - 11:48 | |
| ca marche... tu veux dire que la compilation marche? l'execution? _________________ Click for a free cookie |
|  | | daminetreg - Administrateur -

Age : 18 Inscrit le : 11 Fév 2005 Messages : 16209 Localisation : Siege du CBNA! : ────────── : Projet Actuel : Game Maker Human Input Avancement :
   (60/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Jeu 20 Mar - 12:03 | |
| Heu TDT, pourquoi tu as mis une Class dans ton dll.h, elle me semble inutile.
Aussi choisi un type int pour tes fonctions, parce que ça servira à rien de faire des unsigned char, tu économises pas forcément de la mémoire, ça dépend des PC.
Tu as testé d'appeller ta dll depuis un autre programme en CPP? Aussi tu es sûr que tes fonctions asm fonctionnent ? Parce que l'asm des Intel Pentium c'est du x86, et même si ça y ressemble beaucoup peut être en est-ce un autre. _________________
 Mon CV
Tous Ensemble! Réalisons! I want (and I need) to show you my work, but the time is against me. |
|  | | M@d_Doc Modérateur 'Programmation'

Age : 18 Inscrit le : 12 Fév 2005 Messages : 4055 Localisation : 47°44'8.04 : ────────── : Projet Actuel : trouver un contrat Avancement :
  (100/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Jeu 20 Mar - 12:05 | |
| | Citation: | script utilisé :
| Spoiler: | | | pp_set_data(255); show_message("255");
pp_set_data(0); show_message("0"); |
|
c'est pas GLOBAL.pp_set_data(), tant qu'on y est lol ? J'ai rien dit... mal lu désolé _________________ Click for a free cookie |
|  | | [TheDarkTiger] Modérateur 'Programmation'

Age : 21 Inscrit le : 08 Juin 2005 Messages : 5459 Localisation : Essonne : ────────── : Avancement :
  (0/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Jeu 20 Mar - 23:46 | |
| @ Damintreg Heu TDT, pourquoi tu as mis une Class dans ton dll.h, elle me semble inutile. heu, bha j'ai laissé comme Dev CPP m'a fait, et j'ai rajouté l'export, je connais que le C pas le C++
Aussi choisi un type int pour tes fonctions, parce que ça servira à rien de faire des unsigned char, tu économises pas forcément de la mémoire, ça dépend des PC. ha ? bha moi je fesai ça parce que le port parallèle envoi un unsigned char ...
Tu as testé d'appeller ta dll depuis un autre programme en CPP? ha ... maintenant que tu le dit, j'ai déjà testé le code, mais pas avec ce compilateur ... (je développe sous CVI, puis j'exporte les DLL avec dev CPP) boulet de moi ... à tester .
Aussi tu es sûr que tes fonctions asm fonctionnent ? Parce que l'asm des Intel Pentium c'est du x86, et même si ça y ressemble beaucoup peut être en est-ce un autre. je suis sûr que dans la théorie, ça marche peut être . mais, sous CVI, ça marche
@ M@d_Doc : quand je dit que ça marche pas, c'est que le jeu sous GM plante, il 'frezze' pourtant, j'ai pas de boucle ni dans GM, ni dans la DLL...
Merci à tous les deux, je testerait tout ça dès que je peux, et je vous tien au courant  _________________ Bonne chance pour vos projets actuels! Prêt à aider ceux qui en ont besoin ^^

Bienvenue au 1118eme utilisateur : Dada du 29 !
... par pitié, arrêtez de foutre le merdier sur le forum ! (il me serait agréable que vous ussiez la politesse de ne point étaler des propos inutiles.) |
|  | | daminetreg - Administrateur -

Age : 18 Inscrit le : 11 Fév 2005 Messages : 16209 Localisation : Siege du CBNA! : ────────── : Projet Actuel : Game Maker Human Input Avancement :
   (60/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Dim 23 Mar - 17:41 | |
| | Citation: | Aussi choisi un type int pour tes fonctions, parce que ça servira à rien de faire des unsigned char, tu économises pas forcément de la mémoire, ça dépend des PC. ha ? bha moi je fesai ça parce que le port parallèle envoi un unsigned char ... |
Ok mais regarde, tu ne peux pas faire ça, parce qu'il faut donner comme type à ta fonction ce que la fonction retourne, or ta fonction retourne un int (return 1 renvoie un 1 int), donc il est probable que ton problème vienne de là.
De plus il n'est pas dit que GM sache lire les unsigned char. , le type ty_real de gm, ne sait peut être que lire sur le nombre d'octets d'un int et pas d'un unsigned char, mais là je ne suis plus dans le savoir sûr.  _________________
 Mon CV
Tous Ensemble! Réalisons! I want (and I need) to show you my work, but the time is against me. |
|  | | Gab666 Modérateur 'Zut' & 'Ablationer'

Age : 17 Inscrit le : 02 Aoû 2005 Messages : 5263 Localisation : **I move away from the mic to breathe in : ────────── : Avancement :
  (0/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Lun 24 Mar - 2:59 | |
| | daminetreg a écrit: | | Citation: | Aussi choisi un type int pour tes fonctions, parce que ça servira à rien de faire des unsigned char, tu économises pas forcément de la mémoire, ça dépend des PC. ha ? bha moi je fesai ça parce que le port parallèle envoi un unsigned char ... |
Ok mais regarde, tu ne peux pas faire ça, parce qu'il faut donner comme type à ta fonction ce que la fonction retourne, or ta fonction retourne un int (return 1 renvoie un 1 int), donc il est probable que ton problème vienne de là.
De plus il n'est pas dit que GM sache lire les unsigned char. , le type ty_real de gm, ne sait peut être que lire sur le nombre d'octets d'un int et pas d'un unsigned char, mais là je ne suis plus dans le savoir sûr.  |
Aussi loin que je me souvienne c'est plutot des double que GM attend. _________________ PIS MANIAC PREND DES BAINS ! |
|  | | daminetreg - Administrateur -

Age : 18 Inscrit le : 11 Fév 2005 Messages : 16209 Localisation : Siege du CBNA! : ────────── : Projet Actuel : Game Maker Human Input Avancement :
   (60/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Lun 24 Mar - 11:59 | |
| Oui pardon ty_real ya real dedans lol.  _________________
 Mon CV
Tous Ensemble! Réalisons! I want (and I need) to show you my work, but the time is against me. |
|  | | [TheDarkTiger] Modérateur 'Programmation'

Age : 21 Inscrit le : 08 Juin 2005 Messages : 5459 Localisation : Essonne : ────────── : Avancement :
  (0/100)
| Sujet: Re: bogue dans la lecture asm du port parallele Lun 24 Mar - 14:57 | |
| oui, j'avais pas pensé à ça, je vais recompiler et voir ce que ça donne ... _________________ Bonne chance pour vos projets actuels! Prêt à aider ceux qui en ont besoin ^^

Bienvenue au 1118eme utilisateur : Dada du 29 !
... par pitié, arrêtez de foutre le merdier sur le forum ! (il me serait agréable que vous ussiez la politesse de ne point étaler des propos inutiles.) |
|  | | | bogue dans la lecture asm du port parallele | |
|
| Page 1 sur 1 |
| | Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| | |
| |
|