5071
UTILITY -> Floppy disc and tape tool
© _Public_Domain_ (2005)
 
 
 
Dir Doktor 1.1
cpc
 
 

Manual n° 1

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.

Manual n° 2

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 !


Goto Top
CPC-POWER/CPCSOFTS, programming by Kukulcan © 2007-2021 all rights reserved.
Reproduction forbidden without any express authorization. All the game titles used belong to their respective owners.
Hébergement Web, Mail et serveurs de jeux haute performance