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

x86 16-bits Assembleur Discussion :

Interruption pour obtenir la marque / modèle du PC


Sujet :

x86 16-bits Assembleur

  1. #1
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut Interruption pour obtenir la marque / modèle du PC
    Bonjour

    Je souhaiterais savoir quelle interruption et quels registres (et valeurs) utiliser pour obtenir le modèle du PC ? (si possible, une chaîne de caractères).

    Merci.
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  2. #2
    Invité
    Invité(e)
    Par défaut ....
    Si tu veut utiliser les interruptions, faudra mangé de l'assembleur 16 bit, et non pas ton "langage" scripté.

    Cadeau:

    http://www.gladir.com/LEXIQUE/INTR/int11.htm : informations de configuration de l'ordinateur, cette interruption n'est valide qu'en 16 bit

    Et tu n'auras jamais de chaine de caractère en retour d'un appel à une interruption, pour la bonne raison que ça bouffe trop d'octets, donc il n'y auras qu'une mise à 0 ou à 1, du n ème bit du registre modifiée.
    Après je sais pas par quoi tu entend "modèle", CPU, BIOS, carte réseau, ect ?

    Pour le CPU c'est avec l'instruction CPUID:

    http://www.gladir.com/LEXIQUE/ASM/cpuid.htm

    Après pour les autres j'ai pas cherché.
    Dernière modification par Invité ; 09/08/2014 à 20h02.

  3. #3
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut
    Salut

    Merci pour ta réponse

    Et bien si justement .. mon langage interprête les interruptions BIOS et DOS, c'est toujours en prototype pour cause de crash du noyau quand je fais des appels sur 10h, 14h, 15h, 17h, 1Ah, 18Bh , 1Dh et 19h qui fait cracher le PC avec un beep continue sur Sony vaio VPCEJ.
    Sinon à l'intérieur du kernel ses interruptions "assembleur 16 bits" fonctionnent quand je joue sur le segment 16 bits, l'adressage 16bits et même 32 bits grâce au dpmi, donc pour l'assembleur 16 bits il n'y a pas de problèmes, je me base pas mal assembleur sur le noyau, sinon je ne viendrai pas poser la question

    D'accord merci,
    "model" j'ai un sony vpcej, même si il s'agirait que de 1, 0 j'aimerai trouver dans quelle adresse ce trouve "sony vpcej".
    je pourrai DUMP le bios et chercher l'adresse dans le programme d'utilitaire SETUP qui affiche la chaine "Sony vpcej blabla..." Mais si le asus, le acer à une adresse différente c'est pas top...

    Voilà mon problème
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  4. #4
    Invité
    Invité(e)
    Par défaut ...
    Je voit pas, a part essayé comme tu le dit de faire un dumping du BIOS je voit pas.

    Sinon voici ce que j'ai trouvé:

    http://www.asmcommunity.net/forums/topic/?id=3387

    http://www.intel-assembler.it/portal...ing-in-asm.asp


    Après évidemment, il y a plusieurs type de BIOS de nos jours, mais je crois que tous ont une structure commune, comme les hardware pour pouvoir faire des opérations de bases via les interruptions de BIOS sans utilisé le driver de l'auteur du hardware.
    Dernière modification par Invité ; 09/08/2014 à 20h57.

  5. #5
    Invité
    Invité(e)
    Par défaut ...
    Après pour tes problème de crash, je ne dirait que ceci: à force de bidouillé un logiciel propriétaire on se prend un mur a chaque tournant.

    Certes c'est bien ce que tu fait mais si tu veut vraiment allez plus loin, tu devra tout re codé, tu dis avoir un crash a chaque appel d'interruptions du BIOS ?

    Il faut avoir en tête qu'un OS dépose des bases et des règles a chaque fois qu'un programme tourne sous son aile (cf *), j'ai eu aussi droit aux BSOD lors de mes test de certains programme binaire asm sur XP, don't worry.

    Je ne veut pas passez ça sous forme d'une critique, mais de tout tes post que j'ai survolais, j'ai idée que tu veut crée un OS en t'attaquant par le plus gros morceaux, la GUI.
    (Et pour t’aidè donc, tu développe ton OS en t'aidant des fonctions de Windows/MS-DOS)

    Tu désire aussi, pour pouvoir tourné ce programme sans os-hôte de faire du reverse engineering sur les programme de Windows :" I/O.sys,vga.dll ect"

    Bref c'était juste une remarque car je reste un peu sceptique sur ton idée de faire un OS de Z a A, et non de A a Z (je me comprend).

    Par contre si tu y arrive, chapeaux (déjà que je galère sur le mien pour crée un système de fichiers !)

    * : Comme la sauvegarde des registres avant d’appelé une INT, puis la restauration de ces registres avec (pushad & popad) (http://en.wikibooks.org/wiki/X86_Ass...r_Instructions) de mémoire.
    Après il peut y avoir un écrasement de données essentiel au fonctionnement de MS-DOS, car la RAM est une véritable poubelle de donnée organisée , excuse moi du terme, mais la plupart des bug de prog concerne la gestion de la RAM, et je fait une petite référence au fameux GCC 4.9 qui se permet d'écrasé des constantes que le programmeur crée http://www.developpez.com/actu/73723...prix-de-l-ACM/
    Dernière modification par Invité ; 09/08/2014 à 21h32.

  6. #6
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut
    Oui je comprend très bien ! J'ai la même pensé que toi comme tu m'as dis hier, quand on vois quelqu'un vois faire son grand avec ses programmes basé sur quelque chose ( je parle niveau code source ) ça tire les dents
    mais aussi comme des personnes qui crée un "os" sur windows en VB et qui cache le bureau windows juste derrière et qu'on reconnais le Scrolbar et les boutons de windows 7 .. et qui disent que c'est leurs système d'exploitation.. voilà quoi

    Et non FreeDos j'ai rien touché aux binaire et c'est pas propriétaire, c'est un DOS libre et communautaire ^^
    LighOS ils ont fait pareil que moi, http://lightdos.wordpress.com/sauf que eux c'est un "OS". Tandis que moi non c'est pas un OS mais un CO-Kernel, si je parle "OS" sur le projet de cpcdos c'est pour CREER un os grâce à ce noyau


    Je me sert de la base dos uniquement pour démarrer l'exécutable noyau.exe (Il fonctionne sur dos, win98, 2000, xp, reactos, emulateurs, wine ou l'autre que je ne sais plus )
    Puis l'interruption 21h que je me sert de
    pour tout ce qui est traitement des fichiers sur le disque dure (Renommage, ouverture et fermeture des cannaux par fcb) puis 5Dh (serveur/share), 5Eh (réseau..), 4Ch (anciennement 31h), 4Ah, 49h 48h (que je ne sais plus ce que c'est)


    Oui c'est ce que je fais, mon but
    http://www.developpez.net/forums/d14...de-assembleur/
    pour exécuter du win32 nativement SUR cpcdos, ma méthode, c'est de décompiler les instructions PE (J'ai trouvé) Puis retranscrire le stub et certaines fonctions mémoire pour utiliser le DPMI, les noms des librairies pour cause du SFN 8.3 et interpréter les instructions ou faire de la compilation à la volée, récupérer les APIs utilisés par quelle lib etc
    je sais pas si ça fonctionnerai


    Encore, pas OS mais co noyau
    Je comprend ce que tu dis, mais à vrais dire j'ai commencé ce projet cpcdos os2 en quick basic assembleur (nasm) qui tournait sur ms-dos 7, le noyau s'est agrandi, puis passé à dr-dos et FreeDos peut de temps après car les deux précédents n'étaient plus capable de fonctionner correctement et puis msdos est propriétaire
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  7. #7
    Invité
    Invité(e)
    Par défaut ...
    Ok,

    C'est vrai je me suis laissé emporté, car développant aussi un OS de zéro, ça m'a un peu fait mal de te voir dire OS en titre sur les pages que j'ai lu au lieu de Co-noyau.

    Enfin, bonne chance en tout cas.

  8. #8
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut
    Il y a pas de soucis!

    Merci bien
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  9. #9
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 370
    Points : 23 625
    Points
    23 625
    Par défaut
    Citation Envoyé par cpcdos Voir le message
    Et bien si justement .. mon langage interprête les interruptions BIOS et DOS, c'est toujours en prototype pour cause de crash du noyau quand je fais des appels sur 10h, 14h, 15h, 17h, 1Ah, 18Bh , 1Dh et 19h qui fait cracher le PC avec un beep continue sur Sony vaio VPCEJ.
    Sinon à l'intérieur du kernel ses interruptions "assembleur 16 bits" fonctionnent quand je joue sur le segment 16 bits, l'adressage 16bits et même 32 bits grâce au dpmi, donc pour l'assembleur 16 bits il n'y a pas de problèmes, je me base pas mal assembleur sur le noyau, sinon je ne viendrai pas poser la question

    D'accord merci, "model" j'ai un sony vpcej, même si il s'agirait que de 1, 0 j'aimerai trouver dans quelle adresse ce trouve "sony vpcej".
    je pourrai DUMP le bios et chercher l'adresse dans le programme d'utilitaire SETUP qui affiche la chaine "Sony vpcej blabla..." Mais si le asus, le acer à une adresse différente c'est pas top...

    Voilà mon problème
    Il se trouve qu'en réalité, ces informations n'ont pas toujours été disponibles et, en réalité, rien ne garantit qu'elles le soient systématiquement non plus. Il est clair qu'elles ne l'étaient pas du temps du DOS, ce qui fait que l'approche avec les interruptions purement 16 bits risquent d'être obsolète.

    Il faut se souvenir également que les PC sont en fait des ordinateurs « compatibles PC », c'est-à-dire qu'il s'agit d'ordinateurs produits par des fabricants différents mais conçus pour tous être des clones de l'IBM PC, qui lui est un modèle d'ordinateur bien particulier (et accessoirement l'un des plus mauvais jamais conçus, à mon goût). De là, il n'y avait même pas vocation à avoir une fonction d'identifiant particulière puisque l'on est tous censés travailler officiellement sur la même machine. Il en reste que, parallèlement, les PC actuels ont tellement évolué qu'ils n'ont plus rien de commun avec la machine originelle, et qu'il faut des émulateurs pour faire fonctionner les vieux programmes alors qu'on utilise quand même la même famille de micro-processeurs et que le hardware est quand même obligé d'émuler physiquement tout le matériel obsolète (les ports d'entrée-sortie ISA inférieurs à 0x100, formellement) pour pouvoir démarrer normalement. Un comble.

    Regarde du côté de DMI et SMBIOS. C'est l'infrastructure utilisée aujourd'hui pour recenser les équipements disponibles sur une plate-forme de type PC aujourd'hui. C'est un bus comparable au bus CAN qui équipe les automobiles modernes. Il est possible que tu doives passer par l'ACPI pour obtenir un vecteur vers la routine qui va te permettre d'exploiter tout cela.

  10. #10
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut
    Bonsoir, excusez moi pour ma réponse tardive

    Je vous remercie pour votre réponse, je n'est pas remis le nez dedans mais je vais bientôt m'y mettre


    Sujet Résolu
    Si d'autres ont des commentaires hésitez pas


    Cordialement
    Bonne année 2015
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/10/2009, 07h58
  2. Réponses: 12
    Dernier message: 02/09/2009, 18h24
  3. select pour obtenir la taille de remplissage d'une bdd
    Par sqlakf76 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 15/07/2005, 13h44
  4. VBScript pour obtenir l'espace disque libre
    Par Archangelo dans le forum ASP
    Réponses: 2
    Dernier message: 05/05/2004, 12h33
  5. Fonction/méthode pour obtenir l'IP de la machine
    Par sirex007 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 10/04/2003, 14h36

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