home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpmug / cpmug085.ark / SD-44.DOC < prev    next >
Encoding:
Text File  |  1984-04-29  |  13.9 KB  |  318 lines

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