English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Toutes les catégories

Comment puis-je utiliser les interruptions de MS DOS, avec des programmes crée en C ?
Attention ici je me fou de windows !

2006-10-08 00:25:53 · 3 réponses · demandé par alexandre f 2 dans Informatique et internet Informatique - Divers

3 réponses

pour détourner un vecteur d'interruption,

on utilise GetVect et SetVect. (voir l'aide)

voici un résident qui redirige les implessions sur lpt2

#include "dos.h"

extern unsigned _heaplen = 1024;
extern unsigned _stklen = 512;

void interrupt (*old17)(void);

void interrupt new17(bp,di,si,ds,es,dx,cx,bx,ax,cs,ip,flags)
unsigned short bp,di,si,ds,es,dx,cx,bx,ax,cs,ip,flags;
{
_DX=1;
old17();
ax=_AX;
}

void main()
{
old17=getvect(0x17);
setvect(0x17,new17);
keep(0, (_SS + (_SP/16) - _psp));
}

on peut aussi appeler une interruption avec l'assembleur inline, exemple :

asm {
mov ah,9;
int 13;
}

autre exemple :

union REGS inregs,outregs;

inregs.x.ax=0x4408;
inregs.h.bl=drive+1;
intdos(&inregs,&outregs); /* Teste si unit‚ fixe */
if(outregs.x.ax==1)
{
fprintf(stderr,"Une unit‚ non amovible a ‚t‚ sp‚cifi‚e\n");
}
else if(outregs.x.ax==0xf)
{
fprintf(stderr,"Une unit‚ non valable a ‚t‚ sp‚cifi‚e\n");
}

2006-10-08 11:49:41 · answer #1 · answered by Ramis V 7 · 1 0

ms dos, c etait il y a trop longtemps, (1989 a 1995 ) je me souvient plus

2006-10-08 12:22:18 · answer #2 · answered by Anonymous · 0 0

Ah le bon vieux DOS !

utilise la fonction "Intr" ou "int" je me souviens pas bien !

pour les fonction DOS utilise la fonction 21 !

exp: intr( 21 );

puis tout dépend du service que tu demande généralement le numéro du service demandé est chargé dans AH !

cool !

2006-10-08 09:24:04 · answer #3 · answered by Q/R killer 3 · 0 0

fedest.com, questions and answers