You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

136 lines
6.9 KiB

Enhancements to the ZCPR 3.4 Resident Command Package
October 8, 1989 by Carson Wilson
The following is a description of the functional enhancements I have made
since Z34RCP10.LBR. Most of the changes are relatively minor, but several
exciting new capabilities have been added, and a few important bugs have been
fixed.
New CLED (Command Line EDitor) Command:
--------------------------------------
Rob Friefeld, author of LSH and many other excellent Z System tools, has
outdone himself with a new RCP command line editor. CLED is different from
other RCP commands, in that it is the first RCP command which also works as a
shell. By combining the memory-resident characteristics of the RCP with the
shell concept, Rob has created a command which significantly transforms the Z
System environment. CLED greatly expands the user's ability to edit and
correct command lines with such features as insert and move and delete word
left and right, but that isn't all--it also stores a queue of previous
commands (up to 203 bytes total) which can then be recalled (and edited). And
since CLED is memory-resident, there are NO time disk access penalties
involved! Please see RCPCLED.DOC for details on this exciting enhancement.
Enhancements Pertaining to Several Commands:
-------------------------------------------
1. Dynamic Quiet Flag Sensing.
I have added dynamic QUIET flag sensing to the CP, DIR, ERA, POKE, PORT, PROT,
REG, and Reset commands. These commands should now only display error
messages if QUIET is active. Otherwise they should just go about their
business with as little screen activity as possible. The only change to DIR
is that it doesn't show SPace remaining if QUIET is on (this is actually just
a side effect from ERA and CP). Note the anomaly that if QUIET is on, Reset
now operates somewhat differently on non-default drives: since SPace is no
longer called, the drive doesn't actually log back (no physical activity)
until accessed by another command. Also note that using the "Inspect" option
of ERA will produce odd results if Quiet is on: you will be prompted for each
file, but no filenames will be displayed. I don't really know an ideal
solution for this, but in general I think someone who gives their computer
contradictory instructions should expect contradictory results!
Some confusion has arisen as to the purpose of the Quiet flag. It is not, nor
was it ever intended to be, a security feature. As Richard Conn, original
author of ZCPR states on page 77 of _ZCPR3: The Manual_, if the Quiet flag is
on, certain informative messages are suppressed "in order to cut down on the
'noise' created by the command." I feel that it is far better in a security
sensitive situation to simply turn off the remote terminal using the remote
terminal software than to rely on the QUIET flag. BYE supports two system
calls which can turn off the remote console altogether (both input AND
output), and I think this a better solution where sensitive commands are
concerned than use of QUIET. For one thing, QUIET wasn't designed to disable
interruption by the remote terminal of commands such as ERA or PROT.
Additionally, control of console I/O through BYE allows ANY CP/M program to be
used "quietly." Finally, Z System programs vary somewhat in their treatment
of QUIET.
For these reasons I now consider QUIET purely a display control flag, rather
than a security device. For similar reasons, I have changed the default of
WHLQUIET to FALSE, causing WHL to display the new setting. I realize this is
a departure from recent practice, but I think the advantages in terms of
clarity, uniformity, and safety outweigh any disadvantages that may result.
2. Intelligent Error Handling
The CP, ERA, and REN commands now allow an intelligent error handler to act
differently when certain errors occur. The main idea is to allow larger, more
powerful transient equivalents of the resident commands to take over when more
features are required (much the same as CP/M Plus), but the interface also
allows other actions to be taken if desired. If the CP or REN commands detect
an ambiguous file specification, or if the ERA command detects a read-only
file, bit 4 of ZCPR's command status flag (CST) is set before chaining to the
error handler (if installed). Newer error handlers will bypass normal error
handling when this bit is set, instead prepending a user-installable string to
the original command and re-executing the new command. Typically, the new
string will be a single colon, or a drive, user, or directory name.
For example, in order to save memory, the RCP CP command will not copy
multiple files, and the command
CP *.* B:
normally results in an error. However, if the error handler is configured to
recognize CST bit 4, it prepends a ":" to the original command, resulting in
:CP *.* B:
Because a leading colon (or directory specification) causes ZCPR to skip
resident command processing, a search is now made for a command file named
"CP". By storing a more powerful copy program under this name at the current
directory (or along the path if available), you can use this feature to invoke
the transient program only when needed, using the faster resident command for
single files.
A similar approach can be used with the ERA and REN commands.
Since any string of up to 9 characters can be installed to prepend the errant
commands, you can also gain even greater control by prepending the command
with "/" (or "ARUNZ ") to invoke ARUNZ with an arbitrary command (or no
command at all) for each CP, ERA, and/or REN. See ZERRxx.LBR for details on
how to install the error handler.
Enhancements Pertaining to Specific Commands:
--------------------------------------------
(Selectable = may be deselected at assembly time)
Cmnd Selectable Enhancement(s):
---- ---------- --------------------------------------------------------------
CLED - New command.
CP - Now works properly with Z3PLUS.
- Now properly sets destination datestamps of multiple-extent
files.
D - Now allows the syntax "DIR [dir:].aft" to display all files
matching a filetype (e.g., "D .COM now the same as "D *.COM").
H - RCP name now appended with 'C' if CLED is included.
Q - Now "Q R[eset]" and "Q S[et]" just reset and set quiet
status without showing it, and Q alone (or with any other
character, e.g., "Q ?") always just shows status.
* - No longer wheel protected.
R - Revised to work properly with ZRDOS.
- Now properly resets individual drives under Z3PLUS.
SP * - Command name changed from 'S'.
SPOP - New command.
TYPE - Control characters other than ^I, ^M, and ^J are filtered out,
allowing legible display of WordStar files.
WHL * - Now always reports Wheel status.