tristan3215
Messages postés12Date d'inscriptionlundi 21 avril 2014StatutMembreDernière intervention 3 mai 2022
-
21 avril 2014 à 22:27
Cpcdos
Messages postés425Date d'inscriptionsamedi 11 juillet 2009StatutMembreDernière intervention28 octobre 2016
-
13 avril 2015 à 13:51
bonjour a tous je suis nouveau sur se forum voila je me suis inspirer du code source de PEPIN pour un noyau en ASM donc voila mon souci le noyau démarre sans problème j'aimerai donc une aide pour démarrer un programme externe un *.exe ou *.com j'aimerai que l'ont m'explique comment cela fonctionne je suis sous Dos je de code sous windows 7 Merci Beaucoup
Cpcdos
Messages postés425Date d'inscriptionsamedi 11 juillet 2009StatutMembreDernière intervention28 octobre 20161 8 août 2014 à 09:48
Le problème c'est qu'il faut que tu code le lecteur d'entête MZ
car ton kernel est incapable de savoir ce que c'est qu'un "fichier .exe" un "fichier .com" certes il contient des instruction 386 ou 486 ou autre mais ces fichiers exécutable contiennent aussi généralement des interruptions BIOS et DOS (21h) hors ton kernel avec pepin n'a pas la fonctionnalitée de lire un fichier de haut en bas, de décoder les instructions et ne sais pas ce que c'est que l'interruption 21h (dos)
En gros il faut que tu réécrive un mini dos dans ton kernel et un lecteur d'entête MZ (un lecteur de fichiers .exe et .com)
tristan3215
Messages postés12Date d'inscriptionlundi 21 avril 2014StatutMembreDernière intervention 3 mai 2022 4 mars 2015 à 14:17
bonjour je toujours sur la création du kernel en asm et comme tu et le seul a m'avoir répondu je te repose une question comment je doit faire pour avoir toute les interruption 21h du dos ? a tu un programme pour charger ses interruptions ? j'ai trouver une liste des interruption dos 21h sur le net mais elle n'est pas complète aurez tu un bout de code ? merci
tristan3215
Messages postés12Date d'inscriptionlundi 21 avril 2014StatutMembreDernière intervention 3 mai 2022 14 mars 2015 à 11:42
Bonjour à tous j'ai finalement un kernel dos 16Bits qui démarre des fichier externe *.exe *.com en 16bits, le kernel a un lecteur l'entête MZ et les interruptions BIOS et DOS (21h) je peux donc faire appelle a un programme 16bits en Asm (x86) par exemple
voici ma nouvelle question :
comment passer en 32bits ?
j'ai essayer de charger la GDT mais en moment du passage en Mode Protéger le programme bug et plate total
je ne cherche pas a émuler le système en 32bits mais passer en 32Bits j'ai essayer plusieurs code nasm masm mais pareil sa plante .
Mais il faut absolument que tu aies une entête DPMI dans ton fichier executable
DJGPP, GCC, FreeBasic, Watcom c++, digital mars, power basic, jwasm, fasm etc... en font l'affaire
Cordialement
Sébastien FAVIER
Vous n’avez pas trouvé la réponse que vous recherchez ?
tristan3215
Messages postés12Date d'inscriptionlundi 21 avril 2014StatutMembreDernière intervention 3 mai 2022 13 avril 2015 à 11:28
Salut merci de ta réponse j'ai déjà.utiliser le dpmi hxdos mais il me faut les code source car il me manque deux interruption dans le noyau l'interruption 58h et 2fh et dans les dpmi hxdos il utilise l'interruption 58hdonc.ya un beugler et vu que.je n'est pas accès au code source je ne peux supprimer cette interruption à tu d'autre dpmi à me proposer ? Merci
Il me semble bien que se sont des interruptions régie du DOS et non du DPMI
int 0x2F pour obtenir les info du logiciel en exécution et 0x58 pour un truc d'allocation de... j'sais plus quoi x)
Les supprimer ?
Mais pourquoi pas les utiliser tout simplement ?