Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Pour tout ce qui touche au PC d'IBM et ses nombreux descendants. Attention tout de même, au delà de quelques MHz la discussion devient vite hors sujet.

Modérateurs : Papy.G, fneck, Carl

gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par gotcha »

Hello,

Sur mon Goupil G4, j'utilise actuellement le DOS 2.11 OEM d'origine. En voulant faire des expériences avec d'autres DOS, j'ai booté sur une disquette DOS 5.0 (c'est un MS-DOS générique). Par contre, surprise, il n'arrive pas à lire mon disque dur C: .
Je peux aller sur C, mais il ne reconnait pas le file système semble-t-il.

Quand je fais un dir:

Code : Tout sélectionner

Invalid media type reading drive C
Le DOS 2.11 est sensé utiliser une FAT12 que doit pouvoir lire DOS 5.0. Le DOS 5.0 lit d'ailleurs bien les disquettes elles même en FAT12.
Ça serait aussi étonnant qu'un DOS OEM utilise une FAT exotique.

Quelqu'un a une idée de ce qu'il peut se passer ?
Dernière modification par gotcha le 11 nov. 2020 23:29, modifié 2 fois.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
jvernet
Messages : 2454
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par jvernet »

A l'époque de MSDOS 2.11, chaque constructeurs a fait sa petite cuisine à lui sur les FAT, les secteurs de boot, etc. Pas rare par exemple d'avoir l'idée stupide de decaler la FAT de quelques secteurs.. C'est probablement le cas. Il faudrait utiliser un éditeur de secteurs pour regarder, mais à tous les coups, c'est ça.

ACT a fait ça sur les Apricot, par exemple. Le pire est qu'une disquette formatée sur un apricot et lue sur un PC affiche un répertoire vide. Si tu écrit quelques chose dessus par inadvertance, tu flingue la disquette apricot...
A l'inverse, formatée sur PC et lue sur un Apricot, tu te retrouve avec une FAT toute pourrie.
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par gotcha »

En guise de disque dur j'utilise maintenant une carte XT-CF Lite et donc mon disque dur est une carte Compact Flash.
Il m'est donc facile de lire les secteurs sur le PC moderne, du moins de la première piste.

Je vais regarder ça.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
nouvelhermes
Messages : 401
Inscription : 22 juil. 2020 20:56

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par nouvelhermes »

Un bon utilitaire pour lire les disques dur et disquettes secteur par secteur est PC Tools version 4.3 (les suivantes sont beaucoup trop lourdes).

Je ne sais pas si tu as mis une copie de la disquette système sur le site, cela serait intéressant de voir si on peut décompiler (les sources dos 2.11 ont été publiées par MS, voir ici https://github.com/microsoft/MS-DOS/tre ... 2.0/source)

Intéressant est aussi les kits d'adaptation destinés aux constructeurs, comme ici la version 3.3 http://www.win3x.org/win3board/viewtopi ... f=79&t=518
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par gotcha »

C'est sympa d'avoir les sources assembleurs originaux avec des commentaires.
Pour le Goupil, SMT a certainement patché/adapté le code original, mais avoir les sources de Microsoft doit faire gagner beaucoup de temps.

Jusqu'à présent, je m'étais juste 'amusé' à désassembler le boot sector de la disquette bootable DOS 2.11 de ce même ordinateur, et c'est consommateur de temps...

Cette histoire de DOS 5 vs DOS 2.11 est une bonne excuse pour aller maintenant voir du coté du MBR et du boot sector du disque dur sous ce DOS 2.11.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
jvernet
Messages : 2454
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par jvernet »

Perso, je met pas mes CF dans un Pc moderne, en tout cas sous Windows 10. Celle de mon 486 (MSDOS 6.22) est systématiquement détruite pas Windows 10, je suis obligé de repasser un coup de SYS C: depuis une disquette boot 6.22 après l'avoir mise dans W10.

J'utilise mon Mac, qui ne touche au moins à rien, sauf création de quelques repertoires cachés que je vire avec un script avec ejection.

Sinon, effectivement pcTOOLS pour lire les secteurs depuis le G4. Plus geek ;)

JV
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par gotcha »

C'est bon à savoir. Je vais plutôt monter la carte CF sous Linux alors.
J'ai Linux dans une machine virtuelle sous Windows 10, mais quand je met une carte CF, j'ai l'option d’empêcher Windows d'y avoir accès.
De toute manière IDA free qui me sert à désassembler est sous Linux.

PCTools est plus geek, mais transférer les données du Goupil à un PC moderne ensuite est quand même compliqué je trouve, surtout si les données font plus de 360k :)
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par gotcha »

Je viens de mettre la carte CF du Goupil dans le PC moderne et ce qui est étrange, c'est que Linux arrive bien à lire la partition DOS 2.11.

Cette partition semble donc être une partition FAT12 standard. Pourquoi DOS 5 n'arriverait pas à la lire ?
Bug du coté du DOS 5 ?
Problème dans de description de la partition dans le MBR ?
Pièces jointes
G4 DOS 211 CF.JPG
G4 DOS 211 CF.JPG (30.04 Kio) Consulté 5073 fois
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par gotcha »

Je me demande s'il n'y a pas un accès au disque différent entre le DOS officiel du Goupil et un DOS générique. En d''autres mots, un DOS générique ne marcherait pas forcement correctement sur le G4.

Par exemple, j'ai remarqué que lorsque je boote sur le DOS 2.11 OEM, j'ai juste avant le message Microsoft un autre message qui parle du BIOS.

Code : Tout sélectionner

Goupil4 BIOS V1.11
J'ai l’impression que le DOS 2.11 effectue une initialisation du BIOS.

Quand je n'ai aucun disque bootable, je n'ai aucun message du BIOS, juste le message d'un 'moniteur':

Code : Tout sélectionner

G4MON-186 V1R4
En démarrant le DOS 5, je n'ai pas de message qui concerne le Goupil4 BIOS. Donc au boot, il manque peut-être au DOS 5 générique certaines routines du BIOS G4 pour aller accéder le disque dur correctement. :?:
Pièces jointes
Goupil DOS 2.11, message BIOS
Goupil DOS 2.11, message BIOS
IMAG8334_small.jpg (71.23 Kio) Consulté 5066 fois
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17424
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par fneck »

Une instruction particulière d'un des fichiers IO.SYS ou MSDOS.SYS (voir éventuellement COMMAND.COM). Avec un héditeur hexa tu devrais rechercher dans ces trois fichiers la chaine "Goupil4 BIOS V1.11" (peut-être sans la version). Perso je penche assez pour IO.SYS.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par gotcha »

@fneck oui c'est fort probable.

Pour l'instant, je suis en train de désassembler le boot sector de la disquette DOS 2.11 dur G4. Je n'ai encore rien vu.

A mon avis, il va me falloir encore au moins une soirée pour finaliser le désassemblage. Et c'est toujours aussi folklorique de désassembler ce genre de code (juste 512 bytes, et pourtant ... c'est parfois bien tiré par les cheveux :D ).

Celui-là a décidé de s'auto-copier de 0000:7C00 (où le BIOS le charge) à 0060:0000. Je pensais que seul les bootloaders de MBR faisaient ce genre d'auto-copie pour pouvoir ensuite charger le bootloader de la partition active à sa place à l'adresse 0000:7C00
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par gotcha »

jvernet a écrit : 11 nov. 2020 23:23 A l'époque de MSDOS 2.11, chaque constructeurs a fait sa petite cuisine à lui sur les FAT, les secteurs de boot, etc. Pas rare par exemple d'avoir l'idée stupide de decaler la FAT de quelques secteurs.. C'est probablement le cas. Il faudrait utiliser un éditeur de secteurs pour regarder, mais à tous les coups, c'est ça.
Bon, j'ai continué le desassemblage du boot sector de la disquette DOS 2.11 et je vois effectivement que la FAT est chargée depuis le secteur 6 (le boot sector est au secteur 1). Il faut maintenant que je regarde le boot sector de ma partition bootable du disque dur, mais à mon avis, ça sera la même chose que sur la disquette bootable.

Décaler la FAT n'est pas à mon sens anormal en soit. Ce décalage est normalement déclaré par le nombre de reserved sectors dans le BIOS Parameter Block, table qui se situe à une adresse précise du boot sector.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par gotcha »

hmmmm, je viens de regarder la BIOS Parameter Block (BPB) de la disquette DOS 2.11 et je vois que juste 1 seul 'reserved sector' et 0 'hidden sector' déclarés !

Il y a donc à priori une incohérence entre la BPB et le code du bootloader et donc ... certainement un bug dans la disquette du Goupil.
Çà pourrait expliquer pourquoi DOS 5.0 se perds, car s'il lit les données de la BPB, alors il cherche la FAT au secteur 3 et non 6 :?

Je vais regarder tout ça se soir et vérifier que c'est aussi le cas sur le disque dur.

Code : Tout sélectionner

seg000:7C03                                         ; -
seg000:7C03                                         ; - BIOS Parameter Block
seg000:7C03                                         ; -
seg000:7C03                                         ; -
seg000:7C0B bytes_per_sect  dw 200h                 ; 512 bytes per sector
seg000:7C0D sector_per_cluster db    2              ; 2 sectors per cluster
seg000:7C0E reserv_sects    dw 1                    ; 1 reserved sector
seg000:7C10 num_fats        db    2                 ; 2 FATs on diskette
seg000:7C11 num_root_entries dw 70h                 ; 112 root entries
seg000:7C13 num_sectors_total dw 2D0h               ; 720 sectors (40x2x9)
seg000:7C15 media_type      db 0FDh                 ; Media descriptor: 5.25 double sided, double density
seg000:7C16 sect_per_fat    dw 2
seg000:7C18 sect_per_track  dw 9
seg000:7C1A num_heads       dw 2
seg000:7C1C num_hidden_sect dw 0                    ; -
seg000:7C1C                                         ; - end of BPB
seg000:7C1C                                         ; -
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Dos 5.0 n'arrive pas à lire une partition DOS 2.11

Message par gotcha »

fneck a écrit : 12 nov. 2020 20:52Avec un héditeur hexa tu devrais rechercher dans ces trois fichiers la chaine "Goupil4 BIOS V1.11" (peut-être sans la version). Perso je penche assez pour IO.SYS.
C'est bien dans IO.SYS
gotcha a écrit : 13 nov. 2020 10:57 Je vois effectivement que la FAT est chargée depuis le secteur 6 (le boot sector est au secteur 1)
<...>
Je viens de regarder la BIOS Parameter Block (BPB) de la disquette DOS 2.11 et je vois que juste 1 seul 'reserved sector' et 0 'hidden sector' déclarés !
Il y a donc à priori une incohérence entre la BPB et le code du bootloader
En fait, le boot loader ne charge pas la FAT, il charge le premier secteur du Root Directory (pour vérifier si MSDOS.SYS et IO.SYS sont bien les premiers fichiers). Donc le secteur 6 est le début du root directory, pas la FAT. La FAT est elle bien juste après le boot sector, ce qui est cohérent avec un reserved sector à 1 (l'unique reserved sector est le boot sector).

Donc, rien d’incohérent dans le boot sector de la partition DOS 2.11.

Du coup, je reviens à mon hypothèse initiale : il pourrait manquer une initialisation de BIOS G4 au DOS générique. Il faut que je regarde ce que fait IO.SYS, mais ça risque d’être plus compliqué que le boot sector de la partition.
Dernière modification par gotcha le 14 nov. 2020 09:59, modifié 1 fois.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Répondre