A voir également:
- Qu'est ce que le DOS ?
- Fenêtre dos - Forum Windows
- Console dos ✓ - Forum Programmation
- Fonction ms dos non valide - Forum Windows 8 / 8.1
- This program cannot be run in dos mode ✓ - Forum Programmation
- Dos pause ✓ - Forum Windows
4 réponses
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
755
23 août 2005 à 09:29
23 août 2005 à 09:29
"Mais si je boote à partir de la disquette il ne peut pas y avoir de système d'exploitation lancé ! "
-> Il ya des systemes d'exploitation qui tiennent sur 1 disquette :)
-> On peut démarrer sur une disquette a condition que certains fichiers soient présents sur la disquette: il n'y a vraiment rien d'autre que ton prog sur cette disquette?
a+
dje-dje
-> Il ya des systemes d'exploitation qui tiennent sur 1 disquette :)
-> On peut démarrer sur une disquette a condition que certains fichiers soient présents sur la disquette: il n'y a vraiment rien d'autre que ton prog sur cette disquette?
a+
dje-dje
Bonjour,
Il y a quoi sur ta disquette à part ton programme ? Qu'est ce qui la fait booter ?
Le DOS est bel et bien un OS... :)
Il y a quoi sur ta disquette à part ton programme ? Qu'est ce qui la fait booter ?
Le DOS est bel et bien un OS... :)
Voici le contenu de la disquette :
Une disquette est bootable si les octets 511 et 512 contiennent un code spécial (55AA en hexa, ce sont les deux dernières lignes du code que j'ai mis)
Il n'y a pas besoin spécialement de fichiers supplémentaires : pour une disquette de démarrage c'est le premier segment (là où ça boote) qui démarre les autres fichiers, dans mon cas tout se fait directement dans le premier segment
La preuve c'est que ça marche et que windows me dit que 0 octets sont utilisés sur la disquette
jmp debut db "BOOT", 0, 0, 0, 0 dw 512 db 1 dw 1 db 2 dw 224 dw 2880 db 0xF0 dw 9 dw 18 dw 2 dw 0 dw 0 db 0 db 0 db 0x29 debut: cli mov ax, 0x6000 mov ss, ax mov ax, 0x07C0 mov ds, ax mov es, ax mov fs, ax mov gs, ax mov sp, 0xFFFF mov ax, 0012h int 10h sti mov cx, 12 boucle: mov di, 12 sub di, cx mov ah, 0Eh mov al, [helloworld + di] mov bh, 0 mov bl, 0FFh int 10h loop boucle infini: jmp infini helloworld db "Hello World!" times 510 - ($-$$) db 0 db 0x55 db 0xAA
Une disquette est bootable si les octets 511 et 512 contiennent un code spécial (55AA en hexa, ce sont les deux dernières lignes du code que j'ai mis)
Il n'y a pas besoin spécialement de fichiers supplémentaires : pour une disquette de démarrage c'est le premier segment (là où ça boote) qui démarre les autres fichiers, dans mon cas tout se fait directement dans le premier segment
La preuve c'est que ça marche et que windows me dit que 0 octets sont utilisés sur la disquette
Désolé, il semblerait que j'ai fait une erreur : ce que j'utilise c'est en fait une interruption du BIOS (il y a les deux)
Je viens de trouver un site disant que c'est impossible que ce soit du DOS (justement puisqu'il n'est pas là) et en approfondissant j'ai trouvé que ce que j'utilisais n'était pas du DOS
Merci quand même
Je viens de trouver un site disant que c'est impossible que ce soit du DOS (justement puisqu'il n'est pas là) et en approfondissant j'ai trouvé que ce que j'utilisais n'était pas du DOS
Merci quand même