mirror of https://github.com/wwarthen/RomWBW.git
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
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.
|
|
|