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

Windows Discussion :

Bug dans un programme sous 13H


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 42
    Points
    42
    Par défaut Bug dans un programme sous 13H
    salut

    voila mon code (mon premier vrais programme graphique depuis que j'ai découvert TurboC ilya quelques jours), c'ets un effet plasma sous VGA, comme en qbasic

    Code : C
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    #include <stdlib.h>
    #include <stdio.h>
    #include <dos.h>
    #include <io.h>
    
    static char Palette[4*3] = {0,0,0,0,0,63,0,63,0,63,0,0};
    union REGS regset;
    struct SREGS sregs;
    
    void load13h()
    {
    	regset.x.ax = 0x0013;
    	int86(0x10, &regset, &regset);
    }
    void exit13h()
    {
    	getch();
    	regset.x.ax = 0x0003;
    	int86(0x10, &regset, &regset);
    }
    void drawpx(int x, int y, int coul)
    {
    	int ptr = (320*y+x);
    	poke(0xA000,ptr,coul);
    }
    int getpx(int x, int y)
    {
    	int ptr = (320*y+x);
    	return peek(0xA000,ptr);
    }
    void pal( unsigned char i, unsigned char r, unsigned char v, unsigned char b)
    {
    
    	outp(0x3c8, i);
    	outp(0x3c9, r);
    	outp(0x3c9, v);
    	outp(0x3c9, b);
    }
    
    int main()
    {
    
    int color;
    int CA,CB,CC,CD,CE,CF,CG,CH,CI;
    long ptr;
    load13h();
    	for(ptr=0; ptr<=64000;ptr++)
    	{
    		color=rand()%255;
    		poke(0xA000,ptr,color);
    	}
    	for(ptr=321; ptr<=63677;ptr++)
    	{
    		CA=peek(0xA000,ptr+321);
    		CB=peek(0xA000,ptr+320);
    		CC=peek(0xA000,ptr-321);
    		CD=peek(0xA000,ptr-320);
    		CE=peek(0xA000,ptr+319);
    		CF=peek(0xA000,ptr-319);
    		CG=peek(0xA000,ptr+1);
    		CH=peek(0xA000,ptr-1);
    		CI=peek(0xA000,ptr);
    		color = (CA+CB+CC+CD+CE+CF+CG+CH+CI)/10;
    		poke(0xA000,ptr,color);
    	}
    exit13h();
    
    }
    mais voila, il me plante windows avec une opération non conforme.

    voyez vous une erreur ?

    merci, ++ Tix.

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par tixweb
    point de réponse objective ?
    TurboC, les interruptions par l'utilisateur et le mode VGA, cela date un peu maintenant. Les systemes d'exploitation actuels utilisent une couche d'abstraction materielle qui interdit ce genre de manipulations. Tu trouveras peut-etre une reponse a ta question dans le forum Developpement Windows.

  3. #3
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 42
    Points
    42
    Par défaut
    bha écoutez, je comprend pas trop pourquoi mon message a été déplacé étant donné que je compte bosser sous dos, ce programme est destiné a un 386 O_o (pas de windows9x< ....)

    enfin, j'imagien que vous ete plus habitué que moi

    merci, ++ Tix.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 667
    Points
    10 667
    Billets dans le blog
    3
    Par défaut
    C'est bien un programme DOS 16 bits que tu as compilé ?

  5. #5
    Membre du Club
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 42
    Points
    42
    Par défaut
    oui, s'en est un, il est destiné a tourner sans windows ...

    il fonctionne désormais, il suffisdait de remplacer peek et poke par peekb et pokeb je n'ai toujours pas compris la différence...

    allé merci, ++ Tix.

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/03/2012, 10h32
  2. Un Bug dans mon programme
    Par Mr Ilias dans le forum C
    Réponses: 2
    Dernier message: 17/01/2012, 23h19
  3. bug dans le colorpicker sous IE
    Par devmassi dans le forum Ruby
    Réponses: 0
    Dernier message: 16/10/2008, 09h44
  4. bug dans mon programme (message d'erreur)
    Par maxmarie dans le forum Windows Mobile
    Réponses: 10
    Dernier message: 13/09/2007, 10h34
  5. Réponses: 13
    Dernier message: 10/07/2006, 16h47

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