home *** CD-ROM | disk | FTP | other *** search
- **>> ZX3.DOC <<**
-
- ZX.COM is a horiZontal directory eXtended and integrated with other
- common file management utilities. Filenames are listed in
- alphabetical order. Here's the directory display:
-
- A>zx
- =ZX v3.0==1:ZX2 DOC==2:ZX3 DOC=
- : APPEND .COM 1k : CHAR .DEF 1k : CHAR .GTH 1k : CHAR .ZIG 1k
- : COPY .COM 8k : EDFIL8 .COM 11k : FIND51 .COM 3k : FINDBD54.COM 2k
- : MERGPRIN.OVR 8k : NSWP .COM 12k : PRN .COM 29k : RAMDISK .COM 9k
- : RESQ .COM 9k : SETDISK .COM 6k : SMK .COM 4k : SORTV .COM 2k
- : TOON12 .COM 1k : TXTTOWS .COM 2k : UNERA .COM 1k : USFT1C .COM 6k
- : WC .COM 2k : WS .COM 14k : WS0 .DEF 1k : WSMSGS .OVR 26k
- : WSOVLY1 .OVR 27k : ZX .COM 3k
- A: 195k total 194k used 1k left
- A>
-
- In addition to the DIRECTORY, ZX also contains a file ERASE
- function, a SCROLL function for printing files with simultaneous
- text display, a TYPE function for viewing text in segments for
- reading, a sector-oriented text EDITor, a COPY function for
- duplicating files, a RENAME function for changing file names, and an
- UNERASE function for recovery from errors in file erasures. There
- is also a HELP screen, which summarizes these functions. ZX
- remembers recently entered file names, and provides single-
- keystroke reentry of the same names. Where it might be useful, file
- operations are followed automatically by the directory to confirm
- the operation, or to assist in recovery from errors. ZX3.COM is
- smaller than 3k. ZX's small disk footprint is well-suited to any
- situation where space should be conserved. ZX is useful on any CP/M
- 2.x system which has a Z80 CPU and an 80-column screen.
-
- **>> NEW IN ZX3 <<**
-
- ZX, ZX1, and ZX2 are the predecessors of ZX3. The differences in
- ZX2 and ZX3 are:
-
- 1. ZX3 has a unique filename memory. Recently used filenames can be
- re-entered with a single keystroke for later operations.
-
- 2. ZX3 has improved copy logic, and also accepts ambiguous filenames
- so that multiple files may be copied with a single command.
-
- 3. ZX3 has a new UNERASE function, to correct mistaken file
- erasures.
-
- 4. ZX3's TYPE function allows you to step backward through a file
- using the new ^B (Back) command.
-
- 5. ZX3's COPY, ERASE, and RENAME now handle R/O files.
-
- 6. ZX3's SCROLL now accepts ambiguous filenames, so that a document
- in several sections, or all files of a given type, may be printed
- with a single command.
-
- 7. ZX3 gives improved disk space statistics, handling files to 496k
- and disk space to 9999k.
-
-
- **>> USING ZX <<**
-
- FILENAME MEMORY in ZX3 is used in all other operations, and so
- will be described first. Note the names in the header line of the
- directory display above.
-
- =ZX v3.0==1:ZX2 DOC==2:ZX3 DOC=
-
- Listed after ==1: and ==2: are the filenames most recently used in
- the first and second positions on the command line. These names are
- listed in a distinctly different format from the directory to avoid
- confusion between them. ZX's commands all have the format:
-
- A>ZX <NAME(S)> <OP> -> FILENAME(S) and OP-eration in <>
-
- When new names are entered by the user on the command line, they
- are automatically put in the ==1: and ==2: blanks in the header
- line, as appropriate. Afterward,
-
- A>ZX 2 1 C -> means copy ==2: NAME to ==1: NAME
- A>ZX 2 E -> means erase the file named in ==2:
-
- This one-stroke entry of ambiguous or unambiguous filenames reduces
- the work of entering repeated commands, and makes error recovery, for
- example, much easier. ZX remembers its filenames through repeated
- invocations of ZX, through other programs, and through disk changes.
- On some computers, ZX remembers through warm boots, and even through
- cold boots! It all depends on how your system handles memory during
- the reset. On battery-powered portables with continuously refreshed
- memory, ZX may remember for years if you don't enter new names. Try
- it and see. In fact, because filename memory is an unusual facility,
- it will take a few trials to absorb the usefulness of remembered
- filenames when entering commands. Now that I am accustomed to
- filename memory in ZX, I miss it in other programs.
-
- The stored filenames are kept in a seldom-used place. But they are
- in memory, of course, and can be overwritten by other programs which
- use memory in an unusual way, or by the operating system during
- boots. ZX monitors the header line, and when it finds gibberish
- instead of filenames, it will replace the names with blanks and
- start over. If your header line mysteriously empties, and you have
- not turned power off, this is what has happened.
-
-
- COPY requires two file names, followed by C or c (but see autoname,
- below):
-
- A>ZX B:FL.ONE D:FL.TWO C -> copies, finishes with a directory
- of D:, then returns to A: for commands.
-
- AUTONAMING is a second feature of ZX intended to reduce the
- keystroking required to enter command lines. Unlike filename
- memory, autonaming applies only to operations like copying and
- renaming, which require two filenames (and perhaps two disk
- specifications). Autonaming is explained here, but used
- throughout the examples. The essence of it is that ZX3 will
- supply the second file name or disk specification if the user
- omits it. In the example below, ZX autonames the target disk for
- a copy operation, making it the same as the first named disk.
-
- A>ZX FL.ONE FL.TWO C -> makes A:FL.TWO, but
-
- A>ZX B:FL.ONE FL.TWO C -> will make B:FL.TWO, not A:FL.TWO.
-
- If you do not want to think about this, just specify the disks to
- use, as in the first example above, and ZX3 will always follow your
- explicit instructions.
-
- Because most copies use the same file name for the new file, but
- put it on another disk, ZX3 autonames files in the same way, in
- order to save the keystrokes required to type the second file name:
-
- A>ZX *.FLS B: C -> makes B:*.FLS, using the names
- of the files on A:
-
- Filename memory and autonaming are useful together:
-
- A>ZX 1 D: C -> copies the FILE(S) named in ==1:
- to disk D:
-
- Copies of a R/O (Read Only) file are made without notice to the
- user, and a R/O file which is the target of a copy operation is
- revised in the same way. Copies of a R/O file have their previous
- attributes, except that they are R/W (Read or Write).
-
-
- DIRECTORY functions are performed in standard CP/M style:
-
- A>ZX -> directory of A:
- A>ZX D: -> directory of D:
- A>ZX A.FL -> show A.FL only
- A>ZX 2 -> show ==2: only
- A>ZX *.COM -> all .COM files on A:
- A>ZX B:??.* -> B:files with 1 & 2
- letter file names
-
- Invocation of ZX3 automatically logs in all disks present, to avoid
- BDOS errors and to insure that all directory and space information
- is up to date.
-
-
- ERASE is indicated by putting E or e after the file name:
-
- A>ZX BAD.TXT E -> erases A:BAD.TXT,
- then shows directory
- A>ZX B:*.BAK E -> erases all .BAK
- files on B:, confirms
- with B: directory
- A>ZX B:1 E -> erases ==1: on B:,
- does directory
-
- R/O (Read Only) files are erased by ZX3 without muss, fuss, or notice
- to the user.
-
-
- HELP is a screen summarizing these commands:
-
- D>ZX ? -> list of ZX commands
-
-
- RENAME requires two file names on the command line, then R or r:
-
- A>ZX ZX3.COM ZX.COM R -> recommended rename
- A>ZX B:APT.TXT BAD.TXT R -> renames B:APT.TXT to
- B:BAD.TXT, then shows the
- directory to confirm
- A>ZX D:2 1 R -> yep, both files on D:
-
- Renaming a file clears all attributes (flags in the filename), so
- renamed R/O files will become R/W.
-
-
- SCROLL is started by S following the file name:
-
- A>ZX PRINT.FL S -> scrolls text with
- no breaks. NOT followed
- by directory. Useful
- for speed readers, or
- A>ZX PRINT.FL S^P -> for ^Printing the file.
- A>ZX CHAPT?.* S -> scrolls CHAPT1, CHAPT2,
- ...in order found on disk.
-
- A file scroll may be halted by using the standard CP/M signal: type
- ^S to stop, and ^Q to restart, cycling as many times as you wish. If
- you wish to bail out in the middle of a long scroll, type ^S to stop,
- then ^C to warm boot.
-
-
- TYPE is initiated by T or t after the file, and stopped by ^X:
-
- A>ZX WHICH.TXT T -> each keypress
- shows one sector of
- WHICH.TXT, ^X exits
- to a directory, ^B
- steps back a sector.
-
- If you wish to print a subsection of a file, it is convenient to use a
- repeating key to TYPE fast-forward to the right stuff (using ^B to step
- back if you overshoot). Then type ^E to invoke EDIT. You are not
- going to edit, but the edit mode gets CP/M's attention, so that you can
- start the printer with ^P, then <cr>. This will not alter the file,
- but will send the text following to the printer. You can eXit with ^X
- when you have printed enough. Text in files which are typed and
- scrolled is shown with the high bits of characters reset, so that
- WordStar text files will appear as normal text onscreen, and also
- print correctly.
-
-
- EDITing is done from within the TYPE function, by typing ^E after
- display of the sector which you want to alter:
-
- ----------- This section contains lines with 80 characters -------------
-
- D>ZX PRUNE.LET T -> ZX called to Type PRUNE.LET
- Dearest Prunella, please do me the honor of being my wife.
- I can't continue to live without your company.
- Ardently,
- Fahrqhar -> ZX types first sector, stops
- -> Any key continues, ^X quits
- =Edit below= -> ^E edits, retypes text
- Dearest Prunella, please do me the honor of being my wife.[]I can't continue to
- live without your company.[]Ardently,[]Fahrqhar
- Friend Pru: =================favor====feeding my dog. []C=================
- feed him during vacation. ==Regards, ==========
- -> Edited text typed in, cr
- -> ZX displays edited sector
- Friend Pru: please do me the favor of feeding my dog.
- Can't continue to feed him during vacation. -> Any key continues display
- Regards, -> Re-edit with ^E
- Fahrqhar -> Exit to directory with ^X
- -> Automatic dir at end of text
- : PRUNE .LET 1k : PRUNE1 .LET 1k : PRUNE2 .LET 1k : PRUNE3 .LET 1k
- D: 254k total 6k used 248k left
-
- ---------------------- Example EDIT session ----------------------------
-
- Please examine the edit in the illustration above, which uses a
- document only one sector (128 characters) long for simplicity. ZX
- is called from CP/M to TYPE prune.let. It displays the first sector,
- then stops. At this point ^X (Control-X) will exit directly to the
- directory display. A ^E will invoke the edit function in order to
- change the characters just displayed. Fahrqhar typed ^E. The
- sector is then redisplayed for editing in linear form, without
- carriage returns(cr) or line feeds(lf). Instead, cr's are written
- as '[' and lf's as ']'.
-
- The stretched out, left-justified editing display is convenient
- because new text is typed immediately below the characters being
- replaced. There are three special editing characters:
-
- '=' leaves the character above it unchanged
- '[' puts a carriage return in the edited text
- ']' puts a line feed in the edited text.
-
- The '=' enables you to edit only sections which need changing. The
- '[' and ']' enable you to put new line breaks in the text, if
- required. Check the example above.
-
- A carriage return (or typing off the end of the sector) terminates
- editing, and redisplays the newly-edited sector with normal line
- breaks. If the retyped section doesn't look right, another ^E will
- repeat the edit. If the edit seems OK, any other key continues with
- more text, ^B goes back, or ^X exits to the directory.
-
- The same text editing functions used when typing CP/M commands are
- also available while editing in ZX. When you reach the end of the
- first line just keep typing and let the monitor wrap the display
- around under the 48 characters in the second line (80 first line +
- 48 second line). When you type "return" to quit editing, characters
- beyond the quitting point are left unchanged.
-
- Like many other things in computing, text editing with ZX is easier
- done than said. While no one is likely to edit his novel using ZX,
- the mini-editor is well-suited to changing a date, altering a
- phrase, or revising a note in an existing document.
-
-
- UNERASE returns files which have just been erased by ZX or elsewise:
-
- A>ZX GONE.LF U -> unerases the .FL,
- confirms with dir
- A>ZX 1 U -> recovers erase error
- automatically
- A>ZX *.TXT U -> try to recover all
- erased .TXT, then DIR
-
- Unerasure is a function you need only occasionally, but then you
- REALLY need it. UNERA was invented by Gene Cotton, in Interface
- Age, Dec, 1981, p.96, and his article is worth reading as an example
- of stylish assembly language. ZX borrows shamelessly from UNERA.
- Not everything can be successfully recovered. The BDOS may have
- written over your file, if you did something else before ZX...u.
- Some files, which have multiple erased directory entries, cannot be
- sorted out by ZX, and the simultaneous reactivation of duplicate
- entries leaves a wreck. So check the file before you use it.
- Immediate unerasure works 98% of the time.
-
- If ZX cannot recover your file, byte-by-byte disk editing with a
- disk editor like DU can probably do it, but this is much work, and
- only can be justified for a very important file.
-
-
- **>> MESSAGES <<**
-
- The area to the right of the stored filenames, in the header line,
- is ZX3's message area, where notes on the progress of operations
- will appear.
-
- =No file= indicates that a filename supplied does not exist.
- The same message appears when a directory is requested for an empty
- disk. A =No file= is always followed by a directory display in
- order to assist the user in typing the correct file name.
-
- =File exists= indicates that you have tried to rename a file
- to a file name which already exists. The message is (of course)
- followed by a directory.
-
- =* in filename= is the most mysterious of the error
- messages, but means that an ambiguous file name (containing * or ?)
- has been supplied for renaming. Because the directory will be
- scrambled if this command is taken literally, ZX will trap such
- attempts, without restricting the uses of amgiguity in other
- operations. To assist in finding the specific file name, =* in
- filename= is followed by a full directory (surprise!).
-
- =File names identical= You are trying to copy a file into
- itself. If carried out, this command trashes the directory
- entry, so ZX3 notes it, backs out, then shows the directory to
- assist whatever you were trying to do. ZX3 detects subtle
- examples of this difficulty like: A>ZX D:FL.ONE FL.ONE (recall
- that the target disk is autonamed D:), and will give this
- message.
-
- =ZX ? for help= The command character at the end of the input
- line is not on ZX3's list.
-
- =Copying= The command line has cleared all tests. This
- message is repeated at the start of each file during a multi-file
- copy operationn.
-
- =Directory full=, =Disk full=.
-
- =File close failed= It takes great agility to see this
- message, which means that the new file ZX3 made to copy TO has
- somehow disappeared before ZX3 could finish writing it.
-
- =Edit below= Edit mode has been invoked. Align the new
- text below the original text.
-
- =Unerased= ZX found the file(s) you asked it to reactivate.
- Look the recovered file over carefully before asking it to do
- anything important.
-
- =Dir R/W error= Whoops! ZX has had a disk error while trying
- to unerase. Check the directory that ZX automatically shows after
- the error. If it looks OK, try again.
-
-
- **>> ZX3'S USES <<**
-
- ZX3 can serve as the sole file utility in any situation where disk
- space should be conserved. As the notes say, it is a "light power
- tool" whose small disk footprint is better suited to portable
- computers, or to data or archive disks, than are larger programs
- like NSWEEP.
-
- I hope that you find ZX3's command-driven, directory-oriented style
- engaging in its own right. It provides the most economical way, in
- time and keystokes, to perform many of the most frequent file
- operations, and gives many forms of aid to the user. ZX3 follows
- most functions with the updated directory to pave the way for the
- next step, and to confirm that you have done exactly what you
- intended. ZX3 orders all operations from a consistent and simple
- command format, unlike the CP/M utilities which do similar things.
- ZX3 provides several unusual aids to the entry of concise command
- lines, like filename memory and autonaming. It is very powerful in
- batch files, like those executed by SUBMIT, EX, or MAKBATCH, where
- ZX3's ability to take a set of varied and complex orders from the
- command line makes any desired batch operation easy. ZX3's many
- functions and small size are very appropriate in batch files also.
- Its 3k of code make ZX3 fast-loading where it counts, in
- applications which may be repeated hundreds of times.
-
- Besides, there is something likeable about ZX3's relentless
- helpfulness. As you can see from the directory which heads these
- notes, I now keep ZX and Dave Rand's wonderful NSWEEP on utility
- disks, but only ZX on data disks. I hope you also find ZX helpful.
- Please direct comments and bug sightings to:
-
- Mike Yarus
- 2231 16th Street
- Boulder, CO 80302
- January, 1986 Compuserve 73145,513