Dir Doktor 1.1 T&J du GPA (c) 2003,2005
----------------------------------------
Dir Doktor est un logiciel dont le but est de vous aider a reconstruire le
catalogue d'une disquette lorsque ce dernier est endommage ou tout simplement
detruit. Ce genre de mesaventure semble se produire de plus en plus souvent
chez nos amis CPCistes (disquettes hors d'age, lecteurs fatigues, etc...).
L'idee de ce programme est en fait tres ancienne, et a germe dans mon esprit
lors du Byte'98, apres avoir vu Madram passer deux heures a refaire le
catalogue d'une disquette.
L'occasion faisant le laron, mon lecteur 3.1/2 ayant detruit la piste
catalogue d'une disquette de travail de "Citadelle", autre programme made in
GPA, j'ai decide de me mettre au boulot, et ai bricole ce petit programme.
Son utilisation recquerant un minimum de connaissances sur la structure
d'une disquette, je vous incite fortement a lire cette notice afin de tirer
le meilleur partie de Dir Doktor. Une fois son fonctionnement assimile, il
vous fera gagner beaucoup de temps si vous devez reparer un catalogue detruit.
Quoi de neuf avec la version 1.1 ?
**********************************
Pas grand chose, en fait. Des bugs mineurs en moins, la reconnaissance des
en-tetes de fichiers Starkos, une routine d'affichage du contenu d'un secteurs
plus rapide et l'ajout du code de la fonction "Display block" qui manquait
carrement dans la version 1.0 ! A ce propos, on ne peut pas dire qu'il y ait eu
un retour monumental sur ce soft. Seul Madram m'a a l'epoque envoye un message
avec des idees d'ameliorations. M'enfin, comme a la base, j'ai code Dir Doktor
pour mes besoins personnels, cela ne me bouleverse pas plus que cela :-).
1) Comment ca marche ?
**********************
Les fichiers presents sur une disquette sont stockes sous la forme de blocs
(un bloc est un groupe de deux secteurs).
Ces blocs sont references dans une partie speciale de la disquette, appelee
catalogue.
Sur une disquette DATA, le catalogue est situe sur les 4 premiers secteurs de
la piste 0 (secteurs &C1 a &C4).
Sur une disquette VENDOR, le catalogue est situe sur les 4 premiers secteurs
de la piste 2 (secteurs &41 a &44).
Lorsque le catalogue est detruit, tout n'est pas perdu, car les blocs
contenant les donnees des fichiers sont toujours presents sur la disquette.
Tout le probleme est de pouvoir les retrouver et les reallouer a leurs
fichiers respectifs.
* Pour les fichiers BASIC et BINAIRE, le CPC nous aide quelque peu, car il
stocke systematiquement dans le premier bloc d'un fichier une en-tete de
128 octets (le fameux header) contenant le nom du fichier, son type, son
adresse de chargement, sa longueur et son adresse d'execution.
Dir Doktor fait une analyse de tous les blocs d'une disquette pour
detecter ces fameuses en-tetes. Munis de ces informations, il determine
la longueur en secteurs de chaque fichier "retrouve", et vous laisse le
loisir d'allouer vous-meme les blocs aux fichiers.
* Pour les fichiers STARKOS. Il s'agit de fichiers ASCII ayant un en-tete
particulier (ils commencent par STK1.0). Dir Doktor les considere comme
des fichiers vide. A vous ensuite d'allouer les blocs utiles.
* Pour les fichiers ASCII, c'est bien plus complique, car ils n'ont pas
d'en-tete.
Dir Doktor recherche des chaines de caracteres dans les secteurs de la
disquette (&0A &0D, fin de ligne ASCII et &1A, fin de fichier ASCII).
La recuperation est habituellement bien plus compliquee que pour des
fichiers BASIC ou BINAIRE. Pour ce faire, Dir Doktor a une fonction
permettant de voir a l'ecran le contenu d'un secteur, ce qui permet en
general de verifier si on est en presence d'un fichier ASCII ou pas.
* Toujours plus fort, les fichiers CPM. Ils n'ont pas d'en-tete, et
correspondent a du code machine.
Pour ce type de fichier, Dir Doktor ne fait pas d'analyse, Seule la
visualisation des secteurs de la disquette vous permettra d'allouer
correctement les blocs a ce type de fichier apres plusieurs essais.
C'est bien beau de retrouver le debut d'un fichier, mais comment savoir ou
se trouvent tous ses secteurs ?
Si le fichier n'a pas ete reecrit plusieurs fois, il y a de fortes chances pour
que les blocs composant le fichier soient stockes a la suite de son en-tete.
Si ce n'est pas le cas (le fichier est dit fragmente), il faut savoir que
les blocs sont forcement "plus loin" que l'en-tete du fichier. On ne peut
pas avoir physiquement un bloc dont la position est anterieure au bloc
d'en-tete.
Une fois que les blocs ont ete realloues par vos soins, Dir Doktor vous
permet de regenerer automatiquement les secteurs du catalogue.
Si vous n'avez rien compris, ce n'est pas grave ! Apres l'habituelle
description des differents menus du programme, un exemple simple vous
permettra de vous familiariser avec Dir Doktor.
2) Les menus
************
Dans Dir Doktor, toutes les commandes se lancent avec une lettre ou un chiffre.
Elles sont systematiquement indiquees entre < > dans les menus.
2.1) Le menu general
********************
<D>iscover sectors
------------------
Analyse d'une disquette. Le programme demande d'inserer dans le
lecteur de travail la disquette a etudier, puis affiche secteur par
secteur dans une sorte de carte les informations qu'il a trouvees :
- un carre gris correspond a un secteur vide
- un carre noir correspond a un secteur contenant des donnees
- un 'H' jaune correspond a un secteur d'en-tete de fichier BINAIRE ou
- un 'S' jaune correspond a un secteur d'en-tete de fichier STARKOS
BASIC
- un 'X' gris correspond a un secteur illisible
- un 'A' bleu correspond a un secteur ou une fin de chaine ASCII a ete
detectee
- un 'E' bleu correspond a un secteur ou une fin de fichier ASCII a
ete detectee
Notez bien qu'un 'A' ou un 'E' ne correspondent pas forcement a des
donnees ASCII. Nous en reparlerons dans le menu '<A>llocate block'.
<S>ave map
----------
Permet de sauvegarder une cartographie. Cela permet de ne pas avoir a
refaire la commande <D>iscover a chaque fois que vous voulez esssayer
de nouvelles repartitions de blocs.
Il est possible de sauvegarder jusqu'a 9 cartographies differentes.
Cela permet de 'morceler' le travail de recuperation pour le cas ou
la disquette contient beaucoup de fichiers fragmentes.
Les fichiers de sauvegarde sont toujours enregistres sur la disquette
programme (celle avec Dir Doktor), par sur la disquette a reparer !
Dans la mesure du possible, il est conseille de travailler avec deux
lecteurs. Voyez la fonction '<C>hange working drive' pour plus
d'informations.
<L>oad map
----------
Chargement d'une cartographie precedemment sauvegardee.
<A>llocate blocks
-----------------
Donne acces au sous-menu permettant de definir les blocs des fichiers.
A utiliser apres avoir fait une cartographie de la disquette.
<W>rite directory
-----------------
Ecriture du 'nouveau' catalogue sur la disquette endommagee.
Apres un message de confirmation, Dir Doktor ecrira les quatre
secteurs catalogue sur la disquette de travail.
A noter que pour les fichiers ASCII et CPM, Dir Doktor n'ecrit pas
forcement le nombre exact d'enregistrements.
La methode de calcul est : nombre de blocs * 8
Cela n'a heureusement aucune incidence sur le bon chargement des
fichiers recuperes.
Important ! Si ces secteurs sont illisibles, Dir Doktor ne pourra pas
ecrire dessus. Il faut alors utiliser le programme compagnon WRITECAT
qui permet de rendre ces secteurs lisibles.
<C>hange working drive
----------------------
Bascule le lecteur de travail de A: vers B: et inversement.
Si vous avez deux lecteurs, il est preferable de les utiliser, afin
d'eviter des changement de disquette.
Le premier lecteur contiendra Dir Doktor (Program drive), et
le deuxieme la disquette a analyser/reparer (Working drive).
L'etat des lecteurs est systematiquement rappele sur le menu principal.
Dir Doktor vous donne meme le type de formatage de la derniere
disquette analysee (DATA ou VENDOR).
2.2) Allocation de blocs
************************
On accede a ce menu via la commande <A> du menu general. A travers
ses commandes, vous allez pouvoir associer des blocs aux fichiers
que Dir Doktor a trouve lors de la phase d'analyse de la disquette.
Les fichiers trouves sont affiches un par un sous la fenetre de
cartographie. Pour chaque fichier, on retrouve son adresse de
chargement, sa longueur, et, information tres utile, le nombre de
secteurs qu'il occupe.
Les touches du curseur <HAUT> et <BAS> permettent de choisir le
fichier precedent ou suivant. Les touches <GAUCHE> et <DROITE>
permettent d'aller sur le premier fichier ou le dernier.
Le symbole '#' bleu s'affiche dans la cartographie a la place du
premier secteur du fichier, afin de mieux reperer son emplacement.
<R>estore file
--------------
Alloue automatiquement les blocs necessaires a un fichier. N'allez
pas croire a un miracle, la commande se contente de choisir les
blocs contigus au bloc contenant l'en-tete du fichier.
Si une autre en-tete fait partie de ces blocs, la selection
s'arrete, et un message vous indique le nombre de secteurs restant
a allouer.
Cette commande donne de bons resultats si les fichiers ne sont pas trop
fragmentes.
Un fichier sur lequel la commande <R>estore a ete faite s'affiche
sur un fond jaune.
<U>ndo restore
--------------
Annule la commande precedente. Utile si le nombre de blocs restant
a allouer manuellement est trop important.
<D>isplay blocks
----------------
Permet de visualiser les blocs alloues a un fichier dans la
cartographie. Les blocs concernes sont affiches en bleu.
<S>elect blocks
---------------
Selection manuelle des blocs d'un fichier. La commande vous fait
basculer sur un sous-menu ou il est possible avec un curseur de se
deplacer dans la cartographie (voir sous-menu 2.3) Selectionner un
bloc).
<N>ew file
----------
Ajoute un fichier 'vide' dans la liste des fichiers. Cela permet
de creer un fichier ASCII (que Dir Doktor ne peut trouver par
lui-meme) ou un fichier CPM. La taille de ce fichier sera toujours
de 0, meme si des secteurs lui ont ete alloues.
Le programme demande de saisir d'abord le nom du fichier, puis son
extension.
<C>hange filemane
-----------------
Modifier le nom d'un fichier existant. Le but est d'eviter de se
retrouver avec des doublons dans la liste. En effet, on peut avoir
plusieurs fois le meme nom de fichier dans des en-tetes differentes.
Comment est-ce possible ? Eh bien, lorsque vous enregistrez un
fichier deux fois de suite avec le meme nom, l'AMSDOS renomme le
premier fichier en .BAK quand vous sauvez le deuxieme. Mais en fait,
il se contente de changer le nom dans le catalogue de la disquette,
et pas dans l'en-tete de l'ancien fichier !
Si vous ne changez pas le nom d'un fichier apparaissant plusieurs
fois sur une cartographie, vous vous retrouverez avec un seul
fichier dont la taille est inexacte. Il sera toujours chargeable,
mais vous aurez perdu sa 'deuxieme' version. Bref, a eviter.
<M>enu
------
Retour au menu principal
2.3) Selection manuelle de blocs
********************************
Ce sous-menu vous donne la possibilite d'allouer des blocs a un
fichier manuellement. C'est le seul moyen qui permet de regenerer
les fichiers ASCII et CPM.
Vous deplacez sur la cartographie un pointeur (symbolise par un
losange gris).
<COPY> Select block
-------------------
Allocation d'un bloc au fichier courant
<ENTER>
-------
Annulation de l'allocation
<V>iew sector datas
-------------------
Affiche le contenu du secteur courant sous la forme de deux
tableaux de 256 octets, en hexadecimal et ASCII. Les caracteres
inferieurs a 32 sont remplaces par des espaces.
Cette fonction permet de verifier si un secteur correspond a un
fichier ASCII, par exemple.
<F9>
----
Retour au menu 'Allocation de blocs'
3) Conseils d'utilisation
*************************
Toujours travailler avec une sauvegarde de votre disquette endommagee. Meme
si Dir Doktor ne pourra pas faire de degats, cela vous permettra de verifier
que seul le catalogue est abime.
Lorsque vous faites une reparation, commencez par essayer de recuperer les
fichiers avec l'option <R>estore file. Sauvegardez votre travail avant de
generer le catalogue, puis verifiez que les fichiers sont lisibles et corrects.
Ensuite, il ne vous reste plus (!) qu'a essayer de recuperer les fichiers
fragmentes.
Si un fichier a un nombre impair de secteurs, il est probable que le secteur
suivant le dernier secteur soit vide. On peut reperer ainsi facilement des
fins de fichiers.
4) Limitations de Dir Doktor
*****************************
Dir Doktor ne permet pas de 'reparer' un secteur defectueux. Il est conseille
d'utiliser dans ce cas des logiciels de copie integrale style Discology.
Le programme ne reconnait pas les disquettes avec des formats non standards.
On ne peut travailler qu'avec des disquettes DATA 40 pistes ou VENDOR 40 pistes.
Cela correspond en general a des 'disquettes de travail', les plus enclins a
s'autodetruire !
Pour les amateurs de formats speciaux, il est possible qu'a moyen terme, une
autre version de Dir Doktor permettant de travailler sur plus de secteurs et
pistes sorte. La seule contrainte est le manque de lisibilite en mode 2 d'une
cartographie de disquette...
Les menus de Dir Doktor sont en anglais... Ce genre de programme n'existant
pas a ce jour, je me suis dis que nos amis d'Outre-Rhin et d'Outre-Manche ne
seraient pas mecontents de pouvoir essayer de s'en servir.
5) Un exemple ?
***************
Afin de mieux vous aider a comprendre comment utiliser Dir Doktor, rien de
tel qu'un exemple concret !
* Formatez une disquette en DATA. Cette disquette sera appelee EXEMPLE.
* Chargez en memoire le programme "EXAMPLE.BAS", puis lancez le sur la
disquette EXEMPLE.
-> Ce programme va creer sur la disquette les fichiers suivants :
ROMBASIC.BIN
GPA.TXT
SCREEN.BIN
VECTORS.BIN
Les fichiers ROMBASIC.BIN, GPA.TXT et VECTORS.BIN sont enregistres de
facon contigue (les blocs de chaque fichiers se suivent a la
queue-leu-leu).
Le fichier SCREEN.BIN est enregistre de facon a ce qu'il soit fragmente
en deux parties.
* Chargez Dir Doktor, et faites une cartographie de la disquette EXEMPLE a
l'aide de la commande <D>iscover.
-> Dir Doktor va normalement retrouver 3 en-tetes.
1 - Piste 0 secteur &C5
2 - Piste 4 secteur &C7
3 - Piste 7 secteur &C6
* Appuyer sur <A>llocate pour associer des blocs a ces entetes.
1er fichier : ROMBASE.BIN - 33 secteurs
Appuyer sur <R>estore
-> 34 secteurs contigus sont alloues.
Faire <fleche vers le bas> pour selectionner le 2eme fichier.
2eme fichier : SCREEN.BIN - 33 secteurs
Appuyer sur <R>estore
-> 26 secteurs contigus sont alloues. Il manque 7 secteurs.
Faire <fleche vers le bas> pour selectionner le 3eme fichier.
3eme fichier : VECTORS.BIN - 4 secteurs
Appuyer sur <R>estore
-> 4 secteurs sont alloues.
En regardant la cartographie, on s'apercoit qu'a la suite du
fichier VECTORS.BIN, il y a 7 secteurs non alloues. Cela semble
correspondre a ceux qui manquent au fichier SCREEN.BIN.
Faire <fleche vers le haut> pour selectionner le 2eme fichier.
Appuyer sur <S>elect block.
Deplacer le curseur sur le premier secteur libre en piste 8 et
appuyer sur la touche <Copy> pour selectionner les blocs a
associer au fichier.
Appuyer sur <F9> pour revenir au menu Allocation de fichiers.
Pour verifier la bonne selection des blocs, appuyer sur la
touche <V>iew blocks.
* Il nous reste maintenant a retrouver le fichier ASCII GPA.TXT. Dir Doktor
n'a evidemment pas retrouve son en-tete (il n'y en a pas !), mais en
regardant la cartographie, on trouve une zone de 3 secteurs consideres
par Dir Doktor comme ASCII.
Premiere etape, il faut creer le nouveau fichier.
A partir du menu <A>llocate blocks.
Appuyer sur <N>ew file.
Filename : taper GPA puis appuyer sur <ENTER>
Extension : taper TXT puis appuyer sur <ENTER>
Si tout s'est bien passe, en faisant defiler les fichiers avec les touches
<haut> et <bas> du curseur, vous devez trouver un 4eme fichier dont la
longueur est &0000 et le nombre de secteurs &0.
Appuyer sur <S>elect blocks.
Allouer au fichier les blocs 19 et 20 (piste 4 secteurs &C3 a &C6).
Faire <F9> pour revenir au menu precedent.
Appuyer sur <M> pour revenir au menu general.
Il faut maintenant sauvegarder votre travail, des fois que vous ayez fait
des erreurs, et qu'il faille proceder a des corrections apres avoir ecrit le
catalogue.
A partir du menu principal.
Appuyer sur <S>ave map.
Choisir le 1er fichier de sauvegarde en appuyant sur la touche <0>.
Derniere etape, la generation du catalogue !
A partir du menu principal.
Appuyer sur <W>rite directory.
Une fois le catalogue genere, faire un simple CAT de la disquette.
On doit retrouver les fichiers avec les bonnes tailles.
Le seul fichier que l'on puisse veritablement verifier, c'est
l'ecran de presentation.
Charger le fichier SCREEN.BIN en &C000. Normalement, vous devez
voir du texte en mode 1 s'afficher... Si tel n'est pas le cas,
vous avez fait une erreur de selection !
tir du menu principal.
Appuyer sur <W>rite directory.
Une fois le catalogue genere, faire un simple CAT de la disquette.
On doit retrouver les fichiers avec les bonnes tailles.
Le seul fichier que l'on puisse veritablement verifier, c'est
l'ecran de presentation.
Charger le fichier SCREEN.BIN en &C000.
NOTICE TEXTE n° 2 (15.74 Ko)
Dir Doktor 1.1 T&J of GPA (c) 2003, 2005
----------------------------------------
Dir Doktor is a tool designed as an help to rebuild a crashed directory
on your precious diskettes. This kind of problem seems to be more and more
frequent for all CPC users using tree inches diskettes (tired drives ?).
This idea of this program is old. It has grown in my mind during the Byte'98
CPC meeting after having seen Madram spending two hours repairing a damaged
directory on a Targhan/Ramlaid' diskette.
A few years ago, I had the same problem, a crashed directory on a important
disk ("Citadelle", a future french adventure game). So, I definitly decided
to create this tool. When a early preview has been presented during the
amazing "Bordelik meeting '5', many people seemed to be very interested by
this program :-). In just one evening, it has saved files of three sceners
(Hello Beb, Mat & Yan !).
Dir Doktor needs a little knowledges about disk organisation, so you are
welcome to read this notice to understand how it works. You will have to
suffer my awful english...
For comments, bug(s) report or wedding project :-), write to my new E-mail
address : herve.buggosĂ free.fr
What's new in the 1.1 release ?
*******************************
Some minor bugs have been removed. The sector display routine is faster (no
more CALL &BB5A inside !). Dir Doktor now recognizes Starkos headers. And
finaly, the function "Display selected blocks" is in the code !
1) How Dir Doktor can repair a directory ?
******************************************
Files on a diskette are physically saved on blocks (a block is a group of two
sectors). These blocks are registered in a special area of the diskette named
the directory.
On a DATA disk, the directory is located on the fourth primary sectors of the
track 0 (sectors &C1 to &C4).
On a VENDOR or SYSTEM disk, the directory is located on the fourth primary
sectors of the track 2 (sectors &41 to &44).
When just a directory is destroyed, all the datas are not lost, the blocks are
still present on the diskette. The goal is to find them and to create again
files that are using these blocks.
* BASIC and BINARY files : CPC helps us because it always saves in the first
file's block a 128 bytes header. In this one, we can read important
imformations : the filename, its type, its length, its loading and
run adresses.
Dir Doktor reads all blocks to find these headers. With their informations,
it calculates the length in sectors of each file. The program can
automatically allocate blocks to the restored files (not always successfully)
or you can do this boring but necessary job by yourself.
* STARKOS files : they are ASCII files with a special header that always begins
by "STK1.0". Dir Doktor can only find this header, not the whole file. It
considers it as an empty file and names it as STFILExx.STK.
Like an ASCII file, you must find the blocks that are attached to each file.
* ASCII files : restoring this kind of file is more complicated, because they
don't have headers.
Dir Doktor looks for special ASCII string in each block (&0A &00, end of
line and &1A, end of ASCII file). If such informations are found, the
program considers that the block contains ASCII datas. Unfortunately, it is
not always the case. So, Dir Doktor can display on screen all bytes of a
sector. For an human being, it is easier to 'see' if it is ASCII datas or
binary code !
* CPM files : Theses damned ones have no header, but contain machine code. So
it is quite difficult to restore them properly if you don't know exactly
what you are looking for...
Dir Doktor has no special research facility for this kind of file, so,
your only hope is the sectors editor and patience...
When you have found the first block of a file, how can we know where are the
following ones ? When a file has been written several times, there is a risk
that its blocks are not "just behind" the first one : this phenomenum is
called fragmentation.
Fortunately, even when a file is fragmented, its blocks are obligatory 'after'
the first one (thanks Amsdos !). So, the idea is to restore in the first step
'normal' files, and in the second step the fragmented files using the free
blocks available.
If you have not understand everything, you can train yourself with an example
if the chapter 5).
2) Menus
********
All commands are called by pressing a key (letter or digit). They are always
printed in the menus between the symbols '<' and '>'.
2.1) The main menu
******************
<D>iscover sectors
------------------
Investigates the disk sectors. Program asks you for a disk in the
working drive. It displays all informations found in a kind of map.
- grey square : free sector
- black square : datas found is the sector
- yellow 'H' : BINARY or BASIC header
- yellow 'S' : STARKOS header
- grey 'X' : damaged sector, not readable
- blue 'A' : ASCII end of line string found
- blue 'E' : ASCII end of file string found
Note that a 'E' or 'A' sector does not necessarily means it is an
ASCII one. It can be machine code.
<S>ave map
----------
Save a map. If you wan to make tests and restore files one by one,
it will be useful not to loose time making sectors analysis each
time you make a try.
You can save 9 different maps. The .MAP files are always saved on
the 'program disk', not on the disk to repair ! So, it it really
interesting to work with two drives. Look at function '<C>hange
working drive' for further informations.
<L>oad map
----------
Loads in memory a saved map.
<A>llocate blocks
-----------------
Displays another menu, that help you to choose the blocks of each
files. Use it after having made a disk map.
<W>rite directory
-----------------
Writes the 'new' directory on the damaged diskette.
For ASCII or CPM files, Dir Doktor does not calculate exactly the
amount of records (always the same reason, it does not know the real
length of the file), but uses this formula : number of blocks of the
file x 8.
In all cases, it does not make trouble when you load a restored file,
even if its records number is too high.
Warning ! If one of the directory sectors is damaged, Dir Doktor will
not be able to repair it. Run first the WRITECAT.BAS program.
It formats the directory track after saving datas of its data sectors.
<C>hange working drive
----------------------
Allows you to choose the 'working drive'. If you own two drives, it is
better to define the first one as the 'Program drive' and the second one
as the 'Working drive'. Like this, you won't spend all your time
swapping diskettes !
Drives status is displayed in the main menu.
2.2) Allocate blocks menu
*************************
In this sub-menu, Dir Doktor gives you many commands helping you to make the
link between files found in the discover process and blocks.
Found files are displayed one by one under the cartography window. For each
one, Dir Doktor shows it loading address, its length, and the number of
sectors it needs (very important information).
Use arrow keys <UP> and <DOWN> to choose a file.
Use arrow keys <LEFT> and <RIGHT> to select the first or last file.
In the cartography, the blue '#' allows you to see the current file header.
Of course, for ASCII or CPM files, there is no sharp (no header !).
<R>estore file
--------------
Automatically allocates blocks neccessary for the current file.
If the file is fragmented, Dir Doktor stops when a header is found
in the choosen blocks. Then, it displays the number of missing
sectors.
So, this command works fine if the files are not fragmented.
<U>ndo restore
--------------
Cancels the previous command. It also clear the manual allocations of
blocks for the current file.
<D>isplay blocks
----------------
Shows in the window map all blocks of a restored files. They are
printed on screen with blue squares.
<S>elect block
--------------
Manually selects a block. With this command, you access another menu,
where you control a cursor in the map window (see menu 2.3).
<N>ew file
----------
Adds an 'empty' file in the file list. It is necessary to restore ASCII
or CPM files. File lenght will ALWAYS be 0, even if blocks are
associated with.
Program asks first for the filename, and its extension.
<C>hange filename
-----------------
Try to guess... It is really usefull not to have duplicate files in
the directory. How can it be possible ? When you save a program two
times, the first saved one is renamed with the .BAK extension. BUT,
this change is only made in the directory, not in the file header !
If you omit to change duplicate filenames, in the rejuvenated
directory, only one name is be displayed by the CAT command, and
the file length is be wrong. So...
<M>enu
------
Goes back to the main menu.
2.3) Manually select block
**************************
In this sub-sub-menu, Dir Doktor gives you commands helping you to make
manually the link between files found in the discover process and blocks.
Unfortunatelly, it is the only way to restore ASCII and CPM files.
On this screen, the 'working' sector is plotted by a grey lozenge in the map
window. You can move it with the arrow keys.
<COPY> Select block
-------------------
Choose a block (two sectors) for the current file.
<ENTER>
-------
Cancel previous command.
<V>iew sector datas
-------------------
Displays datas of the current sector, in two mode 2 screens. Thanks
to this function, it is easier to know if a block contains ASCII
datas.
Byte values under 32 (blank char) are replaced by spaces.
<M>enu
------
Goes back to the 'Allocate block menu'
3) Hints and tricks
*******************
Even if Dir Doktor cannot make data loss, you should ALWAYS work with a backup
copy of a damaged diskette. It gives you the possibility to verify that only
the diskette directory is destroyed...
When you start a repair procedure, try first to restore files using the
'<R>estore file' option. Save your work before to write the new catalog,
then verify that all rejuvenated files are correct.
After this first step, try to restore the fragmented files one by one.
If a file has an uneven number of sectors, and the next sector is empty,
there is a really good chance that the block is the end of the file.
4) Dir Doktor lakes...
***********************
Dir Doktor cannot repair damaged sectors. Try to make a copy of your broken
disk with backup tools like Discology or Hercule.
It doesn't recognize non standard formats. You can only use it with DATA,
VENDOR or SYSTEM diskettes (40 tracks).
Maybe in a distant future, I could release another version of the program.
The main problem is the bad legibility of the window map in MODE 2...
5) Let's try with an example !
******************************
a) Prepare a example disk
-----------------------
* Format a diskette (DATA format) and label it EXAMPLE.
* Load in memory the program EXAMPLE.BAS, then launch it with the EXAMPLE
disk in the drive.
-> This program creates the following deleted files :
ROMBASIC.BIN
GPA.TXT
SCREEN.BIN
VECTORS.BIN
Files ROMBASIC.BIN, GPA.TXT and VECTORS are saved normally.
File SCREEN.BIN is saved in a way it has fragmented blocks.
b) Diskette analysis
-----------------
* Load Dir Doktor, make a disk Analysis with the command <D>iscover.
-> Dir Doktor finds three headers :
1 - track 0, sector &C5
2 - track 4, sector &C7
3 - track 7, sector &C5
c) Restore binary files
--------------------
* Choose <A>llocate to choose blocks for these headers.
First file : ROMBASE - 33 sectors
Choose <R>estore file option
-> 17 blocks are selected (34 sectors).
Push <Down> key to display the second file informations.
Second file : SCREEN.BIN - 33 sectors
Choose <R>estore file option
Only 26 sectors are allocated. Seven sectors are missing.
Yes, the file is fragmented !
Push <Down> key to display the third file informations.
Third file : VECTORS.BIN - 4 sectors
Choose <R>estore file option
-> 2 blocks are selected (4 sectors).
Studying the map window, you can notice that after the file VECTORS.BIN, there
is 7 sectors unallocated. Well, it might be the one we needs for the file
SCREEN.BIN, don't you think so ? :-)
Push <Up> key to display the second file informations.
Choose <S>elect block option.
Move the cursor on the first free sector on track 8 and push the
<COPY> key to associate the four blocks to the SCREEN.BIN file.
Push <M>enu key to come back to the Allocate menu.
To verify your work, choose the <D>isplay block option.
d) Restore the ASCII file
----------------------
We must now restore the ASCII file GPA.TXT. Of course, Dir Doktor has
not found its header (no header in ASCII files, remenber !). But, looking
at the window map, there is a little area of 3 sectors considered by
Dir Doktor as ASCII datas.
First step, we must create the new file.
In the menu <A>llocate blocks :
Choose <N>ew file option.
Filename : type GPA then press <ENTER>
Extension : type TXT then press <ENTER>
If you have done it right, you shoud find a new file in the list in fourth
position.
Push <S>elect block
Allocate the two blocks to the file (track 4, sector &C3 to &C6).
Push <M> twice to go back to the main menu.
e) Save the map
------------
Now, you must save your work before to generate the directory. If you have
made some errors, you can load the saved map and change your selections
easily.
In the main menu :
Choose <S>ave map option.
Choose the first location pushing the key <0>.
f) Generate the directory
----------------------
In the main menu :
Choose <W>rite directory option.
When the catalog is written on the working diskette, just type the Basic
CAT command. You should find four files.
Unfortunately, we can just verify one file, the screen. Load it in &C000.
You should normaly see MODE 1 text. If the CPC displays stranges things,
you have made an error !
Finished ! Of course, if your crashed diskette if full of fragmented ASCII and
CPM files, it will be more complicated. But, in most cases, with little
perseverance, it is possible to find back files !