Création de disquette image de boot sous bochs

ISSYSTEMS Messages postés 5 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 19 février 2010 - 26 janv. 2010 à 14:41
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 - 16 févr. 2010 à 09:42
Bonjour à tous et du courage dans vos travaux

J'ai un sérieux problème qui me casse la tête: En fait je travaille en architecture des ordinateurs et je me sers de Bochs sous windows pour simuler mes programmes (boot, kernels et autres écrits en asm). lorsque je finis l'assemblage de mes sources je voudrais créer une disquette image de boot. et le problème qui démeure est que je n'arrive pas à lier les .bin au fichier image crée avec l'utilitaire fourni par bochs. dans un tout premier temps je me sers de linux avec lequel je fais un "cat [fichiers à joindre] /dev/zero dd fd=.img" en fait là je joins les fichiers bin et je transforme la disquette image en boot. Quelqu'un peut_il m'indiquer toutes les procédures sous windows car j'ai fouillé la doc fournie avec bochs. merci

4 réponses

cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
27 janv. 2010 à 22:27
As-tu seulement des premiers secteurs à copier ou tout un système de fichiers derrière ?
---
VB.NET is good ... VB6 is better
0
ISSYSTEMS Messages postés 5 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 19 février 2010
28 janv. 2010 à 09:15
En fait dans un premier temps je voudrais copier les octets du boot dans le premier secteur et le noyeau dans le second et ensuite copier le reste des utilitaires. Mais en utilisant une disquette image sous windows 7
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
28 janv. 2010 à 19:03
Est-ce un OS entièrement en ASM ou alors il y a une partie en C ?
Si t'es dans le cas n°2 c'est plus simple de faire ça via Linux (en machine virtuelle)
Sinon tu utilises copy dans l'Invité de commandes :
copy /B fichier1+fichier2 fichierFinal

---
VB.NET is good ... VB6 is better
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 1
16 févr. 2010 à 09:42
salut,

tu peux créer un fichier asm a compiler en binaire qui te créera l'image directement.

ex avec nasm:

[ORG 0x7C00]
[BITS 16]
MBR:
mov ax,$$;met la pile dans 0x600-0x7BFF
mov sp,ax
; ici, tu continue ton programme.

times (510-($-$$)) db 0 ; affiche une erreur si ton code est trop gros, pratique.
dw 0xAA55

D0TE_PLACE_SIOUPLAI:
; tu peux rajouter du code ici mais c'est ton mbr qui devra le charger à sa suite (adresse 0x7E00)

FICHIER1:
incbin "fichier1.bin"
FICHIER2:
incbin "fichier2.bin"
...

THIS_IS_THE_END__TA_DA_DAM:
times (512*18*70*2-($-$$)) db 0 ; taille d'une d7


tu compiles par nasm -f bin. Avec d'autres assembleurs, utilise le modèle tiny mais je ne suis pas sur qu'il acceptent un modèle tiny superieur a 64Ko.

PS: je ne suis pas sur que le format image de d7 soit SECTEUR/PISTE/FACE.

soit PISTE0/FACE0, PISTE1/FACE0, ...
soit PISTE0/FACE0, PISTE0/FACE1, ...

a verifier.

@++
0