RSS

ST Recover 1.0

27 Mar

Bonjour !

Pour inaugurer ce nouveau blog, je vais vous présenter mon nouveau petit logiciel: ST Recover.

Vous le trouverez ici:
https://strecover.codeplex.com/

Description du projet

ST Recover permet de transférer des disquettes d’Atari ST vers un PC sous Windows, y compris les formats spéciaux tels que 800 ou 900 Ko et les disquettes endommagées ou désynchronisées, et produit des fichiers images standards de disquettes en .ST. Ensuite les fichiers images peuvent être lues par des émulateurs de ST, comme WinSTon ou Steem.


disquette ST -> lecteur de disquettes PC -> fichier image de disquette .ST

Captures d’écran

Configuration requise

  • Un PC avec un lecteur de disquettes.Interne si possible, mais un externe peut être utilisé (avec des limitations).
  • Windows.Devrait être compatible avec Windows 8,7,Vista,XP,2000,ME,98,95 et suivants.Testé avec Vista.

Installation

Il y a 4 étapes:

  1. Si vous avec un lecteur de disquettes interne (pas un lecteur externe USB),téléchargez et installez le pilote de lecteur de disquettes, à partir d’un site web tiers.C’est une option (mais nécessaire pour les formats spéciaux) et vous aurez besoin de droits d’aministrateur.
  2. Téléchargez le fichier Zip de ST Recover.
  3. Extrayez-le.
  4. Lancez ST_Recover.exe .Il n’y a pas d’installateur, donc il est portable.

Utilisation

  1. Lancez ST Recover.
  2. Insérez une disquette ST dans le lecteur du PC.
  3. Si nécessaire, sélectionnez le bon lecteur (A ou B).
  4. Cliquez sur « Read disk and save image file« .
  5. Choisissez un emplacement et le nom du fichier image à créer.
  6. Attendez.

Les particularités

1.
Normalement, Windows ne peut pas lire les formats spéciaux (tels que 800 ou 900 Ko) à cause de limitations de son pilote de lecteur de disquettes.
Malheureusement, ces formats sont très utilisés dans le monde du ST.
ST Recover profite d’un pilote gratuit qui peut lire ces formats spéciaux.

2.
Un effort a été fait pour la récupération de disquettes désynchronisées ou endommagées.

3.
Vous pouvez afficher la géographie des secteurs sur votre disquette:

Ceci représente la surface d’une face d’une vraie disquette de 800 Ko. La ligne noire à droite est une marque virtuelle de synchronisation.

Sur votre PC réel, un lecteur non-USB est nécessaire pour les formats spéciaux

Lecteur de disquettes externe (USB).Limité à:

  • 360 Ko
  • 720 Ko
Lecteur de disquettes interne.Permet tous les formats:

  • 360 Ko
  • 720 Ko
  • 400 Ko
  • 800 Ko
  • 450 Ko
  • 900 Ko

Etc..

Avec un lecteur de disquette USB, ST Recover ne peut pas lire les formats spéciaux, à cause des limitations de cette interface.

Toutefois un lecteur USB peut lire les formats normaux tels que 360 ou 720 Ko.

Analyse de la surface

Si votre disquette parait endommagée, ou juste par curiosité, cliquez sur « Analyze surface » pour voir une analyse géographique des secteurs sur la disquette.

Chaque « cercle découpé » représente une Piste (la couleur est alternée d’une piste à l’autre), et chaque morceau de ce cercle représente un Secteur, qui est un paquet de 512 octets (en général).

La ligne sur la droite représente l’emplacement de la marque virtuelle de synchronisation sur la disquette. Les secteurs sont lus dans le sens inverse des aiguilles d’une montre à partir de cette marque.

Cette représentation est calculée à partir d’une analyse temporale effectuée durant la lecture des secteurs. Donc elle représente la disposition réelle des secteurs sur la disquette (à l’exception du diamètre des cercles internes, qui est relativement plus grande en réalité).

Il est intéressant de noter que les secteurs externes occupent plus d’espace physique que les secteurs internes (en réalité ils sont environ deux fois plus grands). Ceci explique pourquoi les premiers secteurs (la piste 0 est la piste la plus externe) sont considérés comme plus sûrs que les derniers secteurs (la piste interne est la dernière) : plus de surface magnétique pour la même quantité de données.

Sur les disques-durs modernes, la surface des secteurs est (pratiquement) constante, ce qui permet de gagner 50% de secteurs en plus mais nécessite un traitement un (peu) plus complexe. Sur les cdroms, la surface/secteur est constante mais la vitesse de rotation est variable. De toutes façons bien des techniques ont changé depuis le vieux temps des disquettes, MFM a heureusement disparu, on a une surface/secteur constante, il y a plus de deux niveaux par information, etc..

Questions fréquentes

  • Le logiciel dit « No disk in drive » mais il y a bien une disquette !
    • Peut-être que le tout premier secteur, le secteur de démarrage, n’est pas lu correctement.Essayez de nouveau de lire la disquette, ça devrait marcher après quelques essais.
  • Que signifient les couleurs dans les Tables des secteurs ?
    • Blanc: pas analysé pour le moment.
    • Vert: lu (sans problème).
    • Bleu foncé: lu (avec plus d’analyse).
    • Rouge: n’a pas pu être lu du tout (peut-être endommagé physiquement), même après plusieurs essais.
  • Que se passe-t-il si un secteur ne peut pas être lu ?
    • ST Recover replacera ses données par une phrase répétitive, de façon à vous faciliter sa détection.Ça devrait être « ======== SORRY, THIS SECTOR CANNOT BE READ FROM FLOPPY DISK BY ST RECOVER. ======== », ou quelque chose de ressemblant.Dans les Tables de secteurs, ce secteur sera marqué en rouge.
  • Dans les graphes de Surface, les « cercles » ne sont pas fermés. Manque-t-il quelque chose ?
    • D’habitude, dans ce cas un secteur n’est pas facilement lu. C’est très courant avec les disquettes formatées avec certains programmes sur ST (comme Fastcopy Pro, par exemple), avec plus de 9 secteurs/piste. Le premier secteur de chaque piste n’est pas vu par le contrôleur de disquettes dans des conditions normales.Heureusement, dans la plupart des cas, ST Recover est capable de lire ces secteurs, au prix d’une lente analyse. Ces secteurs seront marqués en bleu foncé, dans les Tables de secteurs.
  • Pourquoi certains secteurs sont marqués en bleu foncé dans les Tables de secteurs, et l’analyse est très lente ?
    • Voir ci-dessus l’explication. Ces secteurs sont lus correctement, bien que lentement.

Compilation du code source

Le code a été édité et compilé avec Borland Turbo C++ 2006 Explorer, un RAD gratuit.

Il est supposé être compilable avec les versions suivantes de Borland (Embarcadero) C++ Builder. Je n’ai pas essayé car je n’ai aucun de ces RADs.

Turbo C++ 2006 Explorer était gratuit mais il semble ne plus être distribué. Il nécessitait un enregistrement et l’installation de plusieurs logiciels, tels que dot.net 1 et JSharp.

Au fait, mon code source est commenté en français.

Licence

La licence pour le code source et pour les binaires est la Ms-RL, laquelle vous permet globalement de reproduire le code, de le modifier, de le distribuer, mais vous devrez alors rendre le code source et les modifications disponibles.

Par ailleurs il est libre de brevets.
Disquettes lentes

Parfois, une disquette prend du temps à être lue.

Les raisons possibles peuvent être:

  • La disquette est désynchronisée.
  • La disquette est physiquement endommagée.Dans ce cas, des secteurs seront colorés en rouge.

Disquette désynchronisée

Ce genre de disquette prendra plus de temps à être lue, et les tables de secteurs montreront des rectangles bleus:

Les rectangles bleus indiquent des secteurs particuliers, mais bien lus. En fait, ici ces secteurs ont seulement besoin de plus de temps pour être lus, mais ils sont lus correctement (sinon la couleur serait le rouge).

Pour comprendre ce qu’est la désynchronisation, lancez une analyse de surface:

Comme vous pouvez le voir, un secteur par piste n’est pas détecté, et juste au milieu de là où il devrait être (le triangle rouge), la marque (la ligne verte) passe dedans.

Voici l’explication: la tête de lecture passe au-dessus de la piste à partir de la ligne, mais il est trop tard pour voir le début du secteur, donc le premier secteur n’est pas détecté par le test de surface.

Mais il reste possible d’essayer de lire le premier secteur au prochain tour, ça demande juste plus de temps.

Plus en détails: J’ai dû implémenter une analyse particulière de la piste, de façon à pouvoir extraire les informations du secteur (bleu). Heureusement, le pilote spécial peut extraire une piste entière. C’est une question de décodage MFM, avec (6250) octets par piste partiellement désynchronisés, etc..

Au passage, la méthode de décodage et de récupération est entièrement une question de de désynchronisation de bits MFM, ça n’a rien à voir avec la marque de synchronisation de la disquette:

La marque de synchronisation de la disquette est l’origine du problème, à cause d’un mauvais réglage du lecteur qui a formaté à l’origine la disquette, et le décodage et la resynchronisation des bits MFM est une méthode que j’utilise pour récupérer le secteur.

Si vous avez suivi l’explication, vous devriez avoir remarqué que le problème est avec le premier secteur de chaque piste. Alors pourquoi dans la table des secteurs les rectangles bleus ne sont pas tous dans la première ligne ? C’est parce que les secteurs n’ont pas été numérotés normalement durant le formatage, ils ont été décalés de manière à permettre au contrôleur du lecteur (le processeur qui s’occupe du lecteur) plus de temps pour déplacer la tête vers la piste suivante (ça prend du temps et la disquette continue à tourner) et pour lire aussi tôt que possible le prochain secteur.

Désolé si je ne suis pas assez clair, vous pourrez trouver plus d’informations sur internet à propos de comment accélérer les accès disque par le biais de l’entrelacement de secteurs.

Non testés

Il y a des formats que je n’ai pas testés:

  • Les tailles de secteur différentes de 512 (128, 256 or 1024) octets.Pour autant que je me rappelle, je n’ai pas écrit beaucoup de logique pour prendre en compte ces tailles (ce n’était pas mon but).
  • Les disquettes protégées dont le format physique est différent du format logique (indiqué dans le secteur de démarrage).Par exemple certains secteurs peuvent être numérotés non à partir de 1 mais de 40.
  • Les disquettes protégées dont les secteurs ne sont pas bien formés.Par exemple, ils peuvent être coupés au milieu juste pour tromper les programmes de copie de disquettes.
  • Les disquettes de 900 Ko. J’ai besoin de formater une nouvelle disquette de 900 Ko sur mon vieux ST puis d’essayer de la lire avec mon plutôt vieux PC de bureau.

Tout cela parce que j’ai créé cet outil pour récupérer mon ancien travail sur ST, et pas pour analyser des disquettes protégées ou anormales.

Légal

Le texte et les images de cette documentation ont des droits réservés par Christophe Bertrand sous la licence CC-BY-SA, sauf:

  • L’image de l’Atari ST est placée sous « CC-BY-2.5 — Attribution license » par Bill Bertram. Voir ici.
  • Les icônes de disquette, de disque-dur et de répertoire sont sous LGPL, et proviennent du Crystal Project.
  • L’image du PC de bureau est dans la domaine publique et a été trouvée ici.
 
1 commentaire

Publié par le 2012-03-27 dans Logiciels

 

Étiquettes : , , , , , , , ,

Une réponse à “ST Recover 1.0

  1. Arnauld

    2012-11-03 at 22:27

    Très bon utilitaire. J’ai pu récupérer correctement des données de mon ancien serveur RTC depuis un disque formaté en 800K (80 pistes / 10 secteurs par piste). Une précédente tentative avec un autre logiciel avait échoué — je ne me souviens pas du nom de ce dernier, je ne sais plus s’il était également basé sur fdrawcmd.sys ou pas …

     

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s