home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol055 / sigmlog.044 < prev    next >
Encoding:
Text File  |  1984-04-29  |  38.3 KB  |  1,072 lines

  1. Sig/M    Volume 44    Miscellaneous CP/M Utilities
  2.  
  3.         -CATALOG.044    contents of Sig/M volume 44
  4.                 released November 25, 1981
  5.         ACKLIST.044    acknowledgement file
  6.         CRCKLIST.044    checksum of Sig/M volume 44
  7.  
  8. index     name        size    description
  9.  
  10. 44.01     CHAT16  .ASM     8K    interactive remote/local operations        
  11. 44.02     CPM2HELI.DOC     4K    CP/M to Helios
  12. 44.03     CPM2HELI.OBJ     1K     /
  13. 44.04     CPM2HELI.S       5K    /
  14. 44.05     DU-V77  .ASM    42K    updated disk utility
  15. 44.06     DU-V77  .DOC     6K     /
  16. 44.07     DU-V77  .OBJ     6K    /
  17. 44.08     FLAGS   .DOC     2K    edit file attributes
  18. 44.09     FLAGS12 .ASM    12K    /
  19. 44.10     FMAP4   .ASM    11K    update FMAP of cataloging system
  20. 44.11     FMAP4   .OBJ     2K    /
  21. 44.12     HELI2CPM.OBJ     1K    Helios to CP/M
  22. 44.13     HELI2CPM.S       5K    /
  23. 44.14     PIPPATCH.ASM     5K    patch for PIP
  24. 44.15     SD-41   .ASM    46K    updated Super Directory
  25. 44.16     SD-41   .DOC    12K    /
  26. 44.17     UNERA   .HLP     3K    UNERAse erased programs
  27. 44.18     UNERA11 .ASM     6K    /
  28. 44.19     WASH-10 .DOC    16K    disk directory maintenance utility
  29. 44.20     WASH-16 .ASM    34K    /
  30.  
  31.  
  32. Copyright (C) 1981 by Sig/M-Amateur Computer Group
  33. of New Jersey Inc., Box 97, Iselin N.J. 08830-0097
  34.  
  35.               CPM2HELI.DOC
  36.                      by
  37.             Jim Blackwood
  38. ***************************************************************
  39.  
  40. THE PROGRAMS CPM2HELI.OBJ AND HELI2CPM.OBJ CONVERT CPM TEXT
  41. FILES TO PROCESSOR TECH HELIOS II EDIT FILES, AND VICE-VERSA.
  42. TO CONVERT A CP/M FILE, LINEFEEDS, HTABS, AND CTRL/Z'S ARE
  43. REMOVED. IF THERE ARE 64 CHARACTERS WITHOUT A CR, ONE IS
  44. INSERTED. THIS MAKES EDIT DELIRIOUS WITH JOY. THE OTHER WAY,
  45. LINEFEEDS ARE ADDED AFTER EACH CR, AND CTRL/Z IS ADDED AT
  46. THE END. THE SOURCE VERSIONS ARE CPM2HELI.S AND HELI2CPM.S.
  47. THE PROGRAMS WILL NOT RUN, AND THE SOURCE WILL NOT ASSEMBLE
  48. UNDER CP/M. YOU NEED PTDOS1.4 OR 1.5. THE PROGRAMS READ BLOCKS
  49. OF THE INPUT FILE INTO A BUFFER. THE OFFENDING CHARACTERS
  50. ARE REMOVED (OR ADDED) AND THE MODIFIED FILE IS WRITTEN TO
  51. THE DISK. EDIT IS A SCREEN EDITOR, AND I'M MUCH MORE
  52. COMFORTABLE WITH IT THAN I AM WITH ED. THESE PROGRAMS LET
  53. ME ADAPT BASIC PROGRAMS, ASSEMBLY LANGUAGE PROGRAMS, ETC.
  54. FROM THE SIG/M LIBRARY TO MY OWN ENVIRONMENT. I SUSPECT THERE
  55. ARE VERY FEW FOLKS OUT THERE WHO CAN USE THIS STUFF, BUT
  56. IF YOU HAVE CP/M-LIFEBOAT-HELIOS, YOU MIGHT ENJOY IT. I
  57. GUESS I'M SUPPOSED TO MENTION THAT CP/M IS A PRODUCT OF
  58. DIGITAL RESEARCH AND THAT LIFEBOAT IS LIFEBOAT ASSOC.
  59. IF YOU HAVE QUESTIONS, FIND BUGS, ETC., YOU CAN GET ME AT
  60. 201-233-1285. OH YES, YOU MUST SET BU=8000 (OR LOWER)
  61. OR YOU WILL GET A LOADER ERROR, & THINGS MAY BLOW UP.
  62.  
  63. THE OBJECT PROGRAMS ARE ASSEMBLED AT 103H. THE FIRST TIME,
  64. PUT THE OBJECT CODE INTO AN IMAGE FILE. YOU CAN THEN
  65. PROCESS THE SOURCE FILES, AND ASSEMBLE THEM WHEREVER YOU
  66. WISH. USING DDT, PUT THE FILE INTO MEMORY STARTING AT 400H
  67. IN THE FOLLOWING MANNER. BE SURE THAT YOUR BOOTLOAD IS
  68. NOT ANYWHERE IN LOW MEMORY. I PUT MINE AT 0C900H. YOU HAVE
  69. TO PUT THE PROGRAMS AT 400H BECAUSE START.UP USES SOME
  70. LOW MEMORY.
  71.              DDT
  72.              -ICPM2HELI.OBJ
  73.              -R300
  74.  
  75. NOW, BOOT UP HELIOS, AND ENTER:
  76.              IMAGE CPM2H:O,!250,403,64E,:103,103
  77.  
  78. YOU CAN, OF COURSE, USE ANY NAME YOU WANT. TYPE THE
  79. NAME OF THE FILE, AND YOU ARE IN BUSINESS. THE PROGRAM
  80. WILL PROMPT FOR THE INPUT AND OUTPUT FILE NAMES.
  81. IF YOU WANT TO TRANSFER THE HELI2CPM.OBJ FILE, FOLLOW
  82. THE SAME PROCEDURE, EXCEPT THAT THE IMAGE COMMAND IS:
  83.           IMAGE H2CPM:O,!4C0,403,62B,:103,103
  84.  
  85. TO TRANSFER FILES FROM CP/M TO HELIOS:
  86.   WHILE IN CP/M
  87.                DDT
  88.                -I(FNAME)
  89.                -R300
  90.   DDT WILL RESPOND WITH THE LAST LOAD ADDRESS, SAY XXXX
  91.   BOOT UP HELIOS AND ENTER:
  92.           WRITE FNAME,!4C0,400,XXXX
  93.   YOU MAY USE ANY BLOCK SIZE YOU WISH, I PICKED 04C0H.
  94.   IF THE FILE WON'T FIT INTO MEMORY, YOU WILL HAVE TO
  95.   BREAK IT INTO SMALLER FILES. BECAUSE DDT GIVES THE
  96.   LAST PAGE OF MEMORY LOADED, THERE MAY BE GARBAGE
  97.   AT THE END OF THE FILE, BUT PROCESSING THE FILE
  98.   SHOULD REMOVE THIS.
  99.  
  100. TO TRANSFER TEXT FILES FROM HELIOS TO CP/M
  101.   WHILE IN HELIOS
  102.            READ FNAME,103
  103.   THEN BOOT UP CP/M
  104.            SAVE (PAGES) FNAME
  105.   READ WILL GIVE YOU THE NUMBER OF BYTES IN THE FILE
  106.   REMEMBER TO CONVERT HEX BYTES TO DECIMAL PAGES
  107.   NOW DO THE FOLLOWING, WHILE IN CP/M
  108.     ED FNAME
  109.     *A
  110.     *3D
  111.     *E
  112.   NOW YOU CAN TYPE IT, EDIT IT, ASSEMBLE IT, ETC.
  113.  
  114. TO TRANSFER HEX FILES FROM HELIOS TO CP/M
  115.   WHILE IN HELIOS, TYPE THE FILE NAME OF THE IMAGE
  116.   FILE FOLLOWED BY A COMMA. READ WON'T WORK HERE.
  117.   THE IMAGE FILE SHOULD ORG AT 103. CAN'T IMAGINE
  118.   ANYONE WANTING TO DO THIS, AS THESE PROGRAMS WON'T
  119.   RUN UNDER CP/M. HOWEVER IT IS A WAY OF EXCHANGING
  120.   IMAGE FILES UNDER CP/M. IF YOU HAVE PREVIOUSLY
  121.   LISTED THE FILE, YOU WILL KNOW HOW MANY PAGES TO SAVE.
  122.   AT ANY RATE, ONCE YOU HAVE LOADED THE IMAGE FILE AT
  123.   103H, BOOT UP CP/M AND SAVE THE FILE. TO TRANSFER IT BACK
  124.   TO HELIOS, SEE ABOVE.
  125.   CHEERS.
  126.  
  127.  
  128.              DU-V77.DOC
  129.             by Ward Christensen
  130.   with additional notes by Ron Fowler and Keith Petersen
  131.          (revised 7/23/81)
  132.  
  133.     HOW TO USE DU ver 7.7 DISK UTILITY
  134.  
  135. INSTALLATION:
  136.     The 7.0 and later versions of DU are designed to
  137.   be installed with a minimum of trouble.  In fact, in al-
  138.   most all cases, no changes to the source file should be
  139.   necessary to get DU up and running. This is because DU
  140.   uses the disk paramter block of CP/M to determine the
  141.   characteristics of the disk environment.  (see the dis-
  142.   claimer for certain non-standard versions of CP/M 1.4).
  143.     The only parameter that should need to be changed
  144.   will be the clock speed flag at 103H.  Leave this byte
  145.   zero if you have a 2 mhz clock.  Patch it non-zero for
  146.   4 mhz.  This is only needed for the "Z" (sleep) command.
  147.  
  148. USE:
  149.  
  150. Any valid command string may be placed as an
  151. operand of the original DU command, i.e.:
  152.  
  153.      A>DU G0;D;G2;=OK<D><A><1A>;D
  154.  
  155. Functions supported:
  156.  
  157.     Tnn    Seek to track nn (no read)
  158.     Snn    Position to sector nn, and read
  159.     Gnn    Position to group nn and read.
  160.     G    Shows current position
  161.     V    Views the current sector.
  162.         (assumes ASCII data)
  163.     Vnn    Views nn sectors
  164.     Fname    print directory for file "name",
  165.         then positions to its directory 
  166.         sector. (Won't position under
  167.         CP/M 2.x, but see = command below.)
  168.  
  169.     =string    Ascii search, starting at current
  170.         sector. <xx> hex may be imbedded,
  171.         or used alone:  To find "IN 0FEH":
  172.         =<db><fe>
  173.         Ignores bit 7 unless <xx> is used.
  174.  
  175.     L    Re-logs in the current disk. You may pull
  176.         out a disk, put in a new, and "L" just
  177.         to log it in.
  178.  
  179.     Lx    Logs in disk 'x', such as: LB
  180.  
  181.     Ux    Logs user 'x' for next F command.  Gives
  182.         '?' error if not CP/M version 2.x.
  183.  
  184.     D    Dump sector, hex + ASCII
  185.     A    Dump sector, ASCII only
  186.     H    Dump sector, hex only
  187.  
  188. note all dump commands (D, A, H) may be optionally
  189.     followed by a starting and ending address:
  190.     D0,7F    is the same as just D
  191.     D3,5
  192.     A20,3F
  193.  
  194.     CHaddr,val,val,val... change hex in sector
  195.     CAaddr,char string... change ASCII in sector
  196.         NOTE that <xx> may be hex imbedded
  197.         in the Ascii:  ca0,OK<d><a><1a>
  198.  
  199.         ----> Use W to write changes to disk.
  200.         Note that the C command echoes
  201.         the overlaid data for verification.
  202.  
  203.     CHaddr-addr,byte
  204.  or    CAaddr-addr,byte    repeats a change
  205.  
  206.     +    advance 1 sector (if below track 2,
  207.         this advances to next numerical, if
  208.         2 or >, advances based on CP/M's normal
  209.         sector scrambling algorithm, i.e. so +
  210.         will get the next logical sector of the file
  211.  
  212.     -    backs up 1 logical sector
  213.  
  214.         Note + and - may take an amount:
  215.         for example, +F steps in 15 sectors.
  216.  
  217.         Note also that "-" issued at the first logical
  218.         sector of the disk will wrap back to the last.
  219.         Further, "+" issued at the last sector will
  220.         wrap forward to the first.
  221.  
  222.     ?    Gives command summary
  223.  
  224.     #    Prints the disk parameters
  225.  
  226.     M    Dumps a map of the group allocations
  227.         for files.
  228.     Mn    Shows which file is allocated to
  229.         group "n".
  230.  
  231.     N    Resets CP/M via the BDOS.  This may
  232.         make it possible under some implementations
  233.         of CP/M to change the disk format (e.g., density,
  234.         sides, etc)
  235.  
  236.     R    Reads the sector currently positioned to
  237.         into memory.  Note R (Read) is implicit in
  238.         the G, +, and - commands, but N-O-T in the
  239.         S and T commands (I did it because I was
  240.         tired of disk reading after T command before
  241.         I had a chance to issue the S command)
  242.  
  243.     W    Write back the current sector (N-O-T-E may
  244.         not be used after an F command, as CP/M was
  245.         used to find the file in the directory
  246.  
  247.     X    Exit back to CP/M (Must press return).  Ctl-c
  248.         was too easy to hit over modem lines, so I
  249.         decided on 2-byte (X, CR) to exit.
  250.  
  251.     P    Toggle printer switch on/off
  252.  
  253.     Y       Yanks current sector into sequential memory and
  254.         prints ending address.  This allows sectors to
  255.         be written sequentially into memory starting at
  256.         3000H, for later recovery by DDT, etc.
  257.  
  258.     Z    Sleep - causes the program to pause, such
  259.         as to look at a dump.  Z is 1 sec.  Znn
  260.         is nn tenths of a second on a 2 MHz 8080.
  261.  
  262.     <    Saves current sector in a save buffer
  263.  
  264.     >    Gets saved buffer.  < and > may be used
  265.         to move a sector to another place.
  266.  
  267.     /    Repeats entire command.  Defaults
  268.  or    /nn    to "forever".  NN may be 2 to 65535
  269.  
  270. multiple commands may be separated by ";"
  271.  
  272. Example: the following commands will erase the
  273.      b disk directory to all E5's:
  274.  
  275.     lb        log in b drive
  276.     g0        position to dir.
  277.     ch0-7f,e5    fill with e5
  278.     <        save the sector
  279.     >;w;+;/16    restore, write, next,
  280.             repeat 16
  281.  
  282. ----This could be shortened to:
  283.  
  284.     lb;g0;ch0-7f,e5;<
  285.     >;w;+;/16
  286.  
  287.  
  288.  
  289. INTERPRETATION OF DIRECTORY DATA PRESENTED BY THE DU PROGRAM
  290.  
  291.  
  292. The following explains the format of a CP/M directory entry
  293. as shown by DU, using either the "F" (find file) command,
  294. or just doing "D" (dump) of the directory sectors, which
  295. are located in groups 0 and 1 on a single density disk.
  296.         ----------------
  297. Sample result of "FSID.COM" command:
  298.  
  299. 40  00534944 20202020  20434F4D 0000003A  *.SID     COM...:*
  300. 50  33343536 3738393A  00000000 00000000  *3456789:........*
  301.  
  302. First line -
  303.  
  304. 40  00534944 20202020  20434F4D 0000003A  *.SID     COM...:*
  305. ||  |||                      |  ||    ||    |         |
  306. ||  ||^----hex file name-----^  ||    ||    ^file name^
  307. ||  ||                          ||    ||     in ASCII
  308. ||  ||                   extent-^^    ||
  309. ||  ||                                ||
  310. ||  ||           file size in sectors-^^
  311. ||  ||
  312. ||  ^^-00 = file active
  313. ||     E5 = file erased
  314. ^^-displacement of line in directory sector
  315.  
  316. Second line -
  317.  
  318. 50  33343536 3738393A  00000000 00000000  *3456789:........*
  319.     |                       |
  320.     |                       |
  321.     ^---allocation group numbers-------^
  322.  
  323. END
  324.  
  325.  
  326.  
  327.  
  328.         FLAGS.ASM  is  a  screen  oriented  utility  to  edit  the  file 
  329.         attributes CP/M 2.X file names.  Assemble using MAC.
  330.  
  331.         Remember  that Digital Research reserves flags F5 through F8  and 
  332.         T3.  Application programs should use only T1-T4.
  333.  
  334.         It  is  assumed that you will be using FLAGS with a fairly  fast 
  335.         CRT terminal.  You'll really hate it on a printing terminal.
  336.  
  337.         You  have to set several equates to match  your  terminal.   You 
  338.         need  to  have  a  screen clear  character.   If  your  terminal 
  339.         supports  a  Home  Cursor character,  you may  use  it  to  make 
  340.         updating the screen a bit easier.
  341.  
  342.         Hopefully  more  people will write utilities that can be  easily 
  343.         configured without requiring fancy terminals.
  344.  
  345.         I  plan to release a version that will allow flags to be  updated 
  346.         in multiple files.
  347.  
  348.         If you have trouble with FLAGS,  make "improvements" or want  to 
  349.         make suggestions please let me know.
  350.  
  351.                        Dick Lieber
  352.                        
  353.                        Voice:
  354.                             312-326-4014
  355.  
  356.                        Computer: (RCPM at times)
  357.                             312-326-4392
  358.  
  359.                   Or via the Chicago CBBS   312-545-8086
  360.  
  361.                   or The Hyde Park RCPM     312-955-4493
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.                     The SD Directory Program
  369.  
  370.  
  371.  
  372.      This documentation file concerns SD-NEW.ASM and SD-NEW.OBJ,
  373. version  4.1  as  of  October  20,  1981.    Version  4.1  is  a
  374. significant  upgrade  of  the standard "super-directory" program
  375. that most RCP/M systems are  now  using as their "DIR" executor.
  376. SD-41 implements many new features  over version 3, and has been
  377. tested  on  a  wide variety of CP/M systems  prior  to  release.
  378. However, due to  the large number of equates in the source file,
  379. all possible permutations have NOT been tested, and it should be
  380. understood that revision  4.1  is  experimental  in  nature, and
  381. should  not  be  placed  on-line  in  remote  applications until
  382. sufficient  time  has elapsed to allow for initial  bug  reports
  383. from the field.  
  384.  
  385.      The most significant  difference  between  version  4.1 and
  386. version  3.X  concerns  the  ability  of SD to search a range of
  387. drives and/or user areas for a specified  file.  This capability
  388. is patterned after FILEFIND, but is significantly more useful in
  389. that  SD will report the sizes of files matched.    A  new  BDOS
  390. intercept  routine  has been added, which although more involved
  391. than  the FILEFIND method,  is  more  generally  applicable  and
  392. should  run "as-is" on most CP/M systems.  Thus, by using SD-41,
  393. the use of a separate FILEFIND program should be unnecessary.  
  394.  
  395.      The  basic operation of SD is as in previous releases.  You
  396. merely  type   "SD",   followed  by  an  optional  ambiguous  or
  397. unambiguous  filename (as  you  would  with  the  CCP  directory
  398. command).  Omitting  the  filename  (i.e.,  "SD  [CR]"), will be
  399. interpreted  as  "SD *.*".  Similarly, "SD A:" would  imply  "SD
  400. A:*.*" and "SD B:"  would  imply "SD B:*.*".  In addition to the
  401. filename option, up to 8 command  line options may be specified.
  402. If  options  are  to be specified, then  the  filename  must  be
  403. EXPLICITLY specified  by  at  least a drive code.  Option fields
  404. are  preceded  by a single dollar  sign  as  with  most  Digital
  405. Research programs  such as MAC, and may be essentially free-form
  406. in format.  Example:  SD  A:  $s  a  D  rn u0 fp.  Note that the
  407. reference  to the A drives in "A:" is mandatory.    Invoking  SD
  408. with a command  of the form "SD $s a D rn u0 fp" would result in
  409. SD thinking that  $S was the file to be searched for.  Note also
  410. that spaces and case  within  the option field are insignificant
  411. (i.e., "$ SADrNu0F p" is equivalent  to  "$  S A D R N U0 F P").
  412. The  only  exception concerns the "USER" option  which  will  be
  413. explained later.  Users should also be aware of two restrictions
  414. on the command  line  format.   SD scans the entire command line
  415. for a dollar sign preceded by at  least  1  blank to delimit the
  416. beginning  of  the option field.  For this reason,  invoking  SD
  417. with a command line  such as "SD $ $AR" is illegal since SD will
  418. consider the first dollar sign to be the option field delimiter.
  419. If you need to specify  a  a filename whose first character is a
  420. dollar sign, precede it with  a  drive  code as in "SD A:$ $AR".
  421. In  this  instance,  SD  will  consider  the first  dollar  sign
  422. insignificant as it is not preceded by a blank.  
  423.  
  424.  
  425.  
  426.                                 1
  427. SD-41 Documentation Notes
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.      The second restriction is that command  line options may be
  435. specified once and only once per invocation.   That  is,  "SD A:
  436. $SDS"  would be illegal since the "S" option is specified twice.
  437. This shortcoming  is  due  to  the fact that options can be made
  438. into defaults at assembly time.  
  439.  
  440.      The eight options recognized are:  
  441.  
  442.   "S" - system option : system files will be included in
  443.         the output rather than being suppressed.  
  444.  
  445.   "F"  -  file  option : the directory  output  will  be
  446.         echoed to  a  disk  file  named  "SD.DIR" on the
  447.         DEFAULT drive.  If SD.DIR already  exists,  then
  448.         the directory output will be APPENDED to the end
  449.         of  the file.  Otherwise, SD.DIR will be created
  450.         as a new file.  The append feature allows you to
  451.         build  up  one massive file on the default drive
  452.         containing the directories of all of your disks,
  453.         without  having   to  concantenate  a  swarm  of
  454.         individual directory  files.  If you plan to use
  455.         this feature often, it willbe simpler for you to
  456.         have a dedicated version  on  your  MASTCAT disk
  457.         with RESFLG set TRUE.  The advantage  of this is
  458.         that  you  can  work  through  a  pile  of disks
  459.         without  having  to  CTRL-C  or  specify the "R"
  460.         option everytime you SD a new disk.   Failing to
  461.         do  this  will  result in the allocation  vector
  462.         being invalid, and FREE size will be wrong.  
  463.  
  464.   "U" - user option : allows  the  specification  of the
  465.         user  number for the directory of the form "Uxx"
  466.         where the  user  #  is  greater  than 0, but not
  467.         greater than a specified value not to exceed 15.
  468.         The user option specification will be illegal if
  469.         the user # is out of range, omitted,  or if U is
  470.         specified  on  a  pre-CP/M 2 system.  Note  that
  471.         since  the  user  option  requires  a  parameter
  472.         (i.e., the user number),  the  user  number must
  473.         immediately follow the "U" option on the command
  474.         field.    That is, "U1" is legal, but "U  1"  is
  475.         not.  In this respect, the U option differs from
  476.         the other options  in  that  embedded spaces ARE
  477.         significant.  
  478.  
  479.   "A" - all users : causes SD to display  directories of
  480.         all  user  areas  starting  at  the  user   area
  481.         specified  in  the  U  option or, if U option is
  482.         omitted, the default user area and continuing up
  483.         to MAXUSR.  
  484.  
  485.   "R" - reset option : allows for automatic resetting of
  486.         the disk prior to performing directory search so
  487.         that  the  allocation vector  will  be  updated.
  488.         Same as doing  a CTRL-C when changing disks, but
  489.         handy if you didn't  (such  as  when  running  a
  490.  
  491.  
  492.                                 2
  493. SD-41 Documentation Notes
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.         SUBMIT  file).  Note that the RESFLG equate will
  501.         force the  R option unconditionally each time SD
  502.         is run.  Useful  for SDing a stack of disks with
  503.         the "F" option, but  slows  down SD considerably
  504.         in normal use.  
  505.  
  506.   "N"  - no page option : unconditionally  disables  the
  507.         page  pause  option.   Useful when running SD in
  508.         the "F" and/or "A" modes when you don't want the
  509.         page prompt slowing you  down.   Note that SD-41
  510.         will  not  put  the page-pause prompt  into  the
  511.         output file.  
  512.  
  513.   "P" - printer option : forces all console output to be
  514.         echoed to the CP/M  list  device,  with the most
  515.         significant bit set to 0.  
  516.  
  517.   "D" - all disk option : allows SD to search  all  disk
  518.         drives  on-line  starting  with  the  disk drive
  519.         specified  or  implied  with  the  command  line
  520.         filename.    For example, "SD B: $D" will result
  521.         in SD searching  all drives beginning with drive
  522.         B.  "SD *.* $D" will  result in SD searching all
  523.         drives beginning with the  drive  that is logged
  524.         in.  
  525.  
  526.      If   an  unrecognized  option  (or  illegal   user   option
  527. specification) is detected, then the command line will be played
  528. back to the  console  up  to  the  point  where  the  error  was
  529. detected.    However,  if the REPERR option is disabled, then SD
  530. will keep its mouth shut  and  ignore  everything on the command
  531. line  past the illegal field.  In this situation,  an  illegally
  532. specified  user  number  would  default back to the current user
  533. number.  The option of DISABLING  error  reporting  was included
  534. primarily  for systems with hidden doors and secret passageways.
  535. Shooting off  rockets  and  clanging  bells  everytime a holswap
  536. starts  "experimenting" just calls attention to  the  fact  that
  537. there really  IS  something  behind  that  hollow- sounding wall
  538. after all (if you get my drift).  
  539.  
  540.      As an added convenience, it is possible to "hard-wire" some
  541. or all of the command line options.  For example, if you want SD
  542. to ALWAYS perform a reset of the disk system  before putting its
  543. show  on the road, you can do just that.  For details,  see  the
  544. comments   preceding  the  option  field  lookup  table  in  the
  545. assembler source file.  
  546.  
  547.      Finally,  if  the  all-disk  and/or  all-user  options  are
  548. enabled,   it  may  be  desirable  to  restrict  searches.    To
  549. facilitate this,  a  table is included in SD (beginning at label
  550. "LODRV" and continuing  through "HIDRV").  The table consists of
  551. a single byte for each drive  to  be  searched beginning with A.
  552. Each byte may be in the range of 0-15 mod  15  and  defines  the
  553. highest  user  number  that  SD  will search for that particular
  554. drive.  The highest drive number to  search  is  defined  by the
  555. length of the table.  If four DBs are present between LODRV  and
  556.  
  557.  
  558.                                 3
  559. SD-41 Documentation Notes
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566. HIDRV,  then  drives  A-D  can  be  searched.    The source file
  567. includes the LODRV-HIDRV table in its maximum configuration  for
  568. 16  drives.    However,  it  is  recommended that you delete DBs
  569. referencing  drives  that  aren't  available   on  your  system.
  570. Although  SD  will  intercept  attempts  to  search non-existant
  571. drives, there really isn't any point in allowing  SD  to  always
  572. search  drive  C  when  you  only  have  2  logical  drives; and
  573. depending  on  how  your  BIOS  is  constructed and how long  it
  574. monkeys around before advising the BDOS  of the select error, it
  575. could save some time.  
  576.  
  577.      
  578.                A THOUGHT FROM "THE LAST REVISOR"
  579.  
  580.      If you sit down and figure out the number  of  permutations
  581. of  options  and  equates  in the latest versions of SD,  you'll
  582. understand why there aren't  any warranties as to the absence of
  583. entomological cybernoids.  I leave  it  to the CP/M community to
  584. smoke  out  what bugs may pop-up when a certain  combination  of
  585. variables occurs.    If  you  find  any  bugs,  please  leave an
  586. advisory or a fix on either TCBBS or the Hyde Park RCP/M so that
  587. they can be exterminated.  
  588.  
  589.      Finally, my latest revisions expanded the size of the  load
  590. module considerably, and it is now weighing in at just under  2K
  591. if all of the options are enabled.  A program of this type has a
  592. tendency  to be widely propogated throughout a disk library, and
  593. since 2K is  the  block  size  of  most  double and quad-density
  594. systems, I feel that it is important to try and keep SD under 2K
  595. if at all possible.  That's why some of my  code  may be cryptic
  596. in some places - I've sacrified clarity for code reductions.  If
  597. you  plan  to make public-domain enhancements to SD which  would
  598. push it over  the  2K mark, ask yourself whether its worth tying
  599. up an additional disk  block.    This  is also an invitation for
  600. someone less lazy than myself to further  optimize  the  code to
  601. reduce SD to as compact a package as possible (thus making  room
  602. for more enhancements).  For my part, I quit when I got it under
  603. 2K.    It  works,  it  fits and I'm ready to move onto something
  604. else.  
  605.  
  606.      
  607.                        I pass the torch.
  608.  
  609.                           David Boruff
  610.                       Knoxville, Tennessee
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.                                 4
  625. SD-41 Documentation Notes
  626.  
  627. File "WASH.DOC"
  628.  
  629.         Documentation on the operation of:
  630.               "WASH.COM"
  631.         by:
  632.             Michael J. Karas
  633.             Micro Resources
  634.             2468 Hansen Court
  635.             Simi Valley, California 93065
  636.  
  637.  
  638.     This program is a super-duper CP/M disk directory maintence utility 
  639. that is designed as an "almost" all inclusive routine to make it easy to do 
  640. disk directory house keeping. The inspiration to produce this program came 
  641. from use of an older utility program called "CLEAN" that I came across at a 
  642. meeting of the Valley Computer Club about a year and a half ago. At that time 
  643. "CLEAN" seemed like a dream come true. Unfortunately it had several major 
  644. problems that limited its overall usefullness. The disadvantages of CLEAN have
  645. all been overcome with the new WASH program. Program features are listed 
  646. below:
  647.  
  648.     a) Alphabetical list oriented file operations
  649.  
  650.     b) Any legal CP/M drive (A: to P:) may be selected
  651.  
  652.     c) Operator interface to the file list is at the console
  653.        in sequential apha order in forward or backup mode.
  654.  
  655.     d) The file list is treated as a circular buffer. Forward
  656.        or backward scanning of the list wraps around the list
  657.        back to the beginning or ending respectively.
  658.  
  659.     e) The current list position file can be viewed at the 
  660.        Console, printed on the CP/M List device, or sent
  661.        to the CP/M Punch device.
  662.  
  663.     f) The current list position file may be deleted or renamed.
  664.        If renamed, only the new name must be entered.
  665.  
  666.     g) The current list position file may be copied, with the
  667.        same name, to any other operator selected disk drive.
  668.        The copy utilizes all of available memory as the copy
  669.        buffer for the ultimate in copy speed.
  670.  
  671.           h) The current list can be deleted and the "WASH" operation
  672.        may be begun upon another operator selected disk drive.
  673.  
  674.     i) The program is fully implemented in 8080 assembly language
  675.        for speed, small size, and portability to any CP/M 2.2
  676.        or 1.4 system. No assumption is made upon the maximum
  677.        number of directory files other than available memory 
  678.        space for the list. (A directory with 1024 directory
  679.        file names takes 12 K bytes of storage. Assuming the
  680.        copy buffer minimum size requirement of 128 bytes, then
  681.        WASH should easily run in the minimum CP/M 2.2 20K 
  682.        System with no problems at all.) ALL directory and
  683.        disk I/O is handled through calls to the BDOS. This
  684.        will guarentee WASH compatibility with any CP/M system
  685.        implementation. This makes the program disk media
  686.        independent (all you have to do is get WASH.COM onto
  687.        your diskette or hard disk in the first place.
  688.  
  689.     This Program was Written by:
  690.  
  691.     Michael J. Karas
  692.     MICRO RESOURCES
  693.     2468 Hansen Court
  694.     Simi Valley, California 93065
  695.     (805) 527-7299
  696.     September 20, 1981
  697.  
  698.     NOTE:  The WASH program, its source code, documentation file,
  699.                   and object code, has been released to the PUBLIC DOMAIN
  700.                by Michael J. Karas. This program may be modified to suit
  701.                your personal requirements or those of your friends. In 
  702.                any case no COMMERCIAL or MONEY MAKING ventures with
  703.                regard to SOFTWARE SALES or MODIFICATION and the subsequent
  704.                SALE of the WASH program in WHOLE or any PART is permitted
  705.                by the author. Further modification and public domain
  706.                   distribution of the WASH program must include:
  707.  
  708.         a) This NOTE,
  709.  
  710.         b) The name "WASH" must be retained,
  711.  
  712.         c) The original authorship notice
  713.            from above, and
  714.  
  715.         d) The MICRO RESOURCES Name in the Sign-on
  716.            Menu.
  717.  
  718.     MICRO RESOURCES reserves the right to modify this program at any
  719. time for any purpose. The Intent of the above NOTE is intended for the public 
  720. domain distribution of the WASH program and MICRO RESOURCES reserves the right
  721. to utilize the WASH program for any application whatsoever including but not 
  722. limited to commercial distribution and modification for custom applications
  723. with or without the "WASH" name.
  724.  
  725.  
  726. Modification of WASH
  727. --------------------
  728.  
  729.     If you modify, enhance, or correct bugs in this program, please 
  730. include a short statement of the modifications done and include your name 
  731. and the date. The modification history log should be kept intact with the
  732. source code file in "most recent first" order. Changes to program structure 
  733. will generally require a change in the program version. The version number 
  734. is documented in the signon message and the distribution program name as 
  735. "WASH-10.ASM" in the specific case of the initial release 1.0.
  736.  
  737.     The format for update notices in the source file should follow the
  738. format shown below:
  739.  
  740. Date: Sept. 20, 1981   Version Number: 1.0  Name: Michael J. Karas
  741.  
  742. Initial release to the public domain via the CP/M NET remote 
  743. software access program operated by Kelly Smith, 3055 Waco Ave,
  744. Simi Valley, CA 93063. (805) 527-9321/ PMMI modem.
  745.  
  746.  
  747.  
  748. Running WASH
  749. ------------
  750.  
  751.     The WASH program is run as a transient command under CP/M 2.2
  752. or CP/M 1.4 as follows. The program creates a working list of all selected
  753. file names on the selected drive. Examples of command formats are:
  754.  
  755.     A>WASH<cr>        <== WASH forms working list
  756.                     of all files from default drive A:.
  757.  
  758.     A>WASH B:<cr>        <== WASH forms working list of all
  759.                     files from selected drive B:.
  760.  
  761.     A>WASH *.COM<cr>    <== WASH formas working list of all
  762.                     ".COM" files from default drive A:.
  763.  
  764.     WASH will boot up and read all selected file names from the selected
  765. drive into a "MEMORY" list that is in ascending alphabetical order. The first
  766. file name will be displayed with a ":" prompt awaiting some command from the
  767. operator. The following summary describes WASH commands.
  768.  
  769. WASH Commands
  770. -------------
  771.  
  772.     The Wash program permits entry of various commands while the console
  773. cursor is positioned at a ":" prompt after the currently displayed file name
  774. in the file name list.
  775.  
  776. **** File List Manipulation Comands.
  777.  
  778.     File Forward (SPACE or CARRIAGE RETURN) Command
  779.     -----------------------------------------------
  780.  
  781.     This command will increment the displayed list pointer and 
  782.     then display the  next file name in the list. If last file
  783.     name in list is currently displayed, the message "End of List"
  784.     is displayed and file name display wraps around to the first 
  785.     file name.
  786.  
  787.     Backup (B) Command
  788.     ------------------
  789.  
  790.     This command will decrement the displayed list pointer and
  791.     display the previous file name from the list. If the first file 
  792.     name in the list is currently displayed, the message "Beginning
  793.     of List" is displayed and the file name display wraps back to
  794.     the last file name in the list.
  795.  
  796.  
  797. **** File Operation Commands.
  798.  
  799.     View (V) File Command
  800.     ---------------------
  801.     
  802.     The contents of the currently displayed file name is output
  803.     to the console screen. Text is normally assumed to be ASCII
  804.     and file display ceases upon encountering a logical end of 
  805.     file character (01AH) (ctl-z).
  806.  
  807.     Punch (P) File Command
  808.     ----------------------
  809.  
  810.     The contents of the currently displayed file name output
  811.     to the CP/M logical Punch device. Text is normally assumed to 
  812.     be ASCII and file punching ceases upon encountering a logical end 
  813.     of file character (01AH) (ctl-z).
  814.  
  815.     List (L) File Command
  816.     ---------------------
  817.  
  818.     The contents of the currently displayed file name is output
  819.     to the CP/M logical List device. Text is normally assumed to 
  820.     be ASCII and file listing ceases upon encountering a logical 
  821.     end of file character (01AH) (ctl-z).
  822.  
  823.     Copy (C) File Command
  824.     ---------------------
  825.  
  826.     This command allows the complete contents of the currently
  827.     displayed file name to copied to a file on another operator
  828.     selected drive with the same name. If the file name already 
  829.     exists on the destiantion disk, the operator is asked if it
  830.     should be replaced.
  831.  
  832.     Delete (D) File Command
  833.     -----------------------
  834.  
  835.     The file with name corresponding to the currently displayed 
  836.     list name is deleted from the disk directory. After deletion
  837.     the message "Deleted" is displayed at the console. Deleted 
  838.     file name is also removed from the in memory list.
  839.  
  840.     Rename (R) File Command
  841.     -----------------------
  842.  
  843.     The file name currently displayed is renamed to the operator 
  844.     entered name in response to the "New Name ?" prompt. The list
  845.     in memory is also updated to reflect the new file name.
  846.  
  847. **** Miscellaneous Commands.
  848.  
  849.     Exit (X) Command
  850.     ----------------
  851.  
  852.     Command when entered will terminate WASH operation and return
  853.     system control to the CP/M Console Command Processor via a
  854.     warm boot operation.
  855.  
  856.     Start (S) over on New Drive Command
  857.     -----------------------------------
  858.  
  859.     Entry of the Start over command will cause the WASH program
  860.     to make up a new directory name list in memory from the drive
  861.     designator entered by the operator in response to the "New 
  862.     Drive ?" prompt.
  863.  
  864.  
  865. OPERATIONAL NOTES ON WASH
  866. -------------------------
  867.  
  868.     Command entries not understood by WASH will cause display of a 
  869. "?" character followed by redisplay of the same current list position
  870. file name. Command entries, other than Backup, will generally execute
  871. and then return to the command mode with the next file name from the list
  872. displayed.
  873.  
  874.     Entry of a carriage return in response to the "New Name ?" prompt
  875. of the Rename command or to the "New Drive ?" prompt of the Start Over
  876. command will abort the command function and cause display of the next file
  877. name in the file name list.
  878.  
  879.     The WASH program contains a liberal number of error checking
  880. functions not normally seen by the operator unless an error condition
  881. arises. These are always displayed with leading and trailing pairs of the 
  882. plus sign character as:
  883.  
  884.     ++ Error Message ++
  885.  
  886. Some of the error conditions are:
  887.  
  888.     ++ Not Found ++
  889.  
  890.         command line wild card file specification
  891.         name list is empty, or disk is empty.
  892.  
  893.         -or-
  894.  
  895.         delete, rename, copy source files not found.
  896.         (most likely due to a diskette change)
  897.  
  898.     ++ Name Already Exists ++
  899.  
  900.         attempt to rename a file to a name already present
  901.         on the disk.
  902.  
  903.     ++ File Cannot Be Opened ++
  904.  
  905.         output file for view, list, or punch, cannot be
  906.         opened for reading. Most probable cause is due to
  907.         a disk change.
  908.  
  909.     ++ Source File Cannot Be Opened ++
  910.  
  911.         source file on a copy operation cannot be found on
  912.         the disk. Most likely casued by a disk change.
  913.  
  914.     ++ Cannot Select Same Disk as Source ++
  915.  
  916.         the copy to destination disk selected by the operator 
  917.         must be different than the source disk.
  918.  
  919.     ++ Destination Directory Full ++
  920.  
  921.         The destination file on a copy operation cannot be opened
  922.         because the destination disk directory is full.
  923.  
  924.     ++ No Memory Available For Copy Buffer ++ 
  925.  
  926.         Caused when size of in memory list is so large that an
  927.         attempted copy operation can find no buffer space.
  928.  
  929.     ++ Disk or Directory Full on Write ++
  930.  
  931.         Caused when a copy operation attempts to place a file 
  932.         on a destination disk that does not have enough room
  933.         for the file, or not enough room to contain all the 
  934.         directory extent entries for the destination file.
  935.  
  936.     ++ Destination Close Error ++
  937.  
  938.         Destination file on a copy operation cannot be closed
  939.         most likely due to a full directory.
  940.  
  941. Looking at WASH in Action
  942. -------------------------
  943.  
  944.     The following text is an example session with WASH at the console.
  945. This dislay was made possible through use of Kelly Smith's new console
  946. i/o capture program I/O-CAP.COM. The intepretation of the action below
  947. should be self evident via the descriptions in the above sections.
  948. The text "<== xxxxxxxxxxxx" indicates text typed in for documentation
  949. purposes and not by the WASH program.
  950.  
  951.  
  952. A>WASH<cr>                <== start up wash for *.* on A:
  953.  
  954.  
  955.    MICRO RESOURCES DIRECTORY "WASH UTILITY" Ver 1.0
  956.  
  957.          Command    Function
  958.          -------    ----------------------------
  959.             V       View file at Console
  960.             L       Print file to List Device
  961.             P       Send file to Punch Device
  962.             C       Copy file to another Disk
  963.             R       Rename file
  964.             D       Delete file
  965.             X       Exit to CP/M
  966.             B       Backup one file in List
  967.             S       Restart on another Drive
  968.          sp or cr   Forward to next file in List
  969.  
  970.  
  971. A: /       .COM   :              <== space bar to go forward
  972. A: ADIR    .COM   :  
  973. A: ASM     .COM   :  
  974. A: CONCAP  .COM   : B            <== B to backup
  975. <  A: ASM     .COM   : B
  976. <  A: ADIR    .COM   : B
  977. <  A: /       .COM   : B
  978.  
  979.       Beginning of List            <== Backup past top of list
  980.  
  981. <  A: XSUB    .COM   : B
  982. <  A: WORDMAS .COM   : B
  983. <  A: WM      .HLP   : B
  984. <  A: WASH    .HEX   : B
  985. <  A: WASH    .DOC   : B
  986. <  A: WASH    .COM   : B
  987. <  A: WASH    .BAK   : B
  988. <  A: WASH    .ASM   : B
  989. <  A: USQ     .COM   : B
  990. <  A: TYPESQ14.DQC   : B
  991. <  A: TSQ     .COM   : B
  992. <  A: SYSGEN  .COM   :               <== forward again
  993. A: TSQ     .COM   : C  Destination Drive ? B <== Copy two files to B:
  994. A: TYPESQ14.DQC   : C  Destination Drive ? B
  995. A: USQ     .COM   :  
  996. A: WASH    .ASM   :  
  997. A: WASH    .BAK   :  
  998. A: WASH    .COM   :  
  999. A: WASH    .DOC   :  
  1000. A: WASH    .HEX   :  
  1001. A: WM      .HLP   :  
  1002. A: WORDMAS .COM   : B
  1003. <  A: WM      .HLP   : B
  1004. <  A: WASH    .HEX   : B
  1005. <  A: WASH    .DOC   : B
  1006. <  A: WASH    .COM   : B
  1007. <  A: WASH    .BAK   : D  Deleted        <== delete an old file
  1008. A: WASH    .COM   :                  <== I didn't want
  1009. A: WASH    .DOC   : S  New Drive ? B        <== Start over on new drive
  1010.  
  1011.                         <== WASH signs on again for 
  1012.                             Drive B:
  1013.    MICRO RESOURCES DIRECTORY "WASH UTILITY" Ver 1.0
  1014.  
  1015.          Command        Function
  1016.          -------    ----------------------------
  1017.             V       View file at Console
  1018.             L       Print file to List Device
  1019.             P       Send file to Punch Device
  1020.             C       Copy file to another Disk
  1021.             R       Rename file
  1022.             D       Delete file
  1023.             X       Exit to CP/M
  1024.             B       Backup one file in List
  1025.             S       Restart on another Drive
  1026.          sp or cr   Forward to next file in List
  1027.  
  1028.  
  1029. B: /       .COM   :  
  1030. B: TSQ     .COM   : B
  1031. <  B: /       .COM   : D  Deleted        <== delete a file on B:
  1032. B: TSQ     .COM   :  
  1033. B: TYPESQ14.DQC   :  
  1034. B: WASH    .ASM   :  
  1035. B: WASH    .BAK   : D  Deleted            <== and another
  1036. B: WASH    .COM   :  
  1037. B: WASHTEST.DOC   :  
  1038. B: WM      .HLP   : B
  1039. <  B: WASHTEST.DOC   : V            <== View a text file at crt
  1040.         JUST A SHORT MESSAGE TO DEMONSTRATE THE PHYSICAL
  1041. I/O CAPABILITIES OF "WASH" OF DOCMENTATION.
  1042.  
  1043.  
  1044. B: WM      .HLP   : B
  1045. <  B: WASHTEST.DOC   : P        <== Send text file to my TI-820
  1046. B: WM      .HLP   : B                on the PUNCH port of CP/M
  1047. <  B: WASHTEST.DOC   : L        <== Send text file to printer on
  1048. B: WM      .HLP   :                  the LIST port of CP/M
  1049. B: WORDMAS .COM   :  
  1050. B: Z2      .      :  
  1051. B: Z3      .      :  
  1052. B: Z4      .      :  
  1053.  
  1054.       End of List            <== forward scroll of list 
  1055.                         past end of list
  1056. B: TSQ     .COM   :              <== to first one again
  1057. B: TYPESQ14.DQC   :  
  1058. B: WASH    .ASM   :  
  1059. B: WASH    .COM   :  
  1060. B: WASHTEST.DOC   :  
  1061. B: WM      .HLP   :  
  1062. B: WORDMAS .COM   :  
  1063. B: Z2      .      :  
  1064. B: Z3      .      : B
  1065. <  B: Z2      .      : C  Destination Drive ? A  <== copy to A:
  1066. B: Z3      .      :X            <== exit back to logged drive
  1067.  
  1068. A>   
  1069.  
  1070. +++ End of Documentation File
  1071.  
  1072.