home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol044 / sd-41.doc < prev    next >
Text File  |  1984-04-29  |  12KB  |  265 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                     The SD Directory Program
  7.  
  8.  
  9.  
  10.      This documentation file concerns SD-NEW.ASM and SD-NEW.OBJ,
  11. version  4.1  as  of  October  20,  1981.    Version  4.1  is  a
  12. significant  upgrade  of  the standard "super-directory" program
  13. that most RCP/M systems are  now  using as their "DIR" executor.
  14. SD-41 implements many new features  over version 3, and has been
  15. tested  on  a  wide variety of CP/M systems  prior  to  release.
  16. However, due to  the large number of equates in the source file,
  17. all possible permutations have NOT been tested, and it should be
  18. understood that revision  4.1  is  experimental  in  nature, and
  19. should  not  be  placed  on-line  in  remote  applications until
  20. sufficient  time  has elapsed to allow for initial  bug  reports
  21. from the field.  
  22.  
  23.      The most significant  difference  between  version  4.1 and
  24. version  3.X  concerns  the  ability  of SD to search a range of
  25. drives and/or user areas for a specified  file.  This capability
  26. is patterned after FILEFIND, but is significantly more useful in
  27. that  SD will report the sizes of files matched.    A  new  BDOS
  28. intercept  routine  has been added, which although more involved
  29. than  the FILEFIND method,  is  more  generally  applicable  and
  30. should  run "as-is" on most CP/M systems.  Thus, by using SD-41,
  31. the use of a separate FILEFIND program should be unnecessary.  
  32.  
  33.      The  basic operation of SD is as in previous releases.  You
  34. merely  type   "SD",   followed  by  an  optional  ambiguous  or
  35. unambiguous  filename (as  you  would  with  the  CCP  directory
  36. command).  Omitting  the  filename  (i.e.,  "SD  [CR]"), will be
  37. interpreted  as  "SD *.*".  Similarly, "SD A:" would  imply  "SD
  38. A:*.*" and "SD B:"  would  imply "SD B:*.*".  In addition to the
  39. filename option, up to 8 command  line options may be specified.
  40. If  options  are  to be specified, then  the  filename  must  be
  41. EXPLICITLY specified  by  at  least a drive code.  Option fields
  42. are  preceded  by a single dollar  sign  as  with  most  Digital
  43. Research programs  such as MAC, and may be essentially free-form
  44. in format.  Example:  SD  A:  $s  a  D  rn u0 fp.  Note that the
  45. reference  to the A drives in "A:" is mandatory.    Invoking  SD
  46. with a command  of the form "SD $s a D rn u0 fp" would result in
  47. SD thinking that  $S was the file to be searched for.  Note also
  48. that spaces and case  within  the option field are insignificant
  49. (i.e., "$ SADrNu0F p" is equivalent  to  "$  S A D R N U0 F P").
  50. The  only  exception concerns the "USER" option  which  will  be
  51. explained later.  Users should also be aware of two restrictions
  52. on the command  line  format.   SD scans the entire command line
  53. for a dollar sign preceded by at  least  1  blank to delimit the
  54. beginning  of  the option field.  For this reason,  invoking  SD
  55. with a command line  such as "SD $ $AR" is illegal since SD will
  56. consider the first dollar sign to be the option field delimiter.
  57. If you need to specify  a  a filename whose first character is a
  58. dollar sign, precede it with  a  drive  code as in "SD A:$ $AR".
  59. In  this  instance,  SD  will  consider  the first  dollar  sign
  60. insignificant as it is not preceded by a blank.  
  61.  
  62.  
  63.  
  64.                                 1
  65. SD-41 Documentation Notes
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.      The second restriction is that command  line options may be
  73. specified once and only once per invocation.   That  is,  "SD A:
  74. $SDS"  would be illegal since the "S" option is specified twice.
  75. This shortcoming  is  due  to  the fact that options can be made
  76. into defaults at assembly time.  
  77.  
  78.      The eight options recognized are:  
  79.  
  80.   "S" - system option : system files will be included in
  81.         the output rather than being suppressed.  
  82.  
  83.   "F"  -  file  option : the directory  output  will  be
  84.         echoed to  a  disk  file  named  "SD.DIR" on the
  85.         DEFAULT drive.  If SD.DIR already  exists,  then
  86.         the directory output will be APPENDED to the end
  87.         of  the file.  Otherwise, SD.DIR will be created
  88.         as a new file.  The append feature allows you to
  89.         build  up  one massive file on the default drive
  90.         containing the directories of all of your disks,
  91.         without  having   to  concantenate  a  swarm  of
  92.         individual directory  files.  If you plan to use
  93.         this feature often, it willbe simpler for you to
  94.         have a dedicated version  on  your  MASTCAT disk
  95.         with RESFLG set TRUE.  The advantage  of this is
  96.         that  you  can  work  through  a  pile  of disks
  97.         without  having  to  CTRL-C  or  specify the "R"
  98.         option everytime you SD a new disk.   Failing to
  99.         do  this  will  result in the allocation  vector
  100.         being invalid, and FREE size will be wrong.  
  101.  
  102.   "U" - user option : allows  the  specification  of the
  103.         user  number for the directory of the form "Uxx"
  104.         where the  user  #  is  greater  than 0, but not
  105.         greater than a specified value not to exceed 15.
  106.         The user option specification will be illegal if
  107.         the user # is out of range, omitted,  or if U is
  108.         specified  on  a  pre-CP/M 2 system.  Note  that
  109.         since  the  user  option  requires  a  parameter
  110.         (i.e., the user number),  the  user  number must
  111.         immediately follow the "U" option on the command
  112.         field.    That is, "U1" is legal, but "U  1"  is
  113.         not.  In this respect, the U option differs from
  114.         the other options  in  that  embedded spaces ARE
  115.         significant.  
  116.  
  117.   "A" - all users : causes SD to display  directories of
  118.         all  user  areas  starting  at  the  user   area
  119.         specified  in  the  U  option or, if U option is
  120.         omitted, the default user area and continuing up
  121.         to MAXUSR.  
  122.  
  123.   "R" - reset option : allows for automatic resetting of
  124.         the disk prior to performing directory search so
  125.         that  the  allocation vector  will  be  updated.
  126.         Same as doing  a CTRL-C when changing disks, but
  127.         handy if you didn't  (such  as  when  running  a
  128.  
  129.  
  130.                                 2
  131. SD-41 Documentation Notes
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.         SUBMIT  file).  Note that the RESFLG equate will
  139.         force the  R option unconditionally each time SD
  140.         is run.  Useful  for SDing a stack of disks with
  141.         the "F" option, but  slows  down SD considerably
  142.         in normal use.  
  143.  
  144.   "N"  - no page option : unconditionally  disables  the
  145.         page  pause  option.   Useful when running SD in
  146.         the "F" and/or "A" modes when you don't want the
  147.         page prompt slowing you  down.   Note that SD-41
  148.         will  not  put  the page-pause prompt  into  the
  149.         output file.  
  150.  
  151.   "P" - printer option : forces all console output to be
  152.         echoed to the CP/M  list  device,  with the most
  153.         significant bit set to 0.  
  154.  
  155.   "D" - all disk option : allows SD to search  all  disk
  156.         drives  on-line  starting  with  the  disk drive
  157.         specified  or  implied  with  the  command  line
  158.         filename.    For example, "SD B: $D" will result
  159.         in SD searching  all drives beginning with drive
  160.         B.  "SD *.* $D" will  result in SD searching all
  161.         drives beginning with the  drive  that is logged
  162.         in.  
  163.  
  164.      If   an  unrecognized  option  (or  illegal   user   option
  165. specification) is detected, then the command line will be played
  166. back to the  console  up  to  the  point  where  the  error  was
  167. detected.    However,  if the REPERR option is disabled, then SD
  168. will keep its mouth shut  and  ignore  everything on the command
  169. line  past the illegal field.  In this situation,  an  illegally
  170. specified  user  number  would  default back to the current user
  171. number.  The option of DISABLING  error  reporting  was included
  172. primarily  for systems with hidden doors and secret passageways.
  173. Shooting off  rockets  and  clanging  bells  everytime a holswap
  174. starts  "experimenting" just calls attention to  the  fact  that
  175. there really  IS  something  behind  that  hollow- sounding wall
  176. after all (if you get my drift).  
  177.  
  178.      As an added convenience, it is possible to "hard-wire" some
  179. or all of the command line options.  For example, if you want SD
  180. to ALWAYS perform a reset of the disk system  before putting its
  181. show  on the road, you can do just that.  For details,  see  the
  182. comments   preceding  the  option  field  lookup  table  in  the
  183. assembler source file.  
  184.  
  185.      Finally,  if  the  all-disk  and/or  all-user  options  are
  186. enabled,   it  may  be  desirable  to  restrict  searches.    To
  187. facilitate this,  a  table is included in SD (beginning at label
  188. "LODRV" and continuing  through "HIDRV").  The table consists of
  189. a single byte for each drive  to  be  searched beginning with A.
  190. Each byte may be in the range of 0-15 mod  15  and  defines  the
  191. highest  user  number  that  SD  will search for that particular
  192. drive.  The highest drive number to  search  is  defined  by the
  193. length of the table.  If four DBs are present between LODRV  and
  194.  
  195.  
  196.                                 3
  197. SD-41 Documentation Notes
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204. HIDRV,  then  drives  A-D  can  be  searched.    The source file
  205. includes the LODRV-HIDRV table in its maximum configuration  for
  206. 16  drives.    However,  it  is  recommended that you delete DBs
  207. referencing  drives  that  aren't  available   on  your  system.
  208. Although  SD  will  intercept  attempts  to  search non-existant
  209. drives, there really isn't any point in allowing  SD  to  always
  210. search  drive  C  when  you  only  have  2  logical  drives; and
  211. depending  on  how  your  BIOS  is  constructed and how long  it
  212. monkeys around before advising the BDOS  of the select error, it
  213. could save some time.  
  214.  
  215.      
  216.                A THOUGHT FROM "THE LAST REVISOR"
  217.  
  218.      If you sit down and figure out the number  of  permutations
  219. of  options  and  equates  in the latest versions of SD,  you'll
  220. understand why there aren't  any warranties as to the absence of
  221. entomological cybernoids.  I leave  it  to the CP/M community to
  222. smoke  out  what bugs may pop-up when a certain  combination  of
  223. variables occurs.    If  you  find  any  bugs,  please  leave an
  224. advisory or a fix on either TCBBS or the Hyde Park RCP/M so that
  225. they can be exterminated.  
  226.  
  227.      Finally, my latest revisions expanded the size of the  load
  228. module considerably, and it is now weighing in at just under  2K
  229. if all of the options are enabled.  A program of this type has a
  230. tendency  to be widely propogated throughout a disk library, and
  231. since 2K is  the  block  size  of  most  double and quad-density
  232. systems, I feel that it is important to try and keep SD under 2K
  233. if at all possible.  That's why some of my  code  may be cryptic
  234. in some places - I've sacrified clarity for code reductions.  If
  235. you  plan  to make public-domain enhancements to SD which  would
  236. push it over  the  2K mark, ask yourself whether its worth tying
  237. up an additional disk  block.    This  is also an invitation for
  238. someone less lazy than myself to further  optimize  the  code to
  239. reduce SD to as compact a package as possible (thus making  room
  240. for more enhancements).  For my part, I quit when I got it under
  241. 2K.    It  works,  it  fits and I'm ready to move onto something
  242. else.  
  243.  
  244.      
  245.                        I pass the torch.
  246.  
  247.                           David Boruff
  248.                       Knoxville, Tennessee
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.                                 4
  263. SD-41 Documentation Notes
  264.  
  265.