|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 807 ![]() |
Bonjour,
Voici le code que j'utilise : Code :
Citation:
Citation:
Si je laisse le lecteur de disquette vide, j'ai bien un message d'erreur qui indique qu'il n'y a pas de média pour booter... Si j'utilise un fichier *.img d'une disquette de Windows 95, ça fonctionne ! Est-ce mon code qui n'est pas bon ou alors peut-être l'image de disquette qui n'est pas construite correctement ? Merci, ZiP |
||||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() passe le balais et l'aspirateur Inscription : mars 2008 Messages : 111 ![]() |
tu initialise si mais pas ds (le selecteur de segment) initialise le par zéros
sa valeur est inconnu si ça se trouve ce n'est pas zéros (c'est même quasiment sur) |
|
10
|
|
|
#3 | |
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 807 ![]() |
Bonsoir bifur,
Comment ferais-tu ? J'ai essayé avec un : Mais il me provoque cette erreur : Citation:
Il faudrait que je trouve une méthode alternative pour créer mon image de disquette avec mon secteur de boot... Merci, ZiP |
|
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() être humain Inscription : décembre 2007 Messages : 471 ![]() |
faut faire ça:
Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 807 ![]() |
Bonjour,
J'ai essayé, ça ne fonctionne toujours pas avec votre proposition de code. Mon fichier fait bien 512 octets. Je pense que le problème vient de l'image de la disquette et non du fichier boot2.bin. Je suis à la recherche d'une solution alternative pour créer un fichier *.img qui est une image de disquette correcte. Merci, ZiP |
|
|
00
|
|
|
#6 | |||
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 807 ![]() |
Bonjour,
Voici un code qui fonctionne : Code :
Citation:
ZiP |
|||
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() passe le balais et l'aspirateur Inscription : mars 2008 Messages : 111 ![]() |
mov ds,0 n'est pas une instruction valide car hélas on ne peut directement charger un sélecteur de segment par une constante il faut donc le faire en deux instruction
il faut que l'adresse ds:si pointe sur le bon endroit dans la ram, dans le premier exemple l'adresse aurait dû être 0000:7C00+msg mais bon dans le dernier exemple la situation est corrgé |
|
10
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 807 ![]() |
Merci pour ces explications !
Savez-vous m'expliquer cette ligne : A quoi sert-elle ? Merci, ZiP |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() Inscription : novembre 2006 Messages : 1 414 ![]() |
Bonjour,
Cette ligne sert à remplir le fichier binaire de caractères nuls, pour que l'image disquette fasse effectivement 512 octets
__________________
Toute question technique envoyée en MP ira directement à la poubelle ![]() Un code ne marchera jamais,il n'a jamais reçu la capacité de se déplacer. Inutile donc de dire "ça marche pas", donnez plûtot des informations précises afin de mieux pouvoir vous aider. ![]() Grand gourou de la -attitude - Sauvons Internet!
|
|
|
00
|
|
|
#10 |
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 807 ![]() |
Bonsoir supersnail,
Votre explication concerne la première ligne. Je cherche à comprendre la seconde qui est : Elle permet de générer un fichier d'extension .img de taille : 9216. Merci, ZiP |
|
|
00
|
|
|
#11 | |
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 610 ![]() |
Citation:
À cela, on enlève les 512 octets du premier secteur que l'on a défini au départ. |
|
|
|
00
|
|
|
#12 |
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 807 ![]() |
Ha. Ok. Merci pour ces informations !
ZiP |
|
|
00
|
|
|
#13 |
|
Membre chevronné
![]() être humain Inscription : décembre 2007 Messages : 471 ![]() |
(80*18*2-1)*512 n'est pas égal à (1 * 18 * 512) - 512, mais alors là pas du tout, le raccourci, surement parti du bon sentiment de simplifier l'équation, est erroné.
je me demande où tu es allé chercher cette ligne de code times (1 * 18 * 512) - 512 db 0 l'opérateur * est prioritaire devant l'opérateur +, donc, il faut bien multiplier les 3 dimension CHS entre elles, et soustraire 1 pour le secteur occupé par le bootloader. mais rien ne vaut l'expérimentation, faire des erreurs fait partie de l'apprentissage. |
|
|
00
|
|
|
#14 |
|
Membre confirmé
![]() Inscription : octobre 2006 Messages : 807 ![]() |
Bonjour edfed,
Merci pour tes précisions ! C'est corrigé ! ZiP |
|
|
00
|
|
|
#15 |
|
Membre éclairé
![]() ![]() Pierre Maurette Inscription : juillet 2002 Messages : 266 ![]() |
Je crois que c'est moi qui avais posté quelque part le code qui fonctionne posté par [ZiP]. La cible était exclusivement une image de disquette .img pour Virtualbox. Au départ on a times (160 * 18 * 512) - 512 db 0 ou times (2 * 80 * 18 * 512) - 512 db 0 si on préfère caractériser les faces. L'image fait 1440ko. On constate ensuite qu'une seule piste suffira, donc times (1 * 18 * 512) - 512 db 0 ou times (1 * 1 * 18 * 512) - 512 db 0, et que l'image de 9ko fonctionne. Pourquoi me suis-arrêté en si bon chemin ? Mystère, toujours est-il que pour Virtualbox une image de 1 secteur fonctionne, donc times (1 * 1 * 512) - 512 db 0 ou times (1 * 1 * 1 * 512) - 512 db 0 ou tout simplement rien.
remarque: j'écris d'une façon qui me semble autodocumenter le code. C'est un choix personel, et j'aurais pu utiliser à nouveau ... - ($ - $$). question: comment comme le fait edfed placer de la coloration syntaxique en ligne (span), sans encadrement ? |
|
|
00
|
|
|
#16 | |
![]() ![]() Sébastien Chercheur sécurité informatique Inscription : octobre 2003 Messages : 1 041 ![]() |
Bonjour,
Citation:
Code :
[codeinline ] foobarbaz = foobar + baz [ /codeinline] c.f. http://www.developpez.net/forums/d10...e/#post5888074 |
|
|
00
|
|
|
#17 | |||
|
Membre chevronné
![]() être humain Inscription : décembre 2007 Messages : 471 ![]() |
Citation:
si ça marche c'est tout ce qu'il faut. sous bochs par contre, je crois qu'il faut impérativement une image de disquette de taille valide, sinon, il répond avec un message d'erreur. Une image de disquette, c'est du standard, tout les emulateurs que j'ai essayé utilisent le même type d'image, mais seulement pour les disquettes. Pour les disques durs par contre, c'est différent, certains emulateurs nécessitent un fichier disque dur virtuel qui n'a rien à voir avec une image disque. L'autodocumentation de code suppose que le lecteur sache déjà ce que fait le code. Ce que je trouve pas mal, c'est les commentaires très courts en anglais. l'anglais permet des explications techniques vraiment concises, ce qui n'est pas le cas du français. par exemple: Code :
pour la balise de codeinline, le bug de non retour à la ligne est voulu, ne vous inquietez pas. pour y palier, il y a un moyen.car sinon, le texte suivant est collé à la suite et un eventuel retour chariot est ignoré. il faut toujours composer une ligne de codeinline encadrée par du texte, ou terminé par une ponctuation. comme la ligne que vous venez de lire. et en plus, anomaly à ajouté la coloration syntaxique asm dans le chat et le forum. |
|||
|
|
10
|
Copyright © 2000-2013 - www.developpez.com