home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / UTILS / DIRUTL / DIRREP21.LBR / DIRREP.DQC / DIRREP.DOC
Text File  |  2000-06-30  |  5KB  |  95 lines

  1. ;;xxxxxxxx
  2.                            DIRREP.DOC
  3.                          v.2.1  04/16/85
  4. DBACK.COM v.2.1
  5. DREST.COM v.2.1
  6.  
  7. Update:  Now  allows  you to set maximum drive for  your  system; 
  8. allows 2-byte number of tracks before directory.
  9.  
  10.  
  11. The  files  in this library,  DBACK.COM and DREST.COM make up  a 
  12. repair kit for disk directories.  I don't know if it has happened 
  13. to  you  (yet),  but fooling around with  assembly  language  and 
  14. related  subjects  has led more than once to my spoiling my  disk 
  15. directory.  If you have only floppies to worry about, it's not so 
  16. bad,  but a 10MB disk holds a lot of files!!  
  17.  
  18. The  first  time this happened I was a rank  beginner  without  a 
  19. proper  set  of utilities or even a real knowledge of what a  CPM 
  20. file directory looked like; the only solution I could find was to 
  21. reformat the entire hard disk!  That may be a little better  than 
  22. buying a new disk drive, but hardly ideal.
  23.  
  24. The  last  time  (I  won't say  how  this  happened),  I  was  an 
  25. experienced CPM programmer. I knew that the garbage that appeared 
  26. when  I  typed DIR came from a misdirected write that had put  an 
  27. allocation  block  into  the directory  (=block  #0)  instead  of 
  28. elsewhere.  This  time I made use of my trusty RDWRT utility (now 
  29. SRW)  to  enter an E5 at the beginning of each spoiled  entry  to 
  30. simulate erasure.  This cleaned up my directory just fine, and it 
  31. was a few notches more satisfactory than formatting the disk, but 
  32. one sad fact remained:  the files were gone.  On my hard disk, an 
  33. allocation   block  is  4K,   or  32  128-byte  sectors.   At   4 
  34. files/sector,  I had lost 128 files.  Without their addresses  in 
  35. the  directory,  there  was  no  way of locating  them  short  of 
  36. stepping through the entire disk block by block.
  37.  
  38. The  purpose of this little library is to avoid such  experiences 
  39. in the future by copying the disk directory into a file that  can 
  40. be  stored  on  a separate disk and restored if need  be  to  its 
  41. original  place.  DBACK [X]>Y will create a file called DIRFL.DRX 
  42. on drive Y containing the entire disk directory for drive X (omit 
  43. if  current  drive).  DREST [d] will test the disk  directory  of 
  44. drive d for "bad sectors," not the BDOS variety, but sectors that 
  45. don't  contain what a directory should.  It then asks you if  you 
  46. want  to restore the directory from the file you  had  previously 
  47. made with DBACK (which can be on a different drive). To be on the 
  48. safe  side,  you might answer N the first time and take a look at 
  49. your directory tracks with a disk utility like SRW.   If you type 
  50. 'Y', your directory will be restored from the file. Simple, no?
  51.  
  52. Since loss of a directory puts programmers in a state of panic, I 
  53. have made the program very simple; it doesn't let you screw up by 
  54. putting  the  wrong  part of the file at  the  wrong  place,  but 
  55. restores the whole thing. The only thing to watch out for is that 
  56. the DIRFL file is identified only by the drive letter:  DIRFL.DRA 
  57. contains the directory for drive A,  etc.  This means that if you 
  58. have a floppy disk system you have to remember which disk was  in 
  59. which  drive.  The  way  to use this program is to back  up  your 
  60. directory just before you engage in a dangerous programming task. 
  61. But  in  answer to those who will claim that you  can't  know  in 
  62. advance  when the tragedy will occur,  I answer that a  partially 
  63. restored  directory  is better than no directory at all.  If  you 
  64. have written to the disk since the backup,  you'll just lose some 
  65. recent  material.  But  even if you have erased a  file  and  its 
  66. blocks  have  been reallocated,  you can always erase  it  again. 
  67. You'll  still  be  saving all the files that  remained  unchanged 
  68. since your backup.  For a hard disk, that can be quite a few.
  69.  
  70.  Technical notes:
  71.  
  72.  -- The  directory test divides sectors into  G=good,  B=bad  and 
  73. E=erased.  Since the program tests each sector twice,  it returns 
  74. an  E  for directory sectors half full or less (<=2  entries).  I 
  75. have left this in since it doesn't seem worthwhile creating a new 
  76. category; what you're really interested in are the sectors marked 
  77. 'B'!
  78.  
  79.  -- These  programs come configured for a three-drive system.  If 
  80. you have more than a,b,c,  change the byte at 102H from 3 to  the 
  81. number of drives on your system.
  82.  
  83.  -- Another  supposition is that the number of sectors/track is a 
  84. one-byte number.  (In fact, in order for the directory display to 
  85. work, you'd better have no more sectors per track than columns on 
  86. your screen!) If this isn't true for your system,  I'd be glad to 
  87. rewrite the relevant parts of the program.  Just DON'T USE IT  AS 
  88. IS: if you've just lost your directory you have troubles enough.
  89.  
  90.  -- Since  it is now easy to change the maximum drive  number,  I 
  91. have not included the source code in this version of the library
  92.  
  93. Eric Gans 
  94. French Dep't UCLA 
  95. Los Angeles, CA 90024