IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dev-C++ Discussion :

Dev C++ et mode VGA (13h)


Sujet :

Dev-C++

  1. #1
    Membre �prouv�
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2002
    Messages : 89
    Par d�faut [R�solu]Dev C++ et mode VGA (13h)
    Bonjour,
    je suis en train de r�aliser un petit jeu que j'aimerais developper sous DevC++ (marre de TurboC). Or dos.h n'existe pas pour DevC++ donc pas de fonction int86, intdos... pour activer le mode 13h et les unions representant le registre ne sont pas definies. On m'a dis qu'il fallait alors l'activer en assembleur et que DevC++ ne supportait que l'assembleur AT&T. Ne connaissant pas du tout quelqu'un pourrait me donner le morceau de code dont j'ai besoin ou la syntaxte de l'assembleur?
    Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2002
    Messages
    255
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Aveyron (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Urbaniste

    Informations forums :
    Inscription : Mars 2002
    Messages : 255
    Par d�faut
    Utilise les librairies DirectX ou SDL plut�t que le bon vieux MS-Dos !
    (Dev-C++ tourne sous Windows, g�n�re des programmes 32 bits en mode console ... pas des programmes DOS 16 bits)

    @+ Haypo

  3. #3
    Membre �prouv�
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2002
    Messages : 89
    Par d�faut Impossible
    Merci mais si ca tenait qu'a moi je le ferais avec allegro. Seulement c'est dans le cadre d'un pojet de mon ecole ou je n'ai le droit d'utiliser aucune biblioth�que externe...Donc pas trop le choix...

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    235
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 235

  5. #5
    Membre �prouv�
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2002
    Messages : 89
    Par d�faut Merci cmarsc
    Apparemment on aurait le droit d'utiliser graph.h (winbgim.h sous dev-c++) donc c'est ce que je vais faire. J'ai quand m�me r�ussi � trouv� la r�ponse � la question de d�part, je la met au cas o�.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    // Mode vga (13h)
     
    void modeVGA()
     {
      asm("mov $0x13,%al\n
           mov $0x00,%ah\n
           int $0x10");
     }
     
    // Mode texte, retour à la normale
     
    void modeTXT()
     {
      asm("mov $0x03,%al\n
           mov $0x00,%ah\n
           int $0x10");
     }
    Voil� donc le code pour activer/desactiver le mode 13h sous Dev-C++.

  6. #6
    Membre averti
    Inscrit en
    D�cembre 2005
    Messages
    40
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2005
    Messages : 40
    Par d�faut
    En se qui me conserne il se passe un truc bisard sous visual c++ lorsque je veux passer en mode VGA.

    Voisi mon code:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void main()
    {
          // activation du made VGA
          asm
          {
                 MOV AX, 0x13
                 INT 0x10
          }
     
     
          return;
    }

    Il me le compile corectement mais l'executable me produit une ereur fatal .

    Est ce par le fait que visual c++ est un compilateur win32.

    Comment faire en sorte ce code fonction sous visual c++

    Merci pour votre aide et dsl pour mon intrusion ou je profite impeux de la situation.
    Bay

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 4
    Par d�faut
    je d�couvre l'asm mais en essayant avec �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    void modeVGA()
     {
      asm("mov $0x13,%al\n
           mov $0x00,%ah\n
           int $0x10");
     }
    c'est donc :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void main()
    {
          // activation du made VGA
          asm
          {
                 MOV AL, 0x13
                 MOV AH, 0x00
                 INT 0x10
          }
    serrait plus logique (en terme de traduction asm at&t vers asm "x86")

    return;
    }
    d�ailleurs je suis �tonn� que int soit pris en compte par devcpp, j�essaie �a tout de suite !

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 4
    Par d�faut
    int est en effet pris en compte et ne g�n�re pas d'erreurs

    pas de soucis sauf si l'appli crash �videmment

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 4
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <cstdlib>
    #include <iostream>
     
    using namespace std;
     
    int main(int argc, char *argv[])
    {
       asm("mov $0x13,%al\n ");
       asm("mov $0x00,%ah\n");
       asm(" int $0x10");
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    �a compile mais �a crash, sujet � approfondir (faut dire que sous xp c'est pas super)

  10. #10
    Membre chevronn� Avatar de dapounet
    Profil pro
    �tudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Par d�faut
    Salut,

    Je suis surpris, ton code fonctionne vraiment avec Dev-C++ ?

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 4
    Par d�faut
    oui cela est surprenant parce que c'est seulement une partie d'un code mais meme si il compile a mon avis sans les includes et tout ca derriere , ca plante ; mais il le compile bien.pour faire quelque chose d'exploitable, il faut voir le vrais code source ou ca a �t� pris

  12. #12
    Membre chevronn� Avatar de dapounet
    Profil pro
    �tudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Par d�faut
    Dev-C++ cr�e des ex�cutables "normaux" (32 bits), et de nos jours les OS ne laissent plus acc�der directement au BIOS ou � la carte graphique (et niveau performance �a n'a aucun int�r�t).
    Si tu utilises un compilateur 16 bits comme DJGPP ou Open Watcom Windows fera tourner tes ex�cutables dans une machine virtuelle qui simule une partie de l'environnement 16 bits, et apparemment les acc�s aux registres VGA et tout �a sont accept�s dans ce mode-l�.
    Pour la syntaxe �trange avec les $ et les % c'est celle qui est utilis�e par Gas, l'assembleur que GCC utilise pour compiler. Il n'y a plus besoin de s'emb�ter avec �a, il supporte aussi la syntaxe Intel :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    asm
    (
       ".intel_syntax noprefix \n\t"
       "# commentaire \n\t"
       "/* autre commentaire */ \n\t"
       ".att_syntax prefix \n\t"
    );

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. graphique mode vga
    Par snakemetalgear dans le forum C
    R�ponses: 3
    Dernier message: 04/04/2007, 09h27
  2. [Dev-Cpp] Diff�rence mode Win32 Console / GUI
    Par Copros dans le forum Dev-C++
    R�ponses: 1
    Dernier message: 08/06/2006, 21h45
  3. [DEBUG.EXE] pour un mode graphique (13h)
    Par powerpsy dans le forum Assembleur
    R�ponses: 9
    Dernier message: 19/04/2006, 15h42
  4. mode VGA en visual c++
    Par sieuzac dans le forum MFC
    R�ponses: 2
    Dernier message: 26/01/2006, 02h56
  5. [TP]mode vga
    Par mikoeur dans le forum Turbo Pascal
    R�ponses: 3
    Dernier message: 05/07/2002, 23h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo