mais il doit bien y avoir une autre manière que celles que tu as indiqué quand meme ?
Il y en a une, mais ce n'est pas riant : écrire un module du noyau.
Note que le problème resterait exactement le même sous Windows ou sous tout autre OS multitâche. Le bon coté, c'est que le boulot à faire est relativement simple (pas comme si on faisait un pilote de disque ou vidéo). Le mauvais, c'est que si ton programme plante, c'est pas une segfault que va affronter, mais un plantage général du système.
La vraie difficulté, à mon avis, viendra du fait qu'il faudra probablement repasser en mode réel pour appeler la fonction du BIOS, puis revenir en mode protégé et restaurer tout l'état du système.
Le plus triste, c'est que cette interruption doit probablement se contenter de faire un out bien placé vers un port d'entrée/sortie et que pour faire la même chose sous Linux, un bête ioperm suffit à un processus utilisateur ordinaire (root) pour faire le boulot ! :-)
[^] # Re: L'asm, le DOS, les démos, le mode X, love them !
Posté par Obsidian . En réponse au message Assembleur inline dans gcc. Évalué à 2.
Ça plantera, crois-moi sur parole ! :-)
http://charles.moostik.net/pmode/index.php3?page=Introductio(...)
Il y en a une, mais ce n'est pas riant : écrire un module du noyau.
Note que le problème resterait exactement le même sous Windows ou sous tout autre OS multitâche. Le bon coté, c'est que le boulot à faire est relativement simple (pas comme si on faisait un pilote de disque ou vidéo). Le mauvais, c'est que si ton programme plante, c'est pas une segfault que va affronter, mais un plantage général du système.
La vraie difficulté, à mon avis, viendra du fait qu'il faudra probablement repasser en mode réel pour appeler la fonction du BIOS, puis revenir en mode protégé et restaurer tout l'état du système.
Le plus triste, c'est que cette interruption doit probablement se contenter de faire un out bien placé vers un port d'entrée/sortie et que pour faire la même chose sous Linux, un bête ioperm suffit à un processus utilisateur ordinaire (root) pour faire le boulot ! :-)