Bios.h

cs_mogolo Messages postés 1 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 9 juillet 2003 - 9 juil. 2003 à 17:59
zoran_8000 Messages postés 9 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 15 août 2007 - 4 mars 2005 à 16:32
Salut!! Je cherche désespèrément l'entête bios.h. J'en ai besoin pour lire sur le port série en C!!
Merci de me l'envoyer à cette adresse ou de m'indiquer un lien où je pourrais la trouver!!

magali_raynaud@hotmail.com

2 réponses

cmoilastar Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 24 mars 2005
20 avril 2004 à 11:28
Ce serait pas plutot l'entete dos.h que tu recherce? parce que moi, je communique avec mon port série par l'intermédiaire de cette entete et ca marche tres bien en plus, elle est integrée dans Borland 5 donc, ya pa de prob !!!!
0
zoran_8000 Messages postés 9 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 15 août 2007
4 mars 2005 à 16:32
D'ailleurs !



Est-ce que vous savez si ces fonctions contenues dans dos.h existe sous
Unix/Linux. En fait je cherche à exporter un programme assez simple de
Windows à Linux, mais qui utilise l'entete dos.h :



#include <dos.h>



// Source pour activer la 1ère partition du premier disque

// et desactiver les autres partitions du même disque

// ( IDE0 maître )



struct Partition

{

unsigned char flag;

char description[15];

};



struct Mbr

{

char bootCode[0x1BE];

struct Partition table[4];

char signature[2];

};



int main()

{

struct Mbr mbr;

union REGS r, rout;

struct SREGS sr;



sr.es=FP_SEG(&mbr);

r.x.bx=FP_OFF(&mbr);

r.x.ax=
0x201;
// lecture d'un secteur

r.h.dl=
0x80;
// 1er disque

r.x.cx=
1;
// 1er sercteur

r.h.dh=
0;
// piste 0 et tête 0



int86x(0x13,
&r, &rout, &sr); // 1ère lecture factice au cas
où le lecteur serait arrêté

int86x(0x13, &r, &r, &sr);



if( r.x.cflag )


return 1;


// erreur de
lecteur

else

{

mbr.table[0].flag= 0x80; // 1ère partition

mbr.table[1].flag= 0x80; // 2ème partition

mbr.table[2].flag= 0x80; // 3ème partition

mbr.table[3].flag= 0x80; // 4ème partition



sr.es=FP_SEG(&mbr);

r.x.bx=FP_OFF(&mbr);


r.x.ax=
0x301;
// écriture d'un secteur


r.h.dl=
0x80;
// 1er disque


r.x.cx=
1;
// 1er sercteur


r.h.dh=
0;
// piste 0 et tête 0



int86x(0x13, &r, &r, &sr);



if( r.x.cflag )

return 2;

else

return 0;

}

}


<--- Zoran_8000 --->
0
Rejoignez-nous