Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 28 Jan 2003 13:19:05

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Prog Résident et Remplacement d'int.

Voila alors je voudrai savoir comment faire un prog résident, par exemple ke je puisse faire kelkechose n'importe ou à l'aide d'une touche...
De plus je c ke l'on peut désactiver une interruption en la faisant pointer sur une vide mais je voudrai savoir si on peut la remplacer par une fonction personnel (ex: a chak rafraichissement de l'écran ba on rafraichi l'écran et en plus on fait autre chose...)

Merci !


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#2 02 Feb 2003 06:38:55

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Prog Résident et Remplacement d'int.

ben pr les interrpuptions rien de plus simple:

exemple avec l'int du clavier: int 0x9

Code:

void interrupt (*int9)(void);
void interrupt vide(void);

void disable9(void)
{
int9=_dos_getvect(0x9);
_dos_setvect(0x9,vide);
}

et pr la réarmer:

Code:

void enable9(void)
{
_dos_setvect(0x9,int9);
}

pour le rafraichissement c l'int 53:

Code:

void interrupt (*int53)(void);
void interrupt new53(void)
   {
//     fais ce ke tu veux ici
   }

void disable53(void)
{
int53=_dos_getvect(0x9);
_dos_setvect(0x9,new53);
}

même technique pr la réarmer!


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#3 02 Feb 2003 16:47:37

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Prog Résident et Remplacement d'int.

Merci si ca marche je v bien m'éclater...


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#4 02 Feb 2003 17:00:40

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Prog Résident et Remplacement d'int.


pour le rafraichissement c l'int 53:

Code:

void interrupt (*int53)(void);
void interrupt new53(void)
   {
//     fais ce ke tu veux ici
   }

void disable53(void)
{
int53=_dos_getvect(0x9);
_dos_setvect(0x9,new53);
}

même technique pr la réarmer!

oui mais la ca va plu rafraichir si j'enleve l'interup? moi je ve ke ca fasse un truc et ke ca rafraichisse (ajouter un bou de code koi !)


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#5 03 Feb 2003 07:24:04

Swifter
Programmeur Graph100
Lieu: Niort (79)
Date d'inscription: 06 Aug 2002
Messages: 980
Site web

Re: Prog Résident et Remplacement d'int.

Et ca donne quoi en traduction assembleur?


Swifter, avec un T, n'attrapes pas la poussière mais toutes les remarques débiles :mrgreen:
              ** Swifter68@hotmail.com **

Hors ligne

 

#6 03 Feb 2003 11:40:21

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Prog Résident et Remplacement d'int.

eh ben tu fais ça à la technique de whyp (et de tonton1664), c'est à dire que tu rediriges l'int53 vers une int vide et que tu mets tes fonx. Regarde ça:

(c du tuto de whyp modifié)

Code:

void interrupt int53Maison(void);    // prototype d'interruption
void interrupt (*int53Reelle)(void); // pointeur vers interruption

void Modif(void)
{
int53Relle = _dos_getvect(0x53);
setvect(5,int53Reelle);
_dos_setvect(0x53,int53Maison);
}

void interrupt int53Maison(void) //La nouvelle interruption
{
/*LA TU METS CE QUE TU VEUX*/        
asm int 5; //On appelle le rafraichissement de l'ecran.
}

void UnModif(void)
{
setvect(0x53,int53Reelle); //l'int 53h reprend son adresse de depart
}

et en asm ben je sais pas si je suis autorisé par tonton1664 à montrer son code!


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#7 03 Feb 2003 12:54:54

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Prog Résident et Remplacement d'int.

OK merci je v tester ca !


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#8 03 Feb 2003 13:51:51

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Prog Résident et Remplacement d'int.

ouais g relu ce que g écrit, c'est bon y'a pas de pbs apparents!


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#9 07 Feb 2003 05:04:53

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Prog Résident et Remplacement d'int.

alors, ça marche?


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#10 07 Feb 2003 16:08:01

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Prog Résident et Remplacement d'int.

Dsl g pa encore trouvé le temps de test en + ce we je sui pa la mé dé ke je test je te di !!


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#11 09 Feb 2003 15:41:01

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Prog Résident et Remplacement d'int.

Marche pa (tré inatendu !) Je te mp la source méga recherchée !!


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#12 12 Feb 2003 14:47:31

Whyp
Programmeur Graph100
Date d'inscription: 05 Feb 2002
Messages: 319
Site web

Re: Prog Résident et Remplacement d'int.

Le principe est simple. Au debut de la ram, adresse 0h:0h, ya la zone des vecteurs d'interruptions. Ces vecteurs sont stock" sur 4 octets, et yen a FFh. Le premier packet de 4 octets, c'est l'adresse de l'int 0h, le second (a l'adresse 0h:0004h) c'est l'int 1h etc...
Ces 4 octets sont un couple segment - offset chacun sur 2 octets. A chaque fois que tu appel une int, le proc charge son adresse qu'il trouve dans la table des vecteurs d'interruptions, et il saute directement a cette adresse. La il y execute le code.
Donc si tu veut faire pointer ton programme vers une fonction vide, tu ecrit la mnemonique IRET qq part en memoire, et tu ecrit son adresse dans la table de vecteurs. Pour faire executer une fonction perso, pareil, tu fait pointer la bonne int vers ta fonction, qui se termine par un iret, sinon le processeur revient pas au programme principal.
En asm, c tout con.
Après en C, tu peut le faire avec les fonction que t'as donné C@siomax, mais manitenant tu sais ce qu'il faut faire au niveau systeme.
@+


http://shine.sourceforge.net tout programmer votre graph100 smile

Hors ligne

 

#13 13 Feb 2003 16:44:31

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Prog Résident et Remplacement d'int.

OK merci bcp !! Ca fai tro plaisir de te revoir par la je testerai ca a mes heures (é)perdues ....


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#14 17 Feb 2003 16:22:52

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Prog Résident et Remplacement d'int.

bon ben marche tjrs pa mm avec le coup de l'"asm iret" : chge rien tan pi...


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#15 22 Feb 2003 08:27:59

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Prog Résident et Remplacement d'int.

beh garde le code que je t'ai dit
simplement, mets tout en inline!
forcément, lorske tu kittes ton prog il est cleared de la ram donc ton proto de la fonx invscreen n'est plus existant, donc t'appelles un truc inexistant! :arrow: plantage

donc mets tout en inline sans d'autres fonx et avec toutes les vars déclarées dans l'int, sinon ...


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#16 05 Mar 2003 14:51:48

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Prog Résident et Remplacement d'int.

au fait, pr le remplacement du rafraichissement, c pas la peine d' appeller l' ancienne fonction ( asm int 5wink ca marche sans !


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#17 05 Mar 2003 15:55:34

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Prog Résident et Remplacement d'int.

ok je v test....
sinon vs avé rep ka la moitié de mon topic :
komment kon fai les prg résident en C/++ ?????


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#18 05 Mar 2003 16:08:27

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Prog Résident et Remplacement d'int.

Ca il fo se documenter sur le net, ou bien demander a ceux qui en ont déjà fait, comme roeoender !


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#19 05 Mar 2003 17:04:32

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Prog Résident et Remplacement d'int.

je pense ki fo faire de l'asm...


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#20 08 Mar 2003 02:53:33

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Prog Résident et Remplacement d'int.

heu int 5 x-th t vrément sûr ? car normalement elle est vide! ou bien c'est toi qui n'a pas replacé l'int à sa place !!  8O


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#21 08 Mar 2003 03:15:03

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Prog Résident et Remplacement d'int.

Non !
regarde ton propre code :

void interrupt int53Maison(void);    // prototype d'interruption
void interrupt (*int53Reelle)(void); // pointeur vers interruption
void Modif(void)
{
int53Relle = _dos_getvect(0x53);
setvect(5,int53Reelle);
_dos_setvect(0x53,int53Maison);
}
void interrupt int53Maison(void) //La nouvelle interruption
{
/*LA TU METS CE QUE TU VEUX*/       
asm int 5; //On appelle le rafraichissement de l'ecran. PAS OBLIGATOIRE CA
// MARCHE SANS !!!
}
void UnModif(void)
{
setvect(0x53,int53Reelle); //l'int 53h reprend son adresse de depart
}

Tu voie? c ce que je fait !
au fait, ya t' il une interruption qui est appelé plus rapidement que celle ci?


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#22 10 Mar 2003 14:26:30

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Prog Résident et Remplacement d'int.

ça y est KTr j'ai trouvé comment résoudre ton pb!!

utilise "keep" et "_dos_keep" wink
regarde l'aide dans TC y'a un bon exemple!!


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#23 10 Mar 2003 15:36:46

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Prog Résident et Remplacement d'int.

ok jirai voir apres mon oral de fr !!


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#24 11 Mar 2003 10:01:39

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Prog Résident et Remplacement d'int.

mon moral de fer ARFFFF

au fait personne n' a trouvé une int qui est appellé plus rapidement que celle ci?


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr