home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / utils / sysutl / zx31.lbr / ZX3.DQC / ZX3.DOC
Encoding:
Text File  |  1986-05-08  |  17.5 KB  |  414 lines

  1.              **>> ZX3.DOC <<**
  2.  
  3. ZX.COM is a horiZontal directory eXtended and integrated with other
  4. common file management utilities.  Filenames are listed in
  5. alphabetical order.  Here's the directory display:
  6.  
  7. A>zx
  8. =ZX v3.0==1:ZX2     DOC==2:ZX3       DOC=
  9. : APPEND  .COM    1k : CHAR    .DEF  1k : CHAR    .GTH  1k : CHAR    .ZIG  1k
  10. : COPY      .COM    8k : EDFIL8  .COM 11k : FIND51    .COM  3k : FINDBD54.COM  2k
  11. : MERGPRIN.OVR    8k : NSWP    .COM 12k : PRN    .COM 29k : RAMDISK .COM  9k
  12. : RESQ      .COM    9k : SETDISK .COM  6k : SMK    .COM  4k : SORTV   .COM  2k
  13. : TOON12  .COM    1k : TXTTOWS .COM  2k : UNERA    .COM  1k : USFT1C  .COM  6k
  14. : WC      .COM    2k : WS      .COM 14k : WS0    .DEF  1k : WSMSGS  .OVR 26k
  15. : WSOVLY1 .OVR 27k : ZX      .COM  3k
  16. A: 195k total  194k used  1k left
  17. A>
  18.  
  19. In addition to the DIRECTORY, ZX also contains a file ERASE
  20. function, a SCROLL function for printing files with simultaneous
  21. text display, a TYPE function for viewing text in segments for
  22. reading, a sector-oriented text EDITor, a COPY function for
  23. duplicating files, a RENAME function for changing file names, and an
  24. UNERASE function for recovery from errors in file erasures.  There
  25. is also a HELP screen, which summarizes these functions.  ZX
  26. remembers recently entered file names, and provides single-
  27. keystroke reentry of the same names.  Where it might be useful, file
  28. operations are followed automatically by the directory to confirm
  29. the operation, or to assist in recovery from errors.  ZX3.COM is
  30. smaller than 3k.  ZX's small disk footprint is well-suited to any
  31. situation where space should be conserved.  ZX is useful on any CP/M
  32. 2.x system which has a Z80 CPU and an 80-column screen.
  33.  
  34.               **>> NEW IN ZX3 <<**
  35.  
  36. ZX, ZX1, and ZX2 are the predecessors of ZX3.  The differences in
  37. ZX2 and ZX3 are:
  38.  
  39. 1. ZX3 has a unique filename memory. Recently used filenames can be
  40. re-entered with a single keystroke for later operations.
  41.  
  42. 2. ZX3 has improved copy logic, and also accepts ambiguous filenames
  43. so that multiple files may be copied with a single command.
  44.  
  45. 3. ZX3 has a new UNERASE function, to correct mistaken file
  46. erasures.
  47.  
  48. 4. ZX3's TYPE function allows you to step backward through a file
  49. using the new ^B (Back) command.
  50.  
  51. 5. ZX3's COPY, ERASE, and RENAME now handle R/O files.
  52.  
  53. 6. ZX3's SCROLL now accepts ambiguous filenames, so that a document
  54. in several sections, or all files of a given type, may be printed
  55. with a single command.
  56.  
  57. 7. ZX3 gives improved disk space statistics, handling files to 496k
  58. and disk space to 9999k.
  59.  
  60.  
  61.                **>> USING ZX <<**
  62.  
  63. FILENAME MEMORY in ZX3 is used in all other operations, and so
  64. will be described first.  Note the names in the header line of the
  65. directory display above.
  66.  
  67. =ZX v3.0==1:ZX2     DOC==2:ZX3       DOC=
  68.  
  69. Listed after ==1: and ==2: are the filenames most recently used in
  70. the first and second positions on the command line.  These names are
  71. listed in a distinctly different format from the directory to avoid
  72. confusion between them.  ZX's commands all have the format:
  73.  
  74.      A>ZX <NAME(S)> <OP>      -> FILENAME(S) and OP-eration in <>
  75.  
  76. When new names are entered by the user on the command line, they
  77. are automatically put in the ==1: and ==2:  blanks in the header
  78. line, as appropriate.  Afterward,
  79.  
  80.      A>ZX 2 1 C           -> means copy ==2: NAME to ==1: NAME
  81.      A>ZX 2 E              -> means erase the file named in ==2:
  82.  
  83. This one-stroke entry of ambiguous or unambiguous filenames reduces
  84. the work of entering repeated commands, and makes error recovery, for
  85. example, much easier.  ZX remembers its filenames through repeated
  86. invocations of ZX, through other programs, and through disk changes.
  87. On some computers, ZX remembers through warm boots, and even through
  88. cold boots!  It all depends on how your system handles memory during
  89. the reset.  On battery-powered portables with continuously refreshed
  90. memory, ZX may remember for years if you don't enter new names.  Try
  91. it and see. In fact, because filename memory is an unusual facility,
  92. it will take a few trials to absorb the usefulness of remembered
  93. filenames when entering commands.  Now that I am accustomed to
  94. filename memory in ZX, I miss it in other programs.
  95.  
  96. The stored filenames are kept in a seldom-used place.  But they are
  97. in memory, of course, and can be overwritten by other programs which
  98. use memory in an unusual way, or by the operating system during
  99. boots.    ZX monitors the header line, and when it finds gibberish
  100. instead of filenames, it will replace the names with blanks and
  101. start over.  If your header line mysteriously empties, and you have
  102. not turned power off, this is what has happened.
  103.  
  104.  
  105. COPY requires two file names, followed by C or c (but see autoname,
  106. below):
  107.  
  108.   A>ZX B:FL.ONE D:FL.TWO C    -> copies, finishes with a directory
  109.                   of D:, then returns to A: for commands.
  110.  
  111. AUTONAMING is a second feature of ZX intended to reduce the
  112. keystroking required to enter command lines.  Unlike filename
  113. memory, autonaming applies only to operations like copying and
  114. renaming, which require two filenames (and perhaps two disk
  115. specifications).  Autonaming is explained here, but used
  116. throughout the examples.  The essence of it is that ZX3 will
  117. supply the second file name or disk specification if the user
  118. omits it.  In the example below,  ZX autonames the target disk for
  119. a copy operation, making it the same as the first named disk.
  120.  
  121.   A>ZX FL.ONE FL.TWO C          -> makes A:FL.TWO, but
  122.  
  123.   A>ZX B:FL.ONE FL.TWO C      -> will make B:FL.TWO, not A:FL.TWO.
  124.  
  125. If you do not want to think about this, just specify the disks to
  126. use, as in the first example above, and ZX3 will always follow your
  127. explicit instructions.
  128.  
  129. Because most copies use the same file name for the new file, but
  130. put it on another disk, ZX3 autonames files in the same way, in
  131. order to save the keystrokes required to type the second file name:
  132.  
  133.   A>ZX *.FLS B: C         -> makes B:*.FLS, using the names
  134.                  of the files on A:
  135.  
  136. Filename memory and autonaming are useful together:
  137.  
  138.   A>ZX 1 D: C              -> copies the FILE(S) named in ==1:
  139.                   to disk D:
  140.  
  141. Copies of a R/O (Read Only) file are made without notice to the
  142. user,  and a R/O file which is the target of a copy operation is
  143. revised in the same way.  Copies of a R/O file have their previous
  144. attributes, except that they are R/W (Read or Write).
  145.  
  146.  
  147. DIRECTORY functions are performed in standard CP/M style:
  148.  
  149.      A>ZX                     -> directory of A:
  150.      A>ZX D:                     -> directory of D:
  151.      A>ZX A.FL                     -> show A.FL only
  152.      A>ZX 2                     -> show ==2: only
  153.      A>ZX *.COM                  -> all .COM files on A:
  154.      A>ZX B:??.*                 -> B:files with 1 & 2
  155.                          letter file names
  156.  
  157. Invocation of ZX3 automatically logs in all disks present, to avoid
  158. BDOS errors and to insure that all directory and space information
  159. is up to date.
  160.  
  161.  
  162. ERASE is indicated by putting E or e after the file name:
  163.  
  164.      A>ZX BAD.TXT E                 -> erases A:BAD.TXT,
  165.                          then shows directory
  166.      A>ZX B:*.BAK E                 -> erases all .BAK
  167.                          files on B:, confirms
  168.                          with B: directory
  169.      A>ZX B:1 E                  -> erases ==1: on B:,
  170.                          does directory
  171.  
  172. R/O (Read Only) files are erased by ZX3 without muss, fuss, or notice
  173. to the user.
  174.  
  175.  
  176. HELP is a screen summarizing these commands:
  177.  
  178.      D>ZX ?                     -> list of ZX commands
  179.  
  180.  
  181. RENAME requires two file names on the command line, then R or r:
  182.  
  183.      A>ZX ZX3.COM ZX.COM R             -> recommended rename
  184.      A>ZX B:APT.TXT BAD.TXT R             -> renames B:APT.TXT to
  185.                          B:BAD.TXT, then shows the
  186.                          directory to confirm
  187.      A>ZX D:2 1 R                 -> yep, both files on D:
  188.  
  189. Renaming a file clears all attributes (flags in the filename), so
  190. renamed R/O files will become R/W.
  191.  
  192.  
  193. SCROLL is started by S following the file name:
  194.  
  195.      A>ZX PRINT.FL S                 -> scrolls text with
  196.                          no breaks.  NOT followed
  197.                          by directory.  Useful
  198.                          for speed readers, or
  199.      A>ZX PRINT.FL S^P                 -> for ^Printing the file.
  200.      A>ZX CHAPT?.* S                 -> scrolls CHAPT1, CHAPT2,
  201.                          ...in order found on disk.
  202.  
  203. A file scroll may be halted by using the standard CP/M signal: type
  204. ^S to stop, and ^Q to restart, cycling as many times as you wish.  If
  205. you wish to bail out in the middle of a long scroll, type ^S to stop,
  206. then ^C to warm boot.
  207.  
  208.  
  209. TYPE is initiated by T or t after the file, and stopped by ^X:
  210.  
  211.      A>ZX WHICH.TXT T                 -> each keypress
  212.                          shows one sector of
  213.                          WHICH.TXT, ^X exits
  214.                          to a directory, ^B
  215.                          steps back a sector.
  216.  
  217. If you wish to print a subsection of a file, it is convenient to use a
  218. repeating key to TYPE fast-forward to the right stuff (using ^B to step
  219. back if you overshoot).  Then type ^E to invoke EDIT.  You are not
  220. going to edit, but the edit mode gets CP/M's attention, so that you can
  221. start the printer with ^P, then <cr>.  This will not alter the file,
  222. but will send the text following to the printer.  You can eXit with ^X
  223. when you have printed enough.  Text in files which are typed and
  224. scrolled is shown with the high bits of characters reset, so that
  225. WordStar text files will appear as normal text onscreen, and also
  226. print correctly.
  227.  
  228.  
  229. EDITing is done from within the TYPE function, by typing ^E after
  230. display of the sector which you want to alter:
  231.  
  232. ----------- This section contains lines with 80 characters -------------
  233.  
  234. D>ZX PRUNE.LET T            -> ZX called to Type PRUNE.LET
  235. Dearest Prunella, please do me the honor of being my wife.
  236. I can't continue to live without your company.
  237. Ardently,
  238. Fahrqhar                -> ZX types first sector, stops
  239.                     -> Any key continues, ^X quits
  240. =Edit below=                -> ^E edits, retypes text
  241. Dearest Prunella, please do me the honor of being my wife.[]I can't continue to
  242. live without your company.[]Ardently,[]Fahrqhar
  243.      Friend Pru:  =================favor====feeding my dog. []C=================
  244. feed him during vacation. ==Regards, ==========
  245.                     -> Edited text typed in, cr
  246.                     -> ZX displays edited sector
  247.      Friend Pru:  please do me the favor of feeding my dog.
  248. Can't continue to feed him during vacation.  -> Any key continues display
  249. Regards,                -> Re-edit with ^E
  250. Fahrqhar                -> Exit to directory with ^X
  251.                     -> Automatic dir at end of text
  252. : PRUNE   .LET    1k : PRUNE1  .LET  1k : PRUNE2    .LET  1k : PRUNE3  .LET  1k
  253. D: 254k total  6k used    248k left
  254.  
  255. ---------------------- Example EDIT session ----------------------------
  256.  
  257. Please examine the edit in the illustration above, which uses a
  258. document only one sector (128 characters) long for simplicity.    ZX
  259. is called from CP/M to TYPE prune.let. It displays the first sector,
  260. then stops.  At this point ^X (Control-X) will exit directly to the
  261. directory display.  A ^E will invoke the edit function in order to
  262. change the characters just displayed.  Fahrqhar typed ^E.  The
  263. sector is then redisplayed for editing in linear form, without
  264. carriage returns(cr) or line feeds(lf).  Instead, cr's are written
  265. as '[' and lf's as ']'.
  266.  
  267. The stretched out, left-justified editing display is convenient
  268. because new text is typed immediately below the characters being
  269. replaced.  There are three special editing characters:
  270.  
  271.      '=' leaves the character above it unchanged
  272.      '[' puts a carriage return in the edited text
  273.      ']' puts a line feed in the edited text.
  274.  
  275. The '=' enables you to edit only sections which need changing.    The
  276. '[' and ']' enable you to put new line breaks in the text, if
  277. required.  Check the example above.
  278.  
  279. A carriage return (or typing off the end of the sector) terminates
  280. editing, and redisplays the newly-edited sector with normal line
  281. breaks.  If the retyped section doesn't look right, another ^E will
  282. repeat the edit.  If the edit seems OK, any other key continues with
  283. more text, ^B goes back, or ^X exits to the directory.
  284.  
  285. The same text editing functions used when typing CP/M commands are
  286. also available while editing in ZX.  When you reach the end of the
  287. first line just keep typing and let the monitor wrap the display
  288. around under the 48 characters in the second line (80 first line +
  289. 48 second line).  When you type "return" to quit editing, characters
  290. beyond the quitting point are left unchanged.
  291.  
  292. Like many other things in computing, text editing with ZX is easier
  293. done than said.  While no one is likely to edit his novel using ZX,
  294. the mini-editor is well-suited to changing a date, altering a
  295. phrase, or revising a note in an existing document.
  296.  
  297.  
  298. UNERASE returns files which have just been erased by ZX or elsewise:
  299.  
  300.      A>ZX GONE.LF U                 -> unerases the .FL,
  301.                          confirms with dir
  302.      A>ZX 1 U                     -> recovers erase error
  303.                          automatically
  304.      A>ZX *.TXT U                 -> try to recover all
  305.                          erased .TXT, then DIR
  306.  
  307. Unerasure is a function you need only occasionally, but then you
  308. REALLY need it.  UNERA was invented by Gene Cotton, in Interface
  309. Age, Dec, 1981, p.96, and his article is worth reading as an example
  310. of stylish assembly language.  ZX borrows shamelessly from UNERA.
  311. Not everything can be successfully recovered.  The BDOS may have
  312. written over your file, if you did something else before ZX...u.
  313. Some files, which have multiple erased directory entries, cannot be
  314. sorted out by ZX, and the simultaneous reactivation of duplicate
  315. entries leaves a wreck.  So check the file before you use it.
  316. Immediate unerasure works 98% of the time.
  317.  
  318. If ZX cannot recover your file, byte-by-byte disk editing with a
  319. disk editor like DU can probably do it, but this is much work, and
  320. only can be justified for a very important file.
  321.  
  322.  
  323.              **>> MESSAGES <<**
  324.  
  325. The area to the right of the stored filenames, in the header line,
  326. is ZX3's message area, where notes on the progress of operations
  327. will appear.
  328.  
  329.      =No file=    indicates that a filename supplied does not exist.
  330. The same message appears when a directory is requested for an empty
  331. disk.  A =No file= is always followed by a directory display in
  332. order to assist the user in typing the correct file name.
  333.  
  334.      =File exists=  indicates that you have tried to rename a file
  335. to a file name which already exists.  The message is (of course)
  336. followed by a directory.
  337.  
  338.      =* in filename=  is the most mysterious of the error
  339. messages, but means that an ambiguous file name (containing * or ?)
  340. has been supplied for renaming.  Because the directory will be
  341. scrambled if this command is taken literally, ZX will trap such
  342. attempts, without restricting the uses of amgiguity in other
  343. operations.  To assist in finding the specific file name, =*  in
  344. filename= is followed by a full directory (surprise!).
  345.  
  346.      =File names identical=  You are trying to copy a file into
  347. itself.  If carried out, this command trashes the directory
  348. entry, so ZX3 notes it, backs out, then shows the directory to
  349. assist whatever you were trying to do.    ZX3 detects subtle
  350. examples of this difficulty like: A>ZX D:FL.ONE FL.ONE (recall
  351. that the target disk is autonamed D:), and will give this
  352. message.
  353.  
  354.      =ZX ? for help=  The command character at the end of the input
  355. line is not on ZX3's list.
  356.  
  357.      =Copying=    The command line has cleared all tests.  This
  358. message is repeated at the start of each file during a multi-file
  359. copy operationn.
  360.  
  361.      =Directory full=, =Disk full=.
  362.  
  363.      =File close failed=  It takes great agility to see this
  364. message, which means that the new file ZX3 made to copy TO has
  365. somehow disappeared before ZX3 could finish writing it.
  366.  
  367.      =Edit below=  Edit mode has been invoked.    Align the new
  368. text below the original text.
  369.  
  370.      =Unerased=  ZX found the file(s) you asked it to reactivate.
  371. Look the recovered file over carefully before asking it to do
  372. anything important.
  373.  
  374.      =Dir R/W error=  Whoops! ZX has had a disk error while trying
  375. to unerase.  Check the directory that ZX automatically shows after
  376. the error.  If it looks OK, try again.
  377.  
  378.  
  379.             **>> ZX3'S USES <<**
  380.  
  381. ZX3 can serve as the sole file utility in any situation where disk
  382. space should be conserved.  As the notes say, it is a "light power
  383. tool" whose small disk footprint is better suited to portable
  384. computers, or to data or archive disks, than are larger programs
  385. like NSWEEP.
  386.  
  387. I hope that you find ZX3's command-driven, directory-oriented style
  388. engaging in its own right.  It provides the most economical way, in
  389. time and keystokes, to perform many of the most frequent file
  390. operations, and gives many forms of aid to the user.  ZX3 follows
  391. most functions with the updated directory to pave the way for the
  392. next step, and to confirm that you have done exactly what you
  393. intended.  ZX3 orders all operations from a consistent and simple
  394. command format, unlike the CP/M utilities which do similar things.
  395. ZX3 provides several unusual aids to the entry of concise command
  396. lines, like filename memory and autonaming.  It is very powerful in
  397. batch files, like those executed by SUBMIT, EX, or MAKBATCH, where
  398. ZX3's ability to take a set of varied and complex orders from the
  399. command line makes any desired batch operation easy.  ZX3's many
  400. functions and small size are very appropriate in batch files also.
  401. Its 3k of code make ZX3 fast-loading where it counts, in
  402. applications which may be repeated hundreds of times.
  403.  
  404. Besides, there is something likeable about ZX3's relentless
  405. helpfulness.  As you can see from the directory which heads these
  406. notes, I now keep ZX and Dave Rand's wonderful NSWEEP on utility
  407. disks, but only ZX on data disks.  I hope you also find ZX helpful.
  408. Please direct comments and bug sightings to:
  409.  
  410.                          Mike Yarus
  411.                          2231 16th Street
  412.                          Boulder, CO 80302
  413. January, 1986                     Compuserve 73145,513
  414.