Interruptions

Signaler
Messages postés
5
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
9 juillet 2003
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
J'utilise builder sous windows 98 et je cherche à récupérer des interruptions harware faites sur le bus ISA (les bonnes vieilles interruption DOS).
Je n'arrive pas à faire de handler d'interruption!

Dans l'aide de borland, il y a un exemple sur setvect() et getvect() mais j'ai une erreur de compilation sur la ligne
void interrupt handler(__CPPARGS)

7 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Sur Windows, tu ne pourras recuperer les interruptions qu'en ecrivant un driver.
BruNews, ciao...
Messages postés
42
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
16 mai 2003

>>Sur Windows, tu ne pourras recuperer les interruptions qu'en
>>ecrivant un driver.
>>BruNews, ciao...

Faux. Tt code 16-bits a le droit d'appeler une interruption. Windows ne change en aucun facon ce regle.

>>je cherche à récupérer des interruptions harware faites sur le
>>bus ISA

Pas tres evident ce que tu veux faire. Tu as tjs acces aux interruptions DOS, BIOS, et la plupart des celles correspondant au hardware installer(ceci inclus le bus ISA).
Quand meme si tu chrch a *ajouter* une interruption ceci est faisable uniquement avec un driver, mais c bien le cas de MS-DOS aussi.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Fais voir sur XP, je testerai et je croirai ensuite.
J'avais fait dans le temps du mixte 16 et 32 bits a propos pour acces direct au disque dur, maintenant mon XP stoppe le prog avec un joli message:
"Tentative d'acces direct au disque dur bloquee....".
BruNews, ciao...
Messages postés
42
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
16 mai 2003

> Fais voir sur XP, je testerai et je croirai ensuite.

org 100h
mov dx,hello
mov ah,9
int 21h
mov ah,4Ch
int 21h
hello db 'Hello, World!',0Dh,0Ah,'$'

fasm file.asm file.com

Un jolie executable de 27 octets. Fonctionne a merveille;o)
Il n'y a aucun raison pour que du code C 16-bits ne fonctionne meme mieux.

>>J'avais fait dans le temps du mixte 16 et 32 bits a propos pour
>>acces direct au disque dur, maintenant mon XP stoppe le prog
>>avec un joli message:

C difficile de faire des mix du code en differents modes d'executions de cpu. Voir, je serais surpris si ca avait marche.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Je ne vois pas d'acces disque dur ici.
Le mix 16-32, j'entendais ecrire code module externe en 16 qui est lance par un 32 bits. C'etait ce qui etait preconise par MS fut un temps.
BruNews, ciao...
Messages postés
42
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
16 mai 2003

>>Je ne vois pas d'acces disque dur ici.
Et alors??? Une fois qu'on a access au vecteur des interruptions c bon. J'ai donne un example avec "int".... Je vais pas chrch les interruptions pour le disque dur, les tester etc....
Ct juste pour montrer qu'en 16-bit "int" est une instrution valide.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
int reste une instruction valide, certe elle ne provoque pas d'exception logicielle mais sur XP si tente un acces direct perif elle sera interceptee et stoppee.
BruNews, ciao...