IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

[MBR] Lister les lecteurs connectés


Sujet :

Assembleur

  1. #1
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut [MBR] Lister les lecteurs connectés
    Allu.

    Je suis toujours en train de coder mon MBR et je cherche un moyen de lister les lecteurs connectés et reconnus par le BIOS.
    J'ai testé plusieurs interruptions (ou plutôt plusieurs fonctions de l'int 13h), mais les résultats me parraissent toujours bizarres.
    Donc ma question est : comment avoir la liste des lecteurs connectés ?

    Merci d'avance.
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut Re: [MBR] Lister les lecteurs connectés
    Bonjour !
    Citation Envoyé par Celelibi
    mais les résultats me parraissent toujours bizarres
    As-tu un exemple de résultat bizarre ?

    Sinon, la fonction 08h positionne le flag carry à 1 si le lecteur dont on détermine le format n'existe pas.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    Oui j'ai testé cette fonction là, et elle me donne des résultats bizzars.
    Avec Qemu elle me rapporte que les lecteurs 0, et 1 existent, mais pas 0x80 ou 0x81 alors que le lecteur cd est émulé.
    Quand je rajoue l'émulation d'un lecteur HD, là le lecteur 0x80 existe (mais toujours pas de 0x81).

    Jusque là c'est à peu près normal, mais quand je test sur ma machine à tester, là il me dis que TOUS les lecteurs existent, c'est à dire de 0x0 à 0xff.


    Voici le code principal (syntaxe nasm) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    start:
    	mov dl, 0
    	.test
    	push dx		; on sauvgarde dx qui sera écrasé par l'int
    	mov ax, 0x0800
    	int 0x13
    	pop dx
    	jb .no		; saut si le lecteur n'existe pas
    		mov ax, dx
    		call affreg	; si le lecteur existe on affiche son numéro
    		mov si, crlf
    		call afficher	; on affiche un retour à la ligne
    	.no
    	inc dl
    	cmp dl, 0xff	; le lecteur 0xff ne sera pas testé, mais c'est pas grave
    	jnz .test
     
    jmp $		; boucle infini pour arrêter l'exécution
    Petite explication : affreg affiche le contenu de ax en hexadécimal, afficher affiche le contenu pointé par ds:si jusqu'à rencontrer un octet null.
    Et puis crlf je vous laisse deviner.

    Je ne pense pas avoir fait d'erreur dans mon code, mais on sais jamais.

    [edit]La fonction 15h me donne un résultat plus cohérent, mais ne détecte pas non plus les lecteurs cd (que ce soit avec qemu ou sur la machine).
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 96
    Points : 116
    Points
    116
    Par défaut
    jb .no ; saut si le lecteur n'existe pas
    Pourquoi jb ? et pas jc ?

    --> Si ta fonction détecte le hd de ton pc, tu devrais vérifier si tu peux lire dessus... Si tu ne peux pas, ca expliquerait pourquoi tu ne pouvais pas accèder au hd sous nux...
    Si tu ne peux pas accèder au hd, et que ton hd marche et est bien raccordé, alors, n'essaye pas d'accèder au lecteur cd, car le problème viendra du pc en lui même
    Responsable du projet SKAN (OS à but didactique)
    Contactez moi pour toutes questions ou remarques sur le projet.

  5. #5
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    J'ai trouvé une petite distrib qui tien sur une disquette (et qui est plus récent que floppix).
    Apparament le lecteur HD marche bien, il doit seulement avoir quelques Mo de secteurs corrompus qui l'empêchent de booter.

    Ceci dit je suis étonné que cette petite distrib puisse lire sur le HD car aucune fonction de l'int 13h que j'ai testé n'a pu détecter sa présence.
    Quand je vais voir dans la config du bios, il y a bien un lecteur HD, mais il fait 0Mo. :s

    Avec tomsrtbt je peux certe lire le HD, mais pas le CD.
    Est-ce-que ça veut dire que le lecteur cd est mort ?
    Le lecteur en lui même à l'air de fonctionner, il éjecte, il ferme le tiroire lors du boot si celui-ci était ouvert. Mais pas moyen de lire quoi que ce soit.


    Pour jb ou jc, je savais pas que ça existait jc
    C'est quoi la différence entre les deux ?
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 96
    Points : 116
    Points
    116
    Par défaut
    jb: jump if bellow, saute si inferieur
    jc: jump if carry, saute si carry
    Pour plus de détails, ---> doc intel, comme d'hab

    Tu as essayé de mettre ton lecteur cd sur un autre pc pour savoir s'il marchait toujours ?

    Essaye ta distrib avec un nouveau noyau, peut etre qu'ils n'ont pas inclu le support cdrom (j'en doute mais bon)
    Responsable du projet SKAN (OS à but didactique)
    Contactez moi pour toutes questions ou remarques sur le projet.

  7. #7
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    J'avais trouvé (je sais plus où) que jb jumpait si cf était positionné, et apparament c'est le cas.
    Mais il est vrai que jc semble plus pertinent (mais donne le même résultat).

    Pour ce qui est de tester le lecteur cd sur une autre machine, j'ai un peu la flème d'aller démonter cette vieille bête. Donc je crois que je vais abandonner ce projet.
    Même un grub sur une disquette n'arrive pas à booter le cd.
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

Discussions similaires

  1. [D6] Lister les lecteurs d'une machine
    Par Lucien dans le forum Delphi
    Réponses: 3
    Dernier message: 19/09/2006, 15h49
  2. Réponses: 10
    Dernier message: 18/07/2006, 21h20
  3. Comment lister les lecteur réseaux
    Par koolway dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 27/03/2006, 12h13
  4. [Tomcat] Lister les utilisateurs connectés
    Par will_mad dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 08/07/2005, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo