home *** CD-ROM | disk | FTP | other *** search
- .he A Terminal Session With Damnspot
- A TERMINAL SESSION WITH DAMNSPOT
- Version 2.0
-
-
- GENERAL
-
- Thi≤ i≤ thσ annotateΣ outpu⌠ oµ ß sessioε spen⌠ witΦ DAMNSPO╘ (DS⌐ 2.░ anΣ tw∩ ì
- utilit∙ programs¼á S─ (Supe≥ Directory⌐ anΣ DU▓ (Disδ Universa∞ Utility)«á I⌠ ì
- illustrate≤á mos⌠á oµá thσá feature≤ oµ D╙ anΣ thσá resultan⌠á effec⌠á oεá thσ ì
- director∙ anΣ disδ ma≡ oµ thσ disδ tested«á D╙ outpu⌠ ma∙ diffe≥ slightl∙á iε ì
- late≥ versions.
-
- Thσ examplσ i≤ fa≥ morσ complicateΣ thaε anythinτ yo⌡ arσ liablσ t∩ encounter¼ ì
- s∩ don'⌠ bσ frighteneΣ b∙ it≤ length«á Notσ tha⌠ m∙ Kaypr∩ I╔ disδ drive≤ arσ ì
- no⌠á a≤ crumm∙ a≤ thσ examplσ woulΣ indicatσ (eveε thougΦ drivσ ┬ sound≤á likσ ì
- datßá i≤á beinτá engraveΣ witΦ ß stonσ chisel)«á Thσá baΣá blocks¼á witΦá thσ ì
- exceptioε oµ one¼ arσ beinτ fakeΣ b∙ software.
-
-
- LEGEND
-
- Oncσ therσ liveΣ aε ugl∙ froτ anΣ ß beautifu∞ princes≤ iε ß lanΣ beyonΣ thσ .« ì
- (Sorr∙ - wronτ legend)
-
- Let's try that again.
-
- Line≤ beginninτ <S╛ appeareΣ oε thσ screeε durinτ ß termina∞ sessioε involvinτ ì
- DAMNSPOT¼á SD¼á anΣá DU2«á Thσ <S╛ prefixeΣ wa≤ addeΣ witΦ aε edito≥ a⌠ whicΦ ì
- time some superfluous lines were deleted.
-
- Comments¼á usuall∙á introducinτ anΣ explaininτ thσ nex⌠ portioε oµ thσá screeε ì
- display¼ havσ n∩ prefi° anΣ arσ encloseΣ betweeε row≤ oµ asterisks.
-
- Blank lines have been freely added or deleted to improve the readability.
-
-
- INFORMATION DISPLAYS
-
- A≤á D╙ cycle≤ througΦ thσ disδ block≤ i⌠ display≤ aε informatioεá messagσá fo≥ ì
- each«á Thesσá message≤ overwritσ eacΦ othe≥ oε thσ displa∙ s∩ a⌠ an∙ timσ yo⌡ ì
- see only the last.
-
-
- SD AND DU2
-
- Thesσá tw∩ utilitie≤ havσ beeε useΣ botΦ beforσ anΣ afte≥ thσ Damnspo⌠ ruεá iε ì
- order to show the state of the directory and disk allocation map.
- .paè******************************************************************************
- Thi≤á i≤á thσá origina∞ disδ allocatioε ma≡ fo≥ thσ tes⌠á disk«á I⌠á i≤á ver∙ ì
- simple¼áá al∞á file≤á beinτá contiguous¼á block≤á iεá order¼á anΣá freσá spacσ ì
- consolidateΣá int∩ onσ areß a⌠ thσ enΣ oµ thσ disk«á Obviousl∙ thσ resul⌠á oµ ì
- pipping files to an originally blank disk.
- ******************************************************************************
-
- <S> B0>du2
- <S>
- <S> DU2 - Disk Utility II, Version 1.1
- <S> Type ? for Help
- <S>
- <S> DU2 B0? m
- <S> 04-09 00 SAME .COM 00 : 0A-19 00 DSUPDATE.PAS 00
- <S> 1A-1A 00 DSUPDATE.PAS 01 : 1B-22 00 PIP .COM 00
- <S> 23-23 00 DS .LTP 00 : 24-33 00 DS .COM 00
- <S> 34-40 00 DS .COM 01 : 41-44 00 SD .COM 00
- <S> 45-4F 00 DS .PAS 00 : 50-50 00 BOX .PAS 00
- <S> 51-56 00 DAMNSPOT.HLP 00 : 57-5E 00 VF .COM 00
- <S> 5F-66 00 DSMISC .PAS 00 : 67-70 00 DU2 .COM 00
- <S> 71-78 00 DSSPEC .PAS 00 : 79-7B 00 DSSYS .PAS 00
- <S> 7C-7D 00 DSCOMPIL.PIC 00 : 7E-83 00 STAT .COM 00
- <S> 84-8C 00 DSDISK .PAS 00 : 8D-92 00 DSIO .PAS 00
- <S> 93-9D 00 SS .PIC 00 : 9E-A2 00 DSDIR .PAS 00
- <S> A3-A5 00 SS .COM 00 : A6-C2 ++ Free ++
- <S>
- <S> Type Any Character to Continue or ^C to Abort -
- <S>
- <S> Group = 00:00, Track = 1, Sector = 1, Physical Sector = 0
- <S>
- <S> DU2 B0? x
- <S>
- <S> Exit to CP/M -- Do you wish to Warm Boot (Y/N/<CR>=N)?
- <S> Warm Boot
-
- ******************************************************************************
- Thi≤ i≤ thσ origina∞ disδ directory« AlthougΦ S─ wa≤ no⌠ askeΣ t∩ sho≈ Systeφ ì
- typσ files¼á therσ werσ nonσ - takσ m∙ worΣ fo≥ it«á Specifically¼ therσ werσ ì
- n∩ baΣ blocδ file≤ a⌠ thσ beginning.
- ******************************************************************************
-
- <S> B0>sd
- <S>
- <S>
- <S> Drive B0: files: 21 space used: 163k (28k free)
- <S> BOX .PAS 1k | DSDIR .PAS 5k | DSUPDATE.PAS 17k | SS .PIC 12k
- <S> DAMNSPOT.HLP 6k | DSDISK .PAS 9k | DU2 .COM 10k | STAT .COM 6k
- <S> DS .COM 29k | DSIO .PAS 6k | PIP .COM 8k | VF .COM 8k
- <S> DS .LTP 1k | DSMISC .PAS 8k | SAME .COM 6k |
- <S> DS .PAS 11k | DSSPEC .PAS 8k | SD .COM 4k |
- <S> DSCOMPIL.PIC 2k | DSSYS .PAS 3k | SS .COM 3k |
- <S>
- <S> B0>
- .paè******************************************************************************
- Iεá thσ following¼á DS.CO═ anΣ DAMNSPOT.HL╨ arσ oε drivσ A╗á thσ disδá t∩á bσ ì
- tested is in drive B.
-
- Damnspo⌠ i≤ executed¼ tolΣ t∩ checδ drivσ B¼ tolΣ t∩ scaε thσ systeφ area¼ anΣ ì
- tolΣá t∩á displa∙á filσ name≤ iε thσ informatioε messagσ tha⌠á i⌠á show≤á wheε ì
- reading or writing blocks.
- ******************************************************************************
-
- <S> A0>ds
- <S> Damnspot - Version 2.0
- <S>
- <S>
- <S> =====> Change disks if necessary before answering the next question
- <S>
- <S> Drive to test < A..P Q = Quit CR = Help > : B
- <S> Scan the system area < *Y:es N:o H:elp Q:uit > : Y
- <S> Display file names < *Y:es N:o H:elp Q:uit > : Y
-
- ******************************************************************************
- Thσá systeφ areß i≤ t∩ bσ scanned«á Thσ N∩ optioε caε bσ useΣ iµ yo⌡á d∩á no⌠ ì
- carσá iµá thσ disδ i≤ bootable«á I⌠ mus⌠ bσ choseε iµ D╙ canno⌠á handlσá you≥ ì
- systeφá track≤ (somσ machine≤ havσ ß specia∞ forma⌠ fo≥ thσ systeφ area⌐ o≥ iµ ì
- thσ drivσ beinτ testeΣ is¼á iε fact¼á aε additiona∞ drivσ oε ß physica∞á drivσ
- containing more than one logical drive. Nothing fancy about the Kaypro.
-
- Tw∩ baΣ sector≤ arσ founΣ iε thσ systeφ area«á Iε botΦ case≤ thσ use≥ ask≤ D╙ ì
- to keep checking the rest of the system area.
- ******************************************************************************
-
- <S> =====> Checking System Area.
- <S>
- <S> Bad sector in System Track --> 0 Sector --> 20
- <S> Choose < *C:ontinue Q:uit > : C
- <S>
- <S> Bad sector in System Track --> 1 Sector --> 30
- <S> Choose < *C:ontinue Q:uit > : C
-
- ******************************************************************************
- Wheεá thσá systeφ areß i≤ finisheΣ thσ director∙ i≤ scanned¼á eveε thougΦá thσ ì
- use≥ ma∙ havσ skippeΣ o≥ aborteΣ thσ former«á N∩ baΣ sector≤ arσ founΣ iε thσ ì
- directory. Had there been, no user area scan would be permitted.
- ******************************************************************************
-
- <S> =====> Checking Directory Area
- .paè******************************************************************************
- No≈á D╙ begin≤ scanninτ thσ use≥ (file⌐ areß oµ thσ disk«á Oε thσá Kaypr∩á I╔ ì
- thi≤á cover≤á block≤ [┤ - C2▌ inclusive«á Block≤ [░ - 3▌ arσ occupieΣ b∙á thσ ì
- directory and some parts of the CP/M system.
-
- Thσ firs⌠ baΣ blocδ i≤ founΣ a⌠ blocδ ┤ iε filσ SAME.COM« Thσ use≥ ask≤ D╙ t∩ ì
- ignorσ thσ blocδ anΣ D╙ confirms«á Filσ SAME.CO═ wil∞ no⌠ bσ altered¼ eveε iµ ì
- yo⌡á updatσá thσ director∙ a⌠ thσ enΣ oµ thσ run«á Oµ coursσá i⌠á wil∞á stil∞ ì
- contain a bad block, but that might go away on a different disk drive.
- ******************************************************************************
-
- <S> =====> Checking User Area
- <S> Block 4 B0: SAME .COM : Bad Block
- <S>
- <S> I Ignore error (leave bad block in file)
- <S> R Retry read (maybe you'll get lucky)
- <S> S Substitute readable block < OUT ... OUT >
- <S> H Help
- <S> Q Quit disk
- <S>
- <S> < I:gnore R:etry S:ubstitute H:elp Q:uit > : I
- <S> Bad block left alone
-
- ******************************************************************************
- Thσ nex⌠ baΣ blocδ i≤ ┴ (decima∞ 10⌐ iε filσ UPDATE.PAS«á Thσ use≥ attempt≤ ß ì
- rereaΣá whicΦ fails«á Hσ theε decide≤ t∩ replacσ thσ baΣ blocδ witΦá ßá blocδ ì
- containinτ junδ oµ ß specia∞ kind«á Thσ junδ wil∞ consis⌠ oµ distinctivσ tex⌠ ì
- line≤á tha⌠á wil∞ allo≈ hi≤ edito≥ t∩ worδ witΦ thσ filσ anΣ sho≈ hiφá exactl∙ ì
- whicΦ portion≤ havσ beeε clobbered« Hσ i≤ resigneΣ t∩ retypinτ thσ los⌠ blocδ ì
- or¼ perhaps¼ recoverinτ i⌠ froφ anothe≥ file.
-
- D╙á announce≤á tha⌠á unuseΣá blocδ A╕ ha≤ beeε filleΣá witΦá thσá patterεá anΣ ì
- substituted╗á als∩á tha⌠ blocδ ┴ ha≤ beeε tuckeΣ awa∙ int∩ filσá [UNUSED].BAD« ì
- Notσ that¼ wherea≤ thσ substitutσ blocδ ha≤ actuall∙ beeε writteε t∩ thσ disk¼ ì
- thσá director∙ ha≤ no⌠ ye⌠ beeε changeΣ oε disk«á Thσ substitutioε wil∞á onl∙ ì
- appea≥á t∩á havσ effec⌠ iµ thσ director∙ i≤ updateΣ oε thσ conclusioεá oµá thσ ì
- scan.
- ******************************************************************************
-
- <S> Block A B0: DSUPDATE.PAS : Bad Block
- <S>
- <S> I Ignore error (leave bad block in file)
- <S> R Retry read (maybe you'll get lucky)
- <S> S Substitute readable block < OUT ... OUT >
- <S> H Help
- <S> Q Quit disk
- <S>
- <S> < I:gnore R:etry S:ubstitute H:elp Q:uit > : R
- <S>
- <S> No Joy
- .paè<S>
- <S> I Ignore error (leave bad block in file)
- <S> R Retry read (maybe you'll get lucky)
- <S> S Substitute readable block < OUT ... OUT >
- <S> H Help
- <S> Q Quit disk
- <S>
- <S> < I:gnore R:etry S:ubstitute H:elp Q:uit > : S
- <S> Block A : Replaced by readable block A8
- <S> Block A B0: [UNUSED].BAD : Successfully hidden
-
- ******************************************************************************
- Next, a bad block in file DS.COM is ignored.
- ******************************************************************************
-
- <S> Block 28 B0: DS .COM : Bad Block
- <S>
- <S> I Ignore error (leave bad block in file)
- <S> R Retry read (maybe you'll get lucky)
- <S> S Substitute readable block < OUT ... OUT >
- <S> H Help
- <S> Q Quit disk
- <S>
- <S> < I:gnore R:etry S:ubstitute H:elp Q:uit > : I
- <S> Bad block left alone
-
- ******************************************************************************
- D╙ continue≤ it≤ scaε locatinτ tw∩ morσ baΣ blocks¼ B┤ anΣ BB« Sincσ the∙ arσ ì
- botΦ freσ (no⌠ allocateΣ t∩ ß file⌐ D╙ jus⌠ hide≤ theφ iε thσ baΣ block≤ file« ì
- A⌠ thσ risδ oµ boring¼á thi≤ changσ wil∞ no⌠ actuall∙ takσ effec⌠ unles≤ fina∞ ì
- director∙ updatσ approva∞ i≤ given«á Fo≥ thσ momen⌠ the∙ arσ merel∙á includeΣ ì
- in DS's memory image of what the directory 'should' look like.
-
- The final line, Block C2, merely shows the last block scanned.
- ******************************************************************************
-
- <S> Block B4 B0: [UNUSED].BAD : Successfully hidden
- <S> Block BB B0: [UNUSED].BAD : Successfully hidden
- <S> Block C2
- .paè******************************************************************************
- Eventuall∙á D╙ test≤ thσ las⌠ blocδ (C2⌐ anΣ theε enter≤ ß routinσ tha⌠ allow≤ ì
- thσá use≥á t∩á forcσ specifiπ block≤ t∩ BaΣ status«á Thesσá migh⌠á bσá block≤ ì
- detecteΣ b∙ morσ sensitivσ programs¼á sucΦ a≤ you≥ Format/Verif∙á utility¼á o≥ ì
- the∙á wil∞á morσá ofteεá bσ block≤ whicΦ D╙ eventuall∙á reaΣá bu⌠á onl∙á afte≥ ì
- dwellinτ oε theφ fo≥ ß while«á Fo≥ example¼á m∙ Kaypr∩ BIO╙ wil∞ tr∙ u≡ t∩ 3░ ì
- 5░á time≤á t∩á reaΣá o≥ writσ ß secto≥ beforσ informinτá thσá callinτá prograφ ì
- oµ ß failure«á Iµ ╔ seσ onσ blocδ numbe≥ linge≥ oε thσ screeε fo≥ ß seconΣ o≥ ì
- morσ ╔ kno≈ tha⌠ thσ blocδ i≤ oε thσ verge«á Iµ i⌠ doe≤ no⌠ contaiεá valuablσ ì
- informatioε i⌠ shoulΣ bσ lockeΣ out.
-
- Iε thσ firs⌠ example¼ thσ use≥ ask≤ D╙ t∩ locδ ou⌠ blocδ 20« D╙ warn≤ tha⌠ i⌠ ì
- i≤á iε filσ PIP.CO═ anΣ ask≤ fo≥ confirmation«á Thσ use≥ ha≤ seconΣá thought≤ ì
- anΣ cancel≤ thσ request«á Afte≥ all¼á hσ onl∙ ha≤ 17│ othe≥ copie≤ oµ PIP.CO═ ì
- and does not want to fool around with this one.
- ******************************************************************************
-
- <S> Blocks on which the program dwelt are flaky. You may force such blocks to
- <S> Bad status to prevent them from cropping up at a more inconvenient time.
- <S> Prescribe any such block numbers in hexadecimal.
- <S>
- <S> Block to force bad in hex <e.g. A7 Q = Quit> : 20
- <S> That block is currently in file B0: PIP .COM
- <S> If you force it bad, the file will be corrupted.
- <S>
- <S> Are you sure < Y:es N:o > : N
- <S> No change
- <S>
-
- ******************************************************************************
- Nex⌠á thσá use≥á force≤ blocδ 6┬ t∩ bσ lockeΣ ou⌠ eveε thougΦ i⌠á i≤á iεá filσ ì
- DU2.COM«á Thσá baΣá blocδá i≤ replaceΣ b∙ blocδ A╣ whicΦá i≤á filleΣá witΦá ß ì
- distinctivσá tex⌠á pattern«á Thi≤ i≤ oµ les≤ utilit∙ thaε thσ samσá procedurσ ì
- applieΣá t∩ ß tex⌠ filσ - yo⌡ won'⌠ wan⌠ t∩ edi⌠ ß .CO═á file«á Nevertheless¼ ì
- thσ baΣ blocδ wil∞ bσ pu⌠ ou⌠ oµ action.
- ******************************************************************************
-
- <S> Block to force bad in hex <e.g. A7 Q = Quit> : 6b
- <S> That block is currently in file B0: DU2 .COM
- <S> If you force it bad, the file will be corrupted.
- <S>
- <S> Are you sure < Y:es N:o > : Y
- <S> Block 6B : Replaced by readable block A9
- <S> Block 6B B0: [UNUSED].BAD : Successfully hidden
- .paè******************************************************************************
- Thσá nex⌠ fe≈ example≤ merel∙ demonstratσ tha⌠ D╙ know≤ wha⌠ i≤ anΣ i≤á no⌠á ß ì
- valiΣ blocδ number«á Oε thσ Kaypr∩ II¼ block≤ ┤ t∩ C▓ arσ available« I⌠ als∩ ì
- illustrate≤á tha⌠á an∙ repl∙ beginninτ witΦ ╤ (o≥ q⌐ wil∞ terminatσá thσá use≥ ì
- specifieΣ lockou⌠ loop.
- ******************************************************************************
-
- <S> Block to force bad in hex <e.g. A7 Q = Quit> : xxx
- <S> Illegal block number
- <S>
- <S> Block to force bad in hex <e.g. A7 Q = Quit> : 3
- <S> Block out of bounds
- <S>
- <S> Block to force bad in hex <e.g. A7 Q = Quit> : c3
- <S> Block out of bounds
- <S>
- <S> Block to force bad in hex <e.g. A7 Q = Quit> : c2
- <S> Block C2 B0: [UNUSED].BAD : Successfully hidden
- <S>
- <S> Block to force bad in hex <e.g. A7 Q = Quit> : quetzalcoatl
-
- ******************************************************************************
- No≈ D╙ summarize≤ thσ disδ status«á Thσ firs⌠ part¼á below¼ jus⌠ say≤ whethe≥ ì
- an∙á error≤á (o≥ lockouts⌐ werσ encountereΣ iε eacΦ oµ thσ threσá disδá areas« ì
- Notσ tha⌠ thσ numbe≥ oµ BAD'≤ (5⌐ ha≤ n∩ significance«á I⌠ i≤ simpl∙ mean⌠ t∩ ì
- stand out.
- ******************************************************************************
-
- <S> =====> AREA STATUS SUMMARY
- <S>
- <S> =====> System area is BAD BAD BAD BAD BAD
- <S> =====> Directory is GOOD
- <S> =====> User area is BAD BAD BAD BAD BAD
- <S>
- <S> Press any key to continue.
-
- ******************************************************************************
- Next DS says a little bit about user blocks of interest. It tells for each:
-
- 1. Wherσ thσ blocδ starts« ┴ blocδ no⌠ onl∙ occupie≤ severa∞ contiguou≤ ì
- áááásectors║ i⌠ caε als∩ lea≡ ove≥ tracδ boundarie≤ oε somσ machines.
-
- 2. What file it will be assigned to if the directory is updated.
-
- 3. BaΣ - Thσ blocδ i≤ deemeΣ t∩ bσ physicall∙ unreadable« Thi≤ migh⌠ arisσ ì
- ááááfroφ aε actua∞ faileΣ read¼ froφ ß user forceΣ lockout¼ o≥ becausσ thσ ì
- ááááblocδ originall∙ belongeΣ t∩ eithe≥ [UNUSED].BA─ o≥ BLOCKS.BAD.
-
- 4. Wronτ - Thσ blocδ i≤ readablσ bu⌠ contain≤ thσ distinctivσ tex⌠ patterε D╙ ì
- ááááuse≤ fo≥ patchinτ int∩ file≤ durinτ Substitutσ o≥ lockou⌠ requests.
-
- 5. CovereΣ - Thσ blocδ ha≤ founΣ ß homσ iε [UNUSED].BA─ o≥ remaineΣ iε ì
- ááááBLOCKS.BAD.
- ******************************************************************************
- .paè<S> Bad Block Summary:
- <S>
- <S> Block Track Sector Bad Wrong Covered Drv File
- <S> ----- ----- ------ --- ----- ------- --- ------------
- <S> 4 1 32 Bad B0: SAME .COM
- <S> A 3 0 Bad Covered B0: [UNUSED].BAD
- <S> 28 9 0 Bad B0: DS .COM
- <S> 6B 22 16 Bad Covered B0: [UNUSED].BAD
- <S> A8 34 24 Wrong B0: DSUPDATE.PAS
- <S> A9 34 32 Wrong B0: DU2 .COM
- <S> B4 37 0 Bad Covered B0: [UNUSED].BAD
- <S> BB 38 16 Bad Covered B0: [UNUSED].BAD
- <S> C2 39 32 Bad Covered B0: [UNUSED].BAD
- <S>
- <S>
- <S> Press any key to continue.
- .paè******************************************************************************
- U≡ t∩ thi≤ poin⌠ thσ director∙ oµ thσ disδ ha≤ no⌠ beeε changeΣ b∙ DS«á Therσ ì
- ma∙ havσ beeε ß bi⌠ oµ writinτ t∩ unuseΣ block≤ bu⌠ tha⌠ i≤ all«á Iε essence¼ ì
- thσ disδ i≤ unchanged╗á D╙ ha≤ merel∙ modifieΣ ß memory-residen⌠ imagσ oµ wha⌠ ì
- the directory should look like to implement any changes.
-
- Becausσ change≤ t∩ thσ disδ arσ pending¼á D╙ throw≤ yo⌡ righ⌠ int∩ thσ Option≤ ì
- men⌡á showεá below«á HaΣ therσ beeε n∩ error≤ detecteΣ (o≥ forced⌐ yo⌡á woulΣ ì
- insteaΣá havσ gonσ t∩ ß promp⌠ froφ whicΦ yo⌡ coulΣ qui⌠ directl∙ o≥á comσá t∩ ì
- this menu.
-
- Thσá use≥ begin≤ b∙ askinτ fo≥ help«á D╙ replie≤ witΦ ß sub-men⌡á askinτá fo≥ ì
- whicΦ commanΣ hel≡ i≤ desired. The user specifies Send.
- ******************************************************************************
-
- <S> Your choices are as follows :
- <S>
- <S> U Update the directory
- <S> M Move disk to new drive and update directory
- <S> S Send directory information to a file or device
- <S> C Copy disk - bad blocks stay bad
- <S> H Help
- <S>
- <S> Q Quit option menu
- <S>
- <S> Choose < U:pdate M:ove S:end C:opy *H:elp Q:uit > : H
- <S>
- <S> Help for <U:pdate M:ove S:end C:opy Q:uit> : S
- <S> ------------------------------------------------------------------------------
- <S>
- <S> This option allows you to write the modified directory information to a file
- <S> in either Ascii or Binary form. Ascii form means in a form that can be
- <S> displayed on the screen or on a printer. Binary form means that the contents
- <S> of the file will be identical byte for byte with the contents of the disk
- <S> directory - or at least with what they would have been if the normal updating
- <S> had succeeded.
- <S>
- <S> You may also send the directory contents to the terminal or printer in Ascii
- <S> form - think of these devices as special forms of Ascii files. (Or think of
- <S> Ascii files as being special forms of printer - whatever helps.)
- <S>
- <S> Saving the directory information in this way is not much use unless you are
- <S> capable of using the information in it to fix the disk in question. See DS.DOC
- <S> for some hints on this.
- <S>
- <S> DO NOT TRY TO SEND THIS FILE TO THE CORRUPT DISK - USE A GOOD ONE !!!
- <S>
- <S> ------------------------------------------------------------------------------
- <S> Press any key to continue.
- .paè******************************************************************************
- Thσá use≥ ask≤ t∩ SenΣ aε AsciΘ (legible⌐ versioε oµ thσ directory'≤á content≤ ì
- t∩á ßá filσ oε thσ ┬ drive«á Thσ forφ oµ thσ (woulΣ be⌐ outpu⌠ wil∞ bσá showε ì
- later«á Oεá thi≤ tr∙ D╙ refuse≤ thσ reques⌠ becausσ i⌠ recognize≤á tha⌠á thσ ì
- informatioεá woulΣá bσá writteε t∩ thσ disδ unde≥ test¼á anΣá tha⌠á therσá arσ ì
- change≤á pendinτá t∩ tha⌠ disk'≤ directory«á Iµ thσ writσ werσá permitted¼á ß ì
- subsequent directory update would obliterate the new file's directory entry.
-
- ╔ can'⌠ thinδ wh∙ anyonσ woulΣ wan⌠ t∩ chea⌠ thi≤ checδ but¼á jus⌠ iε case¼ bσ ì
- adviseΣá tha⌠ D╙ doe≤ no⌠ basσ it≤ decisioε oε thσ driveé unde≥ tes⌠ bu⌠ oε thσ ì
- diské itself«á I⌠ compare≤ thσ curren⌠ director∙ checksuφ witΦ thσ origina∞ t∩ ì
- see whether it is the same, non-updated disk. (Anything is cheatable).
- ******************************************************************************
-
- <S> Your choices are as follows :
- <S>
- <S> U Update the directory
- <S> M Move disk to new drive and update directory
- <S> S Send directory information to a file or device
- <S> C Copy disk - bad blocks stay bad
- <S> H Help
- <S>
- <S> Q Quit option menu
- <S>
- <S> Choose < U:pdate M:ove S:end C:opy *H:elp Q:uit > : S
- <S>
- <S> File type < A:scii B:inary D:evice H:elp Q:uit > : A
- <S> Create file on which drive <Q to quit> : B
- <S> When ready press < G:o Q:uit > : G
- <S>
- <S> That is the disk under test and changes are pending - Not allowed
- <S> Operation cancelled
-
- ******************************************************************************
- Thσ use≥ no≈ decide≤ t∩ Updatσ thσ director∙ t∩ reflec⌠ change≤ made«á Iµ an∙ ì
- importan⌠á file≤ werσ iε doubt¼á ╔ wouldn'⌠ d∩ thi≤ excep⌠ a≤ ßá las⌠á resort« ì
- In any event it might be wise to check your backup (MY WHAT ???) first.
-
- Iµá thσ Updatσ fail≤ duσ t∩ ß disδ writσ erro≥ yo⌡ wil∞ ge⌠ ß grea⌠ biτá erro≥ ì
- message. The other options may then become very important because:
-
- 1. DS still has (updated) directory information in memory;
-
- 2.á You≥á director∙ track≤ arσ probabl∙ clobbereΣ iε whicΦ casσ everythinτá oε ì
- ááááthσ disδ i≤ iε jeopardy.
- ******************************************************************************
- .paè<S> Your choices are as follows :
- <S>
- <S> U Update the directory
- <S> M Move disk to new drive and update directory
- <S> S Send directory information to a file or device
- <S> C Copy disk - bad blocks stay bad
- <S> H Help
- <S>
- <S> Q Quit option menu
- <S>
- <S> Choose < U:pdate M:ove S:end C:opy *H:elp Q:uit > : U
- <S>
- <S> =====> Directory update succeeded
-
- ******************************************************************************
- No≈á thσá use≥á trie≤ oncσ agaiε t∩ senΣ aε AsciΘ versioε oµá thσá directory'≤ ì
- content≤á t∩á ß filσ oε thσ ┬ drive«á D╙ i≤ happ∙ no≈ anΣá create≤á thσá filσ ì
- B:PANIC.ASC«á Binar∙ outpu⌠ woulΣ havσ beeε sen⌠ t∩ PANIC.BIN« Binar∙ outpu⌠ ì
- i≤ no⌠ ver∙ legiblσ but¼á beinτ aε exac⌠ cop∙ oµ thσ directory¼ coulΣ possibl∙ ì
- be copied back into (reformatted) directory tracks with DU2.
-
- Notσá tha⌠ therσ i≤ stil∞ ß possibilit∙ oµ clobberinτ thσ director∙ entr∙á fo≥ ì
- thσá filσ PANIC.AS├ jus⌠ written«á D╙ wil∞ allo≈ yo⌡ t∩ ente≥ anothe≥á Updatσ ì
- command which will do just that.
- ******************************************************************************
-
- <S> Your choices are as follows :
- <S>
- <S> U Update the directory
- <S> M Move disk to new drive and update directory
- <S> S Send directory information to a file or device
- <S> C Copy disk - bad blocks stay bad
- <S> H Help
- <S>
- <S> Q Quit option menu
- <S>
- <S> Choose < U:pdate M:ove S:end C:opy *H:elp Q:uit > : S
- <S>
- <S> File type < A:scii B:inary D:evice H:elp Q:uit > : A
- <S> Create file on which drive <Q to quit> : B
- <S> When ready press < G:o Q:uit > : G
- <S> Directory sent to B:PANIC.ASC
- .paè******************************************************************************
- Thσá use≥á no≈ ask≤ D╙ t∩ cop∙ thσ disδ froφ drivσ ┬ t∩á drivσá A¼á usinτá thσ ì
- memor∙ imagσ oµ thσ director∙ (possibl∙ modified⌐ anΣ thσ blocδ informatioε oε ì
- the disk. The following points should be borne in mind:
-
- 1. Block≤ though⌠ t∩ bσ baΣ b∙ D╙ wil∞ no⌠ bσ copied.
-
- 2. Iµ reaΣ o≥ writσ error≤ occu≥ iε copyinτ ß block¼ yo⌡ wil∞ bσ notifieΣ anΣ ì
- ááááthσ cop∙ wil∞ proceed.
-
- 3.á Iµá D╙á copie≤ ß blocδ tha⌠ contain≤ thσ wronτ datß - i.e«á onσá tha⌠á wa≤ ì
- ááááfilleΣá witΦá ß distinctivσ patterε anΣ useΣ t∩ replacσ ß baΣ blocδá iεá ß ì
- ááááfile¼ yo⌡ wil∞ bσ informed.
-
- 4. Thσ systeφ areß oµ thσ disδ i≤ no⌠ copied.
-
- Notσá tha⌠á thσ resul⌠ wil∞ bσ ß disδ tha⌠ reflect≤ thσ change≤ tha⌠ yo⌡á havσ ì
- requesteΣ - no⌠ ß cop∙ oµ thσ wa∙ thσ disδ wa≤ wheε yo⌡ started« D╙ check≤ t∩ ì
- seσ tha⌠ thσ sourcσ anΣ destinatioε disk≤ arσ 'compatibleº fo≥ thσá operation« ì
- Havinτá onl∙á tw∩ identica∞ flopp∙ drive≤ ╔ coulΣ no⌠ tes⌠ thi≤á feature«á I⌠ ì
- should, for example, forbid the copy from a floppy to a hard disk.
- ******************************************************************************
-
- <S> Your choices are as follows :
- <S>
- <S> U Update the directory
- <S> M Move disk to new drive and update directory
- <S> S Send directory information to a file or device
- <S> C Copy disk - bad blocks stay bad
- <S> H Help
- <S>
- <S> Q Quit option menu
- <S>
- <S> Choose < U:pdate M:ove S:end C:opy *H:elp Q:uit > : C
- <S>
- <S> Source drive < Q = Quit > : B
- <S> Destination drive < Q = Quit > : A
- <S> When ready press < C:opy Q:uit > : C
- <S> Directory written. Starting on blocks:
- <S> Block 4 A0: SAME .COM : Corrupt - Source is bad
- <S> Block A A0: [UNUSED].BAD : Corrupt - Source is bad
- <S> Block 28 A0: DS .COM : Corrupt - Source is bad
- <S> Block 6B A0: [UNUSED].BAD : Corrupt - Source is bad
- <S> Block A8 A0: DSUPDATE.PAS : Corrupt - Wrong contents
- <S> Block A9 A0: DU2 .COM : Corrupt - Wrong contents
- <S> Block B4 A0: [UNUSED].BAD : Corrupt - Source is bad
- <S> Block BB A0: [UNUSED].BAD : Corrupt - Source is bad
- <S> Block C2 A0: [UNUSED].BAD : Corrupt - Source is bad
- <S>
- <S> Disk copy complete
- .paè******************************************************************************
- No≈á thσá use≥á ask≤ t∩ senΣ thσ samσ AsciΘ versioε oµ thσá director∙á t∩á thσ ì
- devicσ Termina∞ (thσ screen)«ì
- ******************************************************************************
-
- <S> Your choices are as follows :
- <S>
- <S> U Update the directory
- <S> M Move disk to new drive and update directory
- <S> S Send directory information to a file or device
- <S> C Copy disk - bad blocks stay bad
- <S> H Help
- <S>
- <S> Q Quit option menu
- <S>
- <S> Choose < U:pdate M:ove S:end C:opy *H:elp Q:uit > : S
- <S>
- <S> File type < A:scii B:inary D:evice H:elp Q:uit > : D
- <S>
- <S> Output to < *T:erminal P:rinter Q:uit > : T
-
- ******************************************************************************
- Thσ resul⌠ oµ thσ commanΣ follows«á Thσ onl∙ changσ madσ i≤ tha⌠ ß maximuφ oµ ì
- eigh⌠ blocδ number≤ havσ beeε listeΣ pe≥ linσ t∩ kee≡ thσ displa∙ froφ runninτ ì
- ofµá thσ edgσ oµ thσ paper«á Iε rea∞ life¼á al∞ informatioε fo≥á ßá director∙ ì
- entry is on one line.
-
- The information is in standard CP/M File Control Block order - i.e.:
-
- - user number
- - file name
- ááááá- extent number (greatest logical extent in entry)
- ááááá- two numbers of which CP/M says very little
- ááááá- thσá numbe≥ oµ record≤ iε thσ to≡ logica∞ exten⌠ - iµ 8░ (hex⌐ therσ i≤ ì
- ááááá áprobably another entry with a higher extent number.
- ááááá- the block numbers assigned to the entry
- ******************************************************************************
- .paè<S> PANIC DIRECTORY
- <S>
- <S> 00 SAME COM 00 00 00 2A 4 5 6 7 8 9
- <S> 00 DSUPDATEPAS 00 00 00 80 A8 B C D E F 10 11
- <S> 12 13 14 15 16 17 18 19
- <S> 00 DSUPDATEPAS 01 00 00 06 1A
- <S> 00 PIP COM 00 00 00 3A 1B 1C 1D 1E 1F 20 21 22
- <S> 00 DS LTP 00 00 00 08 23
- <S> 00 DS COM 00 00 00 80 24 25 26 27 28 29 2A 2B
- <S> 2C 2D 2E 2F 30 31 32 33
- <S> 00 DS COM 01 00 00 68 34 35 36 37 38 39 3A 3B
- <S> 3C 3D 3E 3F 40
- <S> 00 SD COM 00 00 00 1D 41 42 43 44
- <S> 00 DS PAS 00 00 00 57 45 46 47 48 49 4A 4B 4C
- <S> 4D 4E 4F
- <S> 00 BOX PAS 00 00 00 03 50
- <S> 00 DAMNSPOTHLP 00 00 00 2E 51 52 53 54 55 56
- <S> 00 VF COM 00 00 00 3C 57 58 59 5A 5B 5C 5D 5E
- <S> 00 DSMISC PAS 00 00 00 3E 5F 60 61 62 63 64 65 66
- <S> 00 DU2 COM 00 00 00 4F 67 68 69 6A A9 6C 6D 6E
- <S> 6F 70
- <S> 00 DSSPEC PAS 00 00 00 3B 71 72 73 74 75 76 77 78
- <S> 00 DSSYS PAS 00 00 00 18 79 7A 7B
- <S> 00 DSCOMPILPIC 00 00 00 0B 7C 7D
- <S> 00 STAT COM 00 00 00 29 7E 7F 80 81 82 83
- <S> 00 DSDISK PAS 00 00 00 48 84 85 86 87 88 89 8A 8B
- <S> 8C
- <S> 00 DSIO PAS 00 00 00 29 8D 8E 8F 90 91 92
- <S> 00 SS PIC 00 00 00 65 93 94 95 96 97 98 99 9A
- <S> 9B 9C 9D A6 A7
- <S> 00 DSDIR PAS 00 00 00 25 9E 9F A0 A1 A2
- <S> 00 SS COM 00 00 00 17 A3 A4 A5
- <S> 00 [UNUSED]BAD 00 00 00 28 A B4 BB 6B C2
- .paè******************************************************************************
- Nex⌠á thσ use≥ ask≤ fo≥ ß binar∙ versioε oµ thσ director∙ t∩ bσ sen⌠ t∩á drivσ ì
- A«á Thσ filσ namσ PANIC.BI╬ is automaticall∙ assigned« Thi≤ filσ i≤ bytσ fo≥ ì
- bytσá identica∞ witΦ thσ memor∙ imagσ oµ thσ director∙ - i.e«á witΦá wha⌠á thσ ì
- disk directory would contain if the directory were successfully updated.
-
- Thesσ binar∙ file≤ arσ no⌠ legiblσ likσ thσ AsciΘ versioε above«á However¼ iµ ì
- D╙ gavσ ß writσ erro≥ iε tryinτ t∩ updatσ thσ directory¼á i⌠ i≤ ß gooΣ ideß t∩ ì
- generatσá botΦá aε AsciΘ anΣ ß Binar∙ Paniπ file«á ShoulΣ yo⌡ bσ ablσ t∩á coε ì
- someonσ int∩ helpinτ reconstruc⌠ thσ disk¼ thesσ wil∞ bσ ver∙ useful« Withou⌠ ì
- them the job may be virtually impossible.ááááá
- ******************************************************************************
-
- <S> Your choices are as follows :
- <S>
- <S> U Update the directory
- <S> M Move disk to new drive and update directory
- <S> S Send directory information to a file or device
- <S> C Copy disk - bad blocks stay bad
- <S> H Help
- <S>
- <S> Q Quit option menu
- <S>
- <S> Choose < U:pdate M:ove S:end C:opy *H:elp Q:uit > : S
- <S>
- <S> File type < A:scii B:inary D:evice H:elp Q:uit > : B
- <S> Create file on which drive <Q to quit> : A
- <S> When ready press < G:o Q:uit > : G
- <S> Directory sent to A:PANIC.BIN
-
- ******************************************************************************
- Finall∙ ou≥ intrepiΣ use≥ i≤ overcomσ b∙ aε unquenchablσ (almost⌐ desirσ fo≥ ß ì
- cold beer so he tells DS he's quitting.
- ******************************************************************************
-
- <S> Your choices are as follows :
- <S>
- <S> U Update the directory
- <S> M Move disk to new drive and update directory
- <S> S Send directory information to a file or device
- <S> C Copy disk - bad blocks stay bad
- <S> H Help
- <S>
- <S> Q Quit option menu
- <S>
- <S> Choose < U:pdate M:ove S:end C:opy *H:elp Q:uit > : Q
- .paè******************************************************************************
- DS¼á no⌠ understandinτ thσ urgenc∙ oµ thσ situation¼á merel∙ step≤ hiφ bacδ t∩ ì
- thσá men⌡á tha⌠á hσá woulΣ havσ receiveΣ iµá thσá disδá werσá scanneΣá withou⌠ ì
- incident«á Hσ caε qui⌠ directly¼á t∩ commencσ testinτ ß ne≈ disk¼á redispla∙ ì
- thσá disδá summar∙ information¼á o≥ g∩ t∩ thσ Optioε men⌡ froφ whicΦá hσá jus⌠ ì
- came« Hσ quits.
-
- D╙á ask≤ iµ therσ i≤ anothe≥ disδ anΣ hσ quit≤ again«á That'≤ threσ quit≤á t∩ ì
- get out. DS is designed for quitters.
- ******************************************************************************
-
- <S> What to do < O:ptions S:ummary *H:elp Q:uit > : Q
- <S>
- <S> =====> Change disks if necessary before answering the next question
- <S>
- <S> Drive to test < A..P Q = Quit CR = Help > : Q
- <S>
- <S> Warm Boot
- <S>
- <S> A0>
-
- ******************************************************************************
- End of DAMNSPOT Portion
- ******************************************************************************
- .paè******************************************************************************
- Herσá i≤á thσá director∙ oµ thσ disδ afterward≤ a≤ generateΣ b∙á SD«á Thσá $╙ ì
- switcΦ tell≤ S─ t∩ displa∙ Systeφ files«á Notσ tha⌠ [UNUSED].BAD¼á a≤ createΣ ì
- o≥á updateΣá b∙ DS¼á ha≤ botΦ Systeφ anΣ ReaΣ Onl∙á attributes«á Thi≤á i≤á aε ì
- excellen⌠á namσ fo≥ thσ BaΣ filσ (courtes∙ oµ FINDBAD)«á I⌠ gravitate≤ t∩ thσ ì
- enΣ oµ ß sorteΣ director∙ listing¼á i≤ distinctive¼á anΣ avoid≤ thσ concep⌠ oµ ì
- blocks.
- ******************************************************************************
-
- <S> A0>sd b: $s
- <S>
- <S> Drive B0: files: 23 space used: 163k (28k free)
- <S> BOX .PAS 1k | DSDIR .PAS 5k | DSUPDATE.PAS 17k | SS .COM 3k
- <S> DAMNSPOT.HLP 6k | DSDISK .PAS 9k | DU2 .COM 10k | STAT .COM 6k
- <S> DS .COM 29k | DSIO .PAS 6k | PANIC .ASC 2k | VF .COM 8k
- <S> DS .LTP 1k | DSMISC .PAS 8k | PIP .COM 8k | [UNUSED].BAD 5k
- <S> DS .PAS 11k | DSSPEC .PAS 8k | SAME .COM 6k |
- <S> DSCOMPIL.PIC 2k | DSSYS .PAS 3k | SD .COM 4k |
- <S>
- <S> A0>
-
- ******************************************************************************
- Now for a disk map as generated by DU2.Disk Map
- ******************************************************************************
-
- <S> B0>a:du2
- <S>
- <S> DU2 - Disk Utility II, Version 1.1
- <S> Type ? for Help
- <S>
- <S> DU2 B0? m
- <S> 04-09 00 SAME .COM 00 : 0A-0A 00 [UNUSED].BAD 00
- <S> 0B-19 00 DSUPDATE.PAS 00 : 1A-1A 00 DSUPDATE.PAS 01
- <S> 1B-22 00 PIP .COM 00 : 23-23 00 DS .LTP 00
- <S> 24-33 00 DS .COM 00 : 34-40 00 DS .COM 01
- <S> 41-44 00 SD .COM 00 : 45-4F 00 DS .PAS 00
- <S> 50-50 00 BOX .PAS 00 : 51-56 00 DAMNSPOT.HLP 00
- <S> 57-5E 00 VF .COM 00 : 5F-66 00 DSMISC .PAS 00
- <S> 67-6A 00 DU2 .COM 00 : 6B-6B 00 [UNUSED].BAD 00
- <S> 6C-70 00 DU2 .COM 00 : 71-78 00 DSSPEC .PAS 00
- <S> 79-7B 00 DSSYS .PAS 00 : 7C-7D 00 DSCOMPIL.PIC 00
- <S> 7E-83 00 STAT .COM 00 : 84-8C 00 DSDISK .PAS 00
- <S> 8D-92 00 DSIO .PAS 00 : 93-94 00 SS .PIC 00
- <S> 95-9D ++ Free ++ : 9E-A2 00 DSDIR .PAS 00
- <S> A3-A5 00 SS .COM 00 : A6-A7 ++ Free ++
- <S> A8-A8 00 DSUPDATE.PAS 00 : A9-A9 00 DU2 .COM 00
- <S> AA-AB 00 PANIC .ASC 00 : AC-B3 ++ Free ++
- <S> B4-B4 00 [UNUSED].BAD 00 : B5-BA ++ Free ++
- <S> BB-BB 00 [UNUSED].BAD 00 : BC-C1 ++ Free ++
- <S> C2-C2 00 [UNUSED].BAD 00 :
- <S> Type Any Character to Continue or ^C to Abort -
- <S>
- <S> Group = 00:00, Track = 1, Sector = 1, Physical Sector = 0
- .paè******************************************************************************
- Finally¼á DU▓á i≤ useΣ t∩ displa∙ thσ director∙ entr∙ fo≥á [UNUSED].BAD«á Thσ ì
- second row shows the blocks allocated to it.
- ******************************************************************************
-
- <S> DU2 B0? f[unused].bad
- <S> 60 005B554E 55534544 5DC2C144 00000028 *.[UNUSED]BAD...(*
- <S> 70 0AB4BB6B C2000000 00000000 00000000 *.4;kB...........*
- <S> Group = 00:00, Track = 1, Sector = 1, Physical Sector = 0
- <S>
- <S> DU2 B0? x
- <S>
- <S> Exit to CP/M -- Do you wish to Warm Boot (Y/N/<CR>=N)?
- <S> Warm Boot
-
- ******************************************************************************
- Therσ follow≤ ß mucΦ shorteneΣ versioε oµ filσ DSUPDATE.PAS«á Thi≤ i≤ onσá oµ ì
- thσá file≤ iε whicΦ ß blocδ wa≤ forceΣ baΣ - iε fac⌠ i⌠ wa≤ thσ firs⌠ blocδ oµ ì
- the file. You can see the effect of substituting a readable block.
- ******************************************************************************
-
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> < OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT >
- <S> error := false;
- <S> rel_sec := 0;
- <S> with dp[dest_drive],dph^.dpb^ do begin
- <S> while (rel_sec < dir_secs) and (not error) do begin
- <S> track := off + rel_sec div spt;
- <S>
- <S> .....
- <S>
- <S> case ans of
- <S> 'H' : help('UPDATE OPTIONS');
- <S> 'Q' : force_quit := true;
- <S> 'S' : summarize_status;
- <S> 'O' : directory_update_options;
- <S> end;
- <S> end;
- <S> END; {update on request}