<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.amstrad-cpc.net/index.php?action=history&amp;feed=atom&amp;title=Dir_Doktor</id>
	<title>Dir Doktor - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.amstrad-cpc.net/index.php?action=history&amp;feed=atom&amp;title=Dir_Doktor"/>
	<link rel="alternate" type="text/html" href="https://wiki.amstrad-cpc.net/index.php?title=Dir_Doktor&amp;action=history"/>
	<updated>2026-09-04T07:47:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.amstrad-cpc.net/index.php?title=Dir_Doktor&amp;diff=27930&amp;oldid=prev</id>
		<title>PulkoMandy: Category:Applications</title>
		<link rel="alternate" type="text/html" href="https://wiki.amstrad-cpc.net/index.php?title=Dir_Doktor&amp;diff=27930&amp;oldid=prev"/>
		<updated>2007-01-03T09:11:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/wiki/Category:Applications&quot; title=&quot;Category:Applications&quot;&gt;Category:Applications&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:11, 3 January 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Applications]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:DIRDOKTOR screen shot 1.JPG|right|thumb|250px|Disk Doktor]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:DIRDOKTOR screen shot 1.JPG|right|thumb|250px|Disk Doktor]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:DIRDOKTOR screen shot 2.JPG|right|thumb|250px|Example view]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:DIRDOKTOR screen shot 2.JPG|right|thumb|250px|Example view]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>PulkoMandy</name></author>
	</entry>
	<entry>
		<id>https://wiki.amstrad-cpc.net/index.php?title=Dir_Doktor&amp;diff=27929&amp;oldid=prev</id>
		<title>PulkoMandy: Disk Doktor moved to Dir Doktor: The screenshots clearly shows that the name of this prog is &quot;Dir Doktor&quot; :)</title>
		<link rel="alternate" type="text/html" href="https://wiki.amstrad-cpc.net/index.php?title=Dir_Doktor&amp;diff=27929&amp;oldid=prev"/>
		<updated>2007-01-03T09:10:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/wiki/Disk_Doktor&quot; class=&quot;mw-redirect&quot; title=&quot;Disk Doktor&quot;&gt;Disk Doktor&lt;/a&gt; moved to &lt;a href=&quot;/wiki/Dir_Doktor&quot; title=&quot;Dir Doktor&quot;&gt;Dir Doktor&lt;/a&gt;: The screenshots clearly shows that the name of this prog is &amp;quot;Dir Doktor&amp;quot; :)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:10, 3 January 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>PulkoMandy</name></author>
	</entry>
	<entry>
		<id>https://wiki.amstrad-cpc.net/index.php?title=Dir_Doktor&amp;diff=27928&amp;oldid=prev</id>
		<title>Ygdrazil at 07:55, 25 September 2006</title>
		<link rel="alternate" type="text/html" href="https://wiki.amstrad-cpc.net/index.php?title=Dir_Doktor&amp;diff=27928&amp;oldid=prev"/>
		<updated>2006-09-25T07:55:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:55, 25 September 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Image:DIRDOKTOR screen shot 1.JPG|right|thumb|250px|Disk Doktor]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Image:DIRDOKTOR screen shot 2.JPG|right|thumb|250px|Example view]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Copied from readme.txt on destribution disc&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Copied from readme.txt on destribution disc&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ygdrazil</name></author>
	</entry>
	<entry>
		<id>https://wiki.amstrad-cpc.net/index.php?title=Dir_Doktor&amp;diff=27927&amp;oldid=prev</id>
		<title>Ygdrazil at 07:50, 25 September 2006</title>
		<link rel="alternate" type="text/html" href="https://wiki.amstrad-cpc.net/index.php?title=Dir_Doktor&amp;diff=27927&amp;oldid=prev"/>
		<updated>2006-09-25T07:50:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:50, 25 September 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;Copied from readme.txt on destribution disc&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Dir Doktor 1.1 T&amp;amp;J of GPA (c) 2003, 2005&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Dir Doktor 1.1 T&amp;amp;J of GPA (c) 2003, 2005&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ygdrazil</name></author>
	</entry>
	<entry>
		<id>https://wiki.amstrad-cpc.net/index.php?title=Dir_Doktor&amp;diff=27926&amp;oldid=prev</id>
		<title>Ygdrazil at 07:50, 25 September 2006</title>
		<link rel="alternate" type="text/html" href="https://wiki.amstrad-cpc.net/index.php?title=Dir_Doktor&amp;diff=27926&amp;oldid=prev"/>
		<updated>2006-09-25T07:50:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Dir Doktor 1.1 T&amp;amp;J of GPA (c) 2003, 2005&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Dir Doktor is a tool designed as an help to rebuild a crashed directory&lt;br /&gt;
on your precious diskettes. This kind of problem seems to be more and more&lt;br /&gt;
frequent for all CPC users using tree inches diskettes (tired drives ?).&lt;br /&gt;
&lt;br /&gt;
This idea of this program is old. It has grown in my mind during the Byte&amp;#039;98&lt;br /&gt;
CPC meeting after having seen Madram spending two hours repairing a damaged &lt;br /&gt;
directory on a Targhan/Ramlaid&amp;#039; diskette.&lt;br /&gt;
&lt;br /&gt;
A few years ago, I had the same problem, a crashed directory on a important&lt;br /&gt;
disk (&amp;quot;Citadelle&amp;quot;, a future french adventure game). So, I definitly decided &lt;br /&gt;
to create this tool. When a early preview has been presented during the&lt;br /&gt;
amazing &amp;quot;Bordelik meeting &amp;#039;5&amp;#039;, many people seemed to be very interested by&lt;br /&gt;
this program :-). In just one evening, it has saved files of three sceners&lt;br /&gt;
(Hello Beb, Mat &amp;amp; Yan !).&lt;br /&gt;
&lt;br /&gt;
Dir Doktor needs a little knowledges about disk organisation, so you are&lt;br /&gt;
welcome to read this notice to understand how it works. You will have to&lt;br /&gt;
suffer my awful english... &lt;br /&gt;
&lt;br /&gt;
For comments, bug(s) report or wedding project :-), write to my new E-mail&lt;br /&gt;
address : herve.buggos@free.fr&lt;br /&gt;
&lt;br /&gt;
== What&amp;#039;s new in the 1.1 release ? ==&lt;br /&gt;
&lt;br /&gt;
Some minor bugs have been removed. The sector display routine is faster (no&lt;br /&gt;
more CALL &amp;amp;BB5A inside !). Dir Doktor now recognizes Starkos headers. And&lt;br /&gt;
finaly, the function &amp;quot;Display selected blocks&amp;quot; is in the code !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How Dir Doktor can repair a directory ? ==&lt;br /&gt;
&lt;br /&gt;
Files on a diskette are physically saved on blocks (a block is a group of two&lt;br /&gt;
sectors). These blocks are registered in a special area of the diskette named&lt;br /&gt;
the directory.&lt;br /&gt;
&lt;br /&gt;
On a DATA disk, the directory is located on the fourth primary sectors of the&lt;br /&gt;
track 0 (sectors &amp;amp;C1 to &amp;amp;C4).&lt;br /&gt;
&lt;br /&gt;
On a VENDOR or SYSTEM disk, the directory is located on the fourth primary&lt;br /&gt;
sectors of the track 2 (sectors &amp;amp;41 to &amp;amp;44).&lt;br /&gt;
&lt;br /&gt;
When just a directory is destroyed, all the datas are not lost, the blocks are &lt;br /&gt;
still present on the diskette. The goal is to find them and to create again &lt;br /&gt;
files that are using these blocks.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;BASIC and BINARY files&amp;#039;&amp;#039;&amp;#039; : CPC helps us because it always saves in the first&lt;br /&gt;
file&amp;#039;s block a 128 bytes header. In this one, we can read important &lt;br /&gt;
imformations :  the filename, its type, its length, its loading and&lt;br /&gt;
run adresses.&lt;br /&gt;
&lt;br /&gt;
Dir Doktor reads all blocks to find these headers. With their informations,&lt;br /&gt;
it calculates the length in sectors of each file. The program can &lt;br /&gt;
automatically allocate blocks to the restored files (not always successfully)&lt;br /&gt;
or you can do this boring but necessary job by yourself.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;STARKOS files&amp;#039;&amp;#039;&amp;#039; : they are ASCII files with a special header that always begins&lt;br /&gt;
by &amp;quot;STK1.0&amp;quot;. Dir Doktor can only find this header, not the whole file. It&lt;br /&gt;
considers it as an empty file and names it as STFILExx.STK.&lt;br /&gt;
Like an ASCII file, you must find the  blocks that are attached to each file.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ASCII files&amp;#039;&amp;#039;&amp;#039; : restoring this kind of file is more complicated, because they&lt;br /&gt;
don&amp;#039;t have headers.&lt;br /&gt;
&lt;br /&gt;
Dir Doktor looks for special ASCII string in each block (&amp;amp;0A &amp;amp;00, end of&lt;br /&gt;
line and &amp;amp;1A, end of ASCII file). If such informations are found, the&lt;br /&gt;
program considers that the block contains ASCII datas. Unfortunately, it is&lt;br /&gt;
not always the case. So, Dir Doktor can display on screen all bytes of a&lt;br /&gt;
sector. For an human being, it is easier to &amp;#039;see&amp;#039; if it is ASCII datas or&lt;br /&gt;
binary code !&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPM files&amp;#039;&amp;#039;&amp;#039; : Theses damned ones have no header, but contain machine code. So&lt;br /&gt;
it is quite difficult to restore them properly if you don&amp;#039;t know exactly&lt;br /&gt;
what you are looking for...&lt;br /&gt;
&lt;br /&gt;
Dir Doktor has no special research facility for this kind of file, so, &lt;br /&gt;
your only hope is the sectors editor and patience...&lt;br /&gt;
&lt;br /&gt;
When you have found the first block of a file, how can we know where are the&lt;br /&gt;
following ones ? When a file has been written several times, there is a risk&lt;br /&gt;
that its blocks are not &amp;quot;just behind&amp;quot; the first one : this phenomenum is &lt;br /&gt;
called fragmentation.&lt;br /&gt;
&lt;br /&gt;
Fortunately, even when a file is fragmented, its blocks are obligatory &amp;#039;after&amp;#039;&lt;br /&gt;
the first one (thanks Amsdos !). So, the idea is to restore in the first step &lt;br /&gt;
&amp;#039;normal&amp;#039; files, and in the second step the fragmented files using the free &lt;br /&gt;
blocks available.&lt;br /&gt;
&lt;br /&gt;
If you have not understand everything, you can train yourself with an example&lt;br /&gt;
if the chapter 5).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Menus ==&lt;br /&gt;
&lt;br /&gt;
All commands are called by pressing a key (letter or digit). They are always &lt;br /&gt;
printed in the menus between the symbols &amp;#039;&amp;lt;&amp;#039; and &amp;#039;&amp;gt;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
== The main menu ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;D&amp;gt;iscover sectors&lt;br /&gt;
&lt;br /&gt;
Investigates the disk sectors. Program asks you for a disk in the&lt;br /&gt;
working drive. It displays all informations found in a kind of map.&lt;br /&gt;
&lt;br /&gt;
* grey square  : free sector&lt;br /&gt;
* black square : datas found is the sector&lt;br /&gt;
* yellow &amp;#039;H&amp;#039;   : BINARY or BASIC header&lt;br /&gt;
* yellow &amp;#039;S&amp;#039;   : STARKOS header&lt;br /&gt;
* grey &amp;#039;X&amp;#039;     : damaged sector, not readable&lt;br /&gt;
* blue &amp;#039;A&amp;#039;     : ASCII end of line string found&lt;br /&gt;
* blue &amp;#039;E&amp;#039;     : ASCII end of file string found&lt;br /&gt;
&lt;br /&gt;
Note that a &amp;quot;E&amp;quot; or &amp;quot;A&amp;quot; sector does not necessarily means it is an&lt;br /&gt;
ASCII one.&lt;br /&gt;
&lt;br /&gt;
It can be machine code.&lt;br /&gt;
&lt;br /&gt;
[S]ave map&lt;br /&gt;
&lt;br /&gt;
Save a map. If you wan to make tests and restore files one by one,&lt;br /&gt;
it will be useful not to loose time making sectors analysis each &lt;br /&gt;
time you make a try.&lt;br /&gt;
&lt;br /&gt;
You can save 9 different maps. The .MAP files are always saved on&lt;br /&gt;
the &amp;#039;program disk&amp;#039;, not on the disk to repair ! So, it it really&lt;br /&gt;
interesting to work with two drives. Look at function &amp;#039;&amp;lt;C&amp;gt;hange&lt;br /&gt;
working drive&amp;#039; for further informations.&lt;br /&gt;
&lt;br /&gt;
[L]oad map&lt;br /&gt;
&lt;br /&gt;
Loads in memory a saved map.&lt;br /&gt;
&lt;br /&gt;
[A]llocate blocks&lt;br /&gt;
&lt;br /&gt;
Displays another menu, that help you to choose the blocks of each&lt;br /&gt;
files. Use it after having made a disk map.&lt;br /&gt;
&lt;br /&gt;
[W]rite directory&lt;br /&gt;
&lt;br /&gt;
Writes the &amp;#039;new&amp;#039; directory on the damaged diskette.&lt;br /&gt;
&lt;br /&gt;
For ASCII or CPM files, Dir Doktor does not calculate exactly the&lt;br /&gt;
amount of records (always the same reason, it does not know the real&lt;br /&gt;
length of the file), but uses this formula : number of blocks of the&lt;br /&gt;
file x 8.&lt;br /&gt;
In all cases, it does not make trouble when you load a restored file,&lt;br /&gt;
even if its records number is too high.     &lt;br /&gt;
&lt;br /&gt;
Warning ! If one of the directory sectors is damaged, Dir Doktor will&lt;br /&gt;
not be able to repair it. Run first the WRITECAT.BAS program. &lt;br /&gt;
It formats the directory track after saving datas of its data sectors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[C]hange working drive&lt;br /&gt;
&lt;br /&gt;
Allows you to choose the &amp;#039;working drive&amp;#039;. If you own two drives, it is&lt;br /&gt;
better to define the first one as the &amp;#039;Program drive&amp;#039; and the second one&lt;br /&gt;
as the &amp;#039;Working drive&amp;#039;. Like this, you won&amp;#039;t spend all your time&lt;br /&gt;
swapping diskettes !&lt;br /&gt;
        &lt;br /&gt;
Drives status is displayed in the main menu. &lt;br /&gt;
&lt;br /&gt;
== Allocate blocks menu ==&lt;br /&gt;
&lt;br /&gt;
In this sub-menu, Dir Doktor gives you many commands helping you to make the&lt;br /&gt;
link between files found in the discover process and blocks.&lt;br /&gt;
&lt;br /&gt;
Found files are displayed one by one under the cartography window. For each&lt;br /&gt;
one, Dir Doktor shows it loading address, its length, and the number of&lt;br /&gt;
sectors it needs (very important information).&lt;br /&gt;
&lt;br /&gt;
Use arrow keys [UP] and [DOWN] to choose a file. &lt;br /&gt;
Use arrow keys [LEFT] and [RIGHT] to select the first or last file.&lt;br /&gt;
&lt;br /&gt;
In the cartography, the blue &amp;#039;#&amp;#039; allows you to see the current file header.&lt;br /&gt;
Of course, for ASCII or CPM files, there is no sharp (no header !).&lt;br /&gt;
&lt;br /&gt;
[R]estore file&lt;br /&gt;
&lt;br /&gt;
Automatically allocates blocks neccessary for the current file. &lt;br /&gt;
If the file is fragmented, Dir Doktor  stops when a header is found&lt;br /&gt;
in the choosen blocks. Then, it displays the number of missing&lt;br /&gt;
sectors.&lt;br /&gt;
&lt;br /&gt;
So, this command works fine if the files are not fragmented.&lt;br /&gt;
&lt;br /&gt;
[U]ndo restore&lt;br /&gt;
&lt;br /&gt;
Cancels the previous command. It also clear the manual allocations of&lt;br /&gt;
blocks for the current file.&lt;br /&gt;
&lt;br /&gt;
[D]isplay blocks&lt;br /&gt;
&lt;br /&gt;
Shows in the window map all blocks of a restored files. They are&lt;br /&gt;
printed on screen with blue squares.&lt;br /&gt;
&lt;br /&gt;
[S]elect block&lt;br /&gt;
&lt;br /&gt;
Manually selects a block. With this command, you access another menu,&lt;br /&gt;
where you control a cursor in the map window (see menu 2.3).&lt;br /&gt;
&lt;br /&gt;
[N]ew file&lt;br /&gt;
&lt;br /&gt;
Adds an &amp;#039;empty&amp;#039; file in the file list. It is necessary to restore ASCII&lt;br /&gt;
or CPM files. File lenght will ALWAYS be 0, even if blocks are &lt;br /&gt;
associated with.&lt;br /&gt;
Program asks first for the filename, and its extension.&lt;br /&gt;
&lt;br /&gt;
[C]hange filename&lt;br /&gt;
&lt;br /&gt;
Try to guess... It is really usefull not to have duplicate files in&lt;br /&gt;
the directory. How can it be possible ? When you save a program two&lt;br /&gt;
times, the first saved one is renamed with the .BAK extension. BUT,&lt;br /&gt;
this change is only made in the directory, not in the file header !&lt;br /&gt;
&lt;br /&gt;
If you omit to change duplicate filenames, in the rejuvenated &lt;br /&gt;
directory, only one name is be displayed by the CAT command, and&lt;br /&gt;
the file length is be wrong. So...&lt;br /&gt;
&lt;br /&gt;
[M]enu&lt;br /&gt;
&lt;br /&gt;
Goes back to the main menu.&lt;br /&gt;
&lt;br /&gt;
== Manually select block ==&lt;br /&gt;
&lt;br /&gt;
In this sub-sub-menu, Dir Doktor gives you commands helping you to make &lt;br /&gt;
manually the link between files found in the discover process and blocks.&lt;br /&gt;
Unfortunatelly, it is the only way to restore ASCII and CPM files.&lt;br /&gt;
&lt;br /&gt;
On this screen, the &amp;#039;working&amp;#039; sector is plotted by a grey lozenge in the map&lt;br /&gt;
window. You can move it with the arrow keys.&lt;br /&gt;
        &lt;br /&gt;
[COPY] Select block&lt;br /&gt;
&lt;br /&gt;
Choose a block (two sectors) for the current file.&lt;br /&gt;
&lt;br /&gt;
[ENTER]&lt;br /&gt;
&lt;br /&gt;
Cancel previous command.&lt;br /&gt;
&lt;br /&gt;
[V]iew sector datas&lt;br /&gt;
&lt;br /&gt;
Displays datas of the current sector, in two mode 2 screens. Thanks&lt;br /&gt;
to this function, it is easier to know if a block contains ASCII&lt;br /&gt;
datas.&lt;br /&gt;
Byte values under 32 (blank char) are replaced by spaces.&lt;br /&gt;
&lt;br /&gt;
[M]enu&lt;br /&gt;
&lt;br /&gt;
Goes back to the &amp;#039;Allocate block menu&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Hints and tricks ==&lt;br /&gt;
&lt;br /&gt;
Even if Dir Doktor cannot make data loss, you should ALWAYS work with a backup&lt;br /&gt;
copy of a damaged diskette. It gives you the possibility to verify that only&lt;br /&gt;
the diskette directory is destroyed...&lt;br /&gt;
&lt;br /&gt;
When you start a repair procedure, try first to restore files using the&lt;br /&gt;
&amp;#039;[R]estore file&amp;#039; option. Save your work before to write the new catalog,&lt;br /&gt;
then verify that all rejuvenated files are correct.&lt;br /&gt;
After this first step, try to restore the fragmented files one by one.&lt;br /&gt;
&lt;br /&gt;
If a file has an uneven number of sectors, and the next sector is empty,&lt;br /&gt;
there is a really good chance that the block is the end of the file.&lt;br /&gt;
&lt;br /&gt;
== Dir Doktor lakes... ==&lt;br /&gt;
&lt;br /&gt;
Dir Doktor cannot repair damaged sectors. Try to make a copy of your broken&lt;br /&gt;
disk with backup tools like Discology or Hercule.&lt;br /&gt;
&lt;br /&gt;
It doesn&amp;#039;t recognize non standard formats. You can only use it with DATA,&lt;br /&gt;
VENDOR or SYSTEM diskettes (40 tracks).&lt;br /&gt;
 &lt;br /&gt;
Maybe in a distant future, I could release another version of the program.&lt;br /&gt;
The main problem is the bad legibility of the window map in MODE 2...&lt;br /&gt;
&lt;br /&gt;
== Let&amp;#039;s try with an example ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare a example disk ===&lt;br /&gt;
&lt;br /&gt;
Format a diskette (DATA format) and label it EXAMPLE.&lt;br /&gt;
&lt;br /&gt;
Load in memory the program EXAMPLE.BAS, then launch it with the EXAMPLE&lt;br /&gt;
disk in the drive.&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; This program creates the following deleted files :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        ROMBASIC.BIN&lt;br /&gt;
        GPA.TXT&lt;br /&gt;
        SCREEN.BIN&lt;br /&gt;
        VECTORS.BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files ROMBASIC.BIN, GPA.TXT and VECTORS are saved normally.&lt;br /&gt;
&lt;br /&gt;
File SCREEN.BIN is saved in a way it has fragmented blocks. &lt;br /&gt;
&lt;br /&gt;
=== Diskette analysis ===&lt;br /&gt;
&lt;br /&gt;
Load Dir Doktor, make a disk Analysis with the command &amp;lt;D&amp;gt;iscover.&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Dir Doktor finds three headers :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 - track 0, sector &amp;amp;C5&lt;br /&gt;
2 - track 4, sector &amp;amp;C7&lt;br /&gt;
3 - track 7, sector &amp;amp;C5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Restore binary files ===&lt;br /&gt;
&lt;br /&gt;
Choose [A]llocate to choose blocks for these headers.&lt;br /&gt;
&lt;br /&gt;
First file : ROMBASE - 33 sectors&lt;br /&gt;
&lt;br /&gt;
Choose [R]estore file option&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; 17 blocks are selected (34 sectors).&lt;br /&gt;
        &lt;br /&gt;
Push [Down] key to display the second file informations.&lt;br /&gt;
&lt;br /&gt;
Second file : SCREEN.BIN - 33 sectors&lt;br /&gt;
&lt;br /&gt;
Choose [R]estore file option&lt;br /&gt;
Only 26 sectors are allocated. Seven sectors are missing. &lt;br /&gt;
Yes, the file is fragmented !&lt;br /&gt;
&lt;br /&gt;
Push [Down] key to display the third file informations.&lt;br /&gt;
&lt;br /&gt;
Third file : VECTORS.BIN - 4 sectors&lt;br /&gt;
        &lt;br /&gt;
Choose [R]estore file option&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; 2 blocks are selected (4 sectors).&lt;br /&gt;
&lt;br /&gt;
Studying the map window, you can notice that after the file VECTORS.BIN, there&lt;br /&gt;
is 7 sectors unallocated. Well, it might be the one we needs for the file&lt;br /&gt;
SCREEN.BIN, don&amp;#039;t you think so ? :-)&lt;br /&gt;
&lt;br /&gt;
Push [Up] key to display the second file informations.&lt;br /&gt;
&lt;br /&gt;
Choose [S]elect block option.&lt;br /&gt;
&lt;br /&gt;
Move the cursor on the first free sector on track 8 and push the&lt;br /&gt;
[COPY] key to associate the four blocks to the SCREEN.BIN file.&lt;br /&gt;
&lt;br /&gt;
Push [M]enu key to come back to the Allocate menu.&lt;br /&gt;
&lt;br /&gt;
To verify your work, choose the [D]isplay block option.&lt;br /&gt;
&lt;br /&gt;
=== Restore the ASCII file ===&lt;br /&gt;
&lt;br /&gt;
We must now restore the ASCII file GPA.TXT. Of course, Dir Doktor has&lt;br /&gt;
not found its header (no header in ASCII files, remenber !). But, looking&lt;br /&gt;
at the window map, there is a little area of 3 sectors considered by&lt;br /&gt;
Dir Doktor as ASCII datas. &lt;br /&gt;
&lt;br /&gt;
First step, we must create the new file.&lt;br /&gt;
&lt;br /&gt;
In the menu [A]llocate blocks :&lt;br /&gt;
&lt;br /&gt;
Choose [N]ew file option.&lt;br /&gt;
&lt;br /&gt;
Filename  : type GPA then press &amp;lt;ENTER&amp;gt;&lt;br /&gt;
Extension : type TXT then press &amp;lt;ENTER&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have done it right, you shoud find a new file in the list in fourth&lt;br /&gt;
position. &lt;br /&gt;
&lt;br /&gt;
Push [S]elect block&lt;br /&gt;
&lt;br /&gt;
Allocate the two blocks to the file (track 4, sector &amp;amp;C3 to &amp;amp;C6).&lt;br /&gt;
&lt;br /&gt;
Push [M] twice to go back to the main menu.&lt;br /&gt;
&lt;br /&gt;
=== Save the map ===&lt;br /&gt;
&lt;br /&gt;
Now, you must save your work before to generate the directory. If you have&lt;br /&gt;
made some errors, you can load the saved map and change your selections&lt;br /&gt;
easily.&lt;br /&gt;
&lt;br /&gt;
In the main menu :&lt;br /&gt;
&lt;br /&gt;
Choose [S]ave map option.&lt;br /&gt;
&lt;br /&gt;
Choose the first location pushing the key [0].&lt;br /&gt;
&lt;br /&gt;
=== Generate the directory ===&lt;br /&gt;
&lt;br /&gt;
In the main menu :&lt;br /&gt;
&lt;br /&gt;
Choose [W]rite directory option.&lt;br /&gt;
&lt;br /&gt;
When the catalog is written on the working diskette, just type the Basic&lt;br /&gt;
CAT command. You should find four files.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, we can just verify one file, the screen. Load it in &amp;amp;C000.&lt;br /&gt;
You should normaly see MODE 1 text. If the CPC displays stranges things,&lt;br /&gt;
you have made an error !&lt;br /&gt;
&lt;br /&gt;
Finished ! Of course, if your crashed diskette if full of fragmented ASCII and&lt;br /&gt;
CPM files, it will be more complicated. But, in most cases, with little &lt;br /&gt;
perseverance, it is possible to find back files !&lt;/div&gt;</summary>
		<author><name>Ygdrazil</name></author>
	</entry>
</feed>