Win3x.Org

Windows & DOS Community

Procédure de démarrage de DOS améliorée

Répondre   Page 1 sur 1  [ 10 messages ]
Auteur Message
SuperKoko
Sujet du message : Procédure de démarrage de DOS améliorée
Publié : 23 juin 2010 18:17
Membre inscrit
Hors-ligne
 
Messages : 25
Inscription : 23 avr. 2007 23:54
 
J'ai créé un nouveau "Volume Boot Record" pour MS-DOS, dont l'objectif est de supprimer toutes les limitations de celui de MS-DOS et d'assurer une compatibilité avec tous les MS-DOS possibles.
Ainsi, mon nouveau VBR permet de placer IO.SYS et MSDOS.SYS a des positions arbitraires dans le répertoire racine, ne donne aucune contrainte quant à la position des clusters de ces fichiers, et est compatible avec tous les PC/MS-DOS du 2.11 à 7.1 sur FAT12, FAT16 et disque dur ou disquette. L'utilité principale de ce projet est de permettre l'installation de multiples versions de MS-DOS sur la même partition ou des partitions arbitraires, via GRUB.

J'ai bien commenté le code assembleur et ai écrit une petite documentation. J'ai tout écrit en anglais parce que c'est la convention universelle pour le code source. Je n'ai pas assez d'octets pour rajouter le support de MS-DOS 1 sans supprimer une autre fonctionnalité (p.e. gestion de INT 13h/AH=42h LBA EXTENDED BIOS READ)

   :arrow: Lien pour télécharger DOSbootI-R1.zip
   :arrow: Lien miroir de Big Monstro
   :arrow: Lien miroir de Vorro


25-06-2010:
Modification de IO.SYS de MS-DOS 6.22 et de MS-DOS 5.0 pour permettre de démarrer sur un autre lecteur que C:. Par exemple, il est ainsi possible de démarrer sur E:.

   :arrow: IO622-AD-R1.SYS et IO50-AD-R1.SYS supportent les partitions primaires et les partitions logiques.
   :arrow: Miroirs de Big Monstro : IO622-AD-R1.SYS pour MS-DOS 6.22 et IO50-AD-R1.SYS pour MS-DOS 5.0
   :arrow: Miroirs de Vorro : IO622-AD-R1.SYS pour MS-DOS 6.22 et IO50-AD-R1.SYS pour MS-DOS 5.0

06-07-2010:
Amélioration de IO.SYS permettant de démarrer avec le VBR standard de MS-DOS 5.0/6.22 puisque maintenant le media descritor F8h signifie C: plutôt que I:. I: devient F9h.

   :arrow: Lien pour télécharger IO622-AD-R2.SYS
   :arrow: Lien miroir de Big Monstro
   :arrow: Lien miroir de Vorro

Création d'un utilitaire aidant à écrire le volume boot record sur une partition. Les numéros de partition gérés par ce syet.com sont conçus pour IO622-AD-R2. C'est néammoins compatible avec IO622-AD-R1 pour les lecteurs de A: à H:, la numérotation étant décalée pour les lecteurs au dessus de I:

   :arrow: Lien pour télécharger SYET.COM
   :arrow: Lien miroir de Big Monstro
   :arrow: Lien miroir de Vorro

Dernière modification par Big Monstro le 01 sept. 2014 18:26, modifié 6 fois.

Haut
Profil Citer
chocoboss
Sujet du message : Re: Procédure de démarrage de DOS améliorée
Publié : 23 juin 2010 18:20
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 190
Inscription : 24 mai 2006 16:58
 
Je pensai être un fou, j'en ai trouvé un autre ^^'
Je lis ta doc un peut, mais sinon très très bonne initiative !


Haut
Profil Citer
le chef suprême
Sujet du message : Re: Procédure de démarrage de DOS améliorée
Publié : 24 juin 2010 02:15
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 331
Inscription : 02 juin 2006 18:57
 
Et c'est seulement maintenant que je découvre que je n'aurais jamais réussi à utiliser GRUB manuellement... :roll:

Mais ça a l'air dément comme projet ! Le tip-top serait le support de la FAT32 également, qui existe sur MS-DOS 7.1 et 8.0...

_________________

Expert en MS-DOS, Windows 3.x, Windows 4.x (95/98/ME).
Live-CD Windows 95 !


Haut
Profil Citer
SuperKoko
Sujet du message : Re: Procédure de démarrage de DOS améliorée
Publié : 25 juin 2010 01:06
Membre inscrit
Hors-ligne
 
Messages : 25
Inscription : 23 avr. 2007 23:54
 
le chef suprême a écrit :
Le tip-top serait le support de la FAT32 également, qui existe sur MS-DOS 7.1 et 8.0...
FAT32 nécessite un pilote assez différent puisque le répertoire racine peut être fragmenté et la recherche de IO.SYS requiert un pilote capable de parcourir les listes chaînées de clusters dans la table d'allocation.
En gros, il n'est pas envisageable de mettre le support FAT32 dans le DOSbootI FAT12/FAT16.
Par contre, j'envisage d'écrire un DOSbootI32 supportant MS-DOS 7.1 et ayant comme principal avantage de n'utiliser qu'un seul secteur. En effet, le VBR de MS-DOS 7.1 est chouette, peut booter un IO.SYS discontinu depuis n'importe quel endroit dans le répertoire, mais s'étend sur 3 secteurs. Ça rend difficile l'installation de NTLDR et de MS-DOS sur le même lecteur alors que je suis prèsque sur que l'on doit pouvoir faire tenir tout le code sur un seul secteur.


Haut
Profil Citer
le chef suprême
Sujet du message : Re: Procédure de démarrage de DOS améliorée
Publié : 25 juin 2010 20:13
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 331
Inscription : 02 juin 2006 18:57
 
OK !
Tu es rudement bien informé, c'est impressionnant, et bravo pour tes recherches ! :wink:

_________________

Expert en MS-DOS, Windows 3.x, Windows 4.x (95/98/ME).
Live-CD Windows 95 !


Haut
Profil Citer
Matthias
Sujet du message : Re: Procédure de démarrage de DOS améliorée
Publié : 27 juin 2010 00:19
Membre d'honneur
Avatar de l’utilisateur
Hors-ligne
 
Messages : 1355
Inscription : 26 mars 2008 23:05
PC Rétro : P4 (NEC), Continental Edison (Celeron)
 
Et comment on l'installe, on charge les fichiers .SYS dans CONFIG? :o

_________________

[ img ]
Mon blog sur l'avant-garde :arrow: Cliquez ici


Haut
Profil Citer
le chef suprême
Sujet du message : Re: Procédure de démarrage de DOS améliorée
Publié : 27 juin 2010 10:57
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 331
Inscription : 02 juin 2006 18:57
 
Ce sont des fichiers IO.SYS modifiés, je suppose.
Donc ça se met à la place du IO.SYS précédent, c'est ça ?

_________________

Expert en MS-DOS, Windows 3.x, Windows 4.x (95/98/ME).
Live-CD Windows 95 !


Haut
Profil Citer
Dr Frankenstein
Sujet du message : Re: Procédure de démarrage de DOS améliorée
Publié : 30 juin 2010 17:00
Membre d'honneur
Hors-ligne
 
Messages : 440
Inscription : 28 oct. 2004 01:31
 
C'est un VBR (Volume Boot Record), pas un fichier à remplacer dans DOS. Normalement il s'injecte dans la partition pour remplacer le vieux boot record.

Si vous lisez le code assembleur, vous remarquerez qu'il contient le header de la partition.

_________________

Introducing Windows 95.
It lets you use more than eight characters to name your files. Imagine that. ~Apple.


Haut
Profil Citer
SuperKoko
Sujet du message : Re: Procédure de démarrage de DOS améliorée
Publié : 30 juin 2010 23:07
Membre inscrit
Hors-ligne
 
Messages : 25
Inscription : 23 avr. 2007 23:54
 
Pour utiliser le VBR de DOSbootI, il faut copier les 450 derniers octets du fichier .vbr vers les 450 derniers octets du premier secteur de la partition (VBR de la partition) en faisant attention de ne pas écraser les 62 premiers octets qui contiennent le BPB (information vitale décrivant la taille et le nombre des FAT, la position de la partition sur le disque et sa géométrie). De plus, il faut s'assurer que le saut à 00h soit EB 3C.
On peut faire ça avec un éditeur hexa capable de "streamer" ou avec le programme dd et un éditeur hexa sous Linux.
Je vais écrire un programme syet.com (équivalent de sys.com du DOS) qui fait ça automatiquement.

Pour ce qui est du IO.SYS amélioré, il faut remplacer le IO.SYS original avec celui-ci et installer le VBR de DOSbootI en choisissant correctement la partition de démarrage (octet 1FCh du VBR) ou alors modifier le MediaByte du VBR de DOS5/6 par 0F0h+DriveNum.

La prochaine version du IO.SYS amélioré devrait gérer le boot sur le VBR de DOS5/6 sans modification en considérant que F8h = C: plutôt que I:

----
Publié: mardi 06 juillet 2010 23:04

Enfin, je distribue la première version de SYET.COM. Ainsi, il sera beaucoup plus facile d'utiliser DOSbootI pour les néophytes.

Pour bientôt:
Une alternative à GRUB pour le multi-boot.
Principe:
Occupe les 446 octets du MBR.
Au démarrage du MBR, on a quelques centaines de millisecondes durant lesquelles on peut choisir la partition primaire de démarrage avec les touches 1-4. Les touches 5-8 permettent de démarrer sur des secteurs spécifiés à un nouvel endroit spécial du MBR. Ces secteurs n'appartiennent pas forcément à des partitions.
J'ai une version préliminaire qui ne gère que INT 13/AH=42. Je vais donner le code lorsque je gérerai aussi l'adressage CHS INT 13/AH=02


Haut
Profil Citer
gm86
Sujet du message : Re: Procédure de démarrage de DOS améliorée
Publié : 10 mars 2011 13:54
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 540
Inscription : 01 sept. 2008 19:07
 
SuperKoko a écrit :
J'ai bien commenté le code assembleur et ai écrit une petite documentation.
J'ai tout écrit en anglais parce que c'est la convention universelle pour le code source.
Faire que le code soit compréhensible par la majorité des gens dans le monde est louable.
Ainsi, un code commenté en allemand m'est plus obscur que s'il l'avait été en anglais, italien voire espagnol ou portugais.
Néanmoins, la colère de voir un homme exposer son travail en anglais à une majorité francophone parce que c'est la convention m'a découragé d'étudier ce code. Je comprends à présent pourquoi il est difficile de trouver des codes sources en langage d'assemblage commentés en français sur Internet. Jadis, il fallait connaître le latin afin de comprendre la messe ; faut-il, aujourd'hui, apprendre l'anglais parce que les gens renient leur langue ?
Certes, les phrases anglaises sont généralement plus concises que leur équivalent français. Mais commenter un code n'est pas faire de la littérature. On peut se permettre d'user d'abréviations et de symboles mathématiques.
Finalement, une fois de plus, après avoir repris mon calme, je me pencherai sur ce projet que je trouve des plus intéressants à la base -- près de neuf mois plus tard !


Pour aider un peu les débutants, imaginons que vous avons un lecteur 5"1/4 haute densité et une disquette de démarrage de Windows 98. Apportons les modifications suivantes au fichier source contenu dans l'archive provenant du premier lien de SuperKoko :
                        db      "MSWIN4.1"      ; Windows 98

cRootDirEntries         dw      0E0h    ; Idem qu'un disque 1.44M
cFsSectors16            dw      2400    ; 2400 secteurs sur un disque 1.2M
MediaType               db      0F9h    ; Descripteur d'une disquette 1.2M
cSectorsInFAT           dw      7       ;  7 secteurs par FAT
cSectorsInTrack         dw      15      ; 15 secteurs par piste
cHeads                  dw      2       ; 2 têtes, bien sûr

RootPartition db 0F0h                   ; Disquette (merci SuperKoko)
Enregistrons les modifications dans le fichier BOOT.ASM et repassons sous la ligne de commande du DOS :
MASM BOOT;
LINK BOOT;
EXE2BIN BOOT
DEBUG BOOT.BIN
-L 7D00 0 0 1
-W
-Q
L 7d00 0 0 1 signifie copier le contenu de la mémoire à partir de l'offset 7D00h dans le lecteur A:, à l'octet 0 et sur un seul secteur consécutif.

Pourquoi 7D00h ?
7C00h est l'offset de l'adresse où est chargé le secteur, c'est pourquoi BOOT.BIN débute par 7C00h octets nuls. Ensuite, lorsque BOOT.BIN est chargé par DEBUG, ce dernier crée un PSP comme pour une application .COM ou .EXE ! 7C00h + 100h = 7D00h octets.
Néanmoins, rien ne nous empêche d'obtenir un fichier MBR.BIN de 512 octets et de copier ensuite son contenu dans le secteur d'amorce de la disquette :
DEBUG BOOT.BIN
-N MBR.BIN
-M 7D00 7F00 100
-R CX
200
-W
-L 100 0 0 1
-Q

_________________

C:\ONGRTLNS.W95


Haut
Profil
Afficher : Trier par : Ordre :
Répondre   Page 1 sur 1  [ 10 messages ]
Revenir à « Projets aboutis »
Aller :