Interruptions

cs_ThomasC Messages postés 5 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 9 juillet 2003 - 26 mars 2003 à 12:09
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 27 mars 2003 à 09:13
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 mars 2003 à 12:18
Sur Windows, tu ne pourras recuperer les interruptions qu'en ecrivant un driver.
BruNews, ciao...
filter Messages postés 42 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 16 mai 2003
26 mars 2003 à 17:59
>>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.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 mars 2003 à 18:14
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...
filter Messages postés 42 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 16 mai 2003
26 mars 2003 à 18:50
> 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.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 mars 2003 à 19:07
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...
filter Messages postés 42 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 16 mai 2003
26 mars 2003 à 21:12
>>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.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 mars 2003 à 09:13
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...
Rejoignez-nous