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.
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à
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.
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à
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.
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.
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à
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.
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à
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.
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à
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager