home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
JSAGE
/
ZSUS
/
TCJ
/
TCJ36.WS
< prev
next >
Wrap
Text File
|
2000-06-30
|
36KB
|
617 lines
Z-System Corne≥ (c)
by Jay Sage
The Computer Journal, Issue 36
Reproduced with permission
of author and publisher
I wonder if the approach of a TCJ deadline will ever find me with noì
pressing commitments to interfere with my writing this column. That isì
always my dream, but the prospects of its happening get dimmer by the month. ì
My schedule just keeps getting worse and worse. This time I was not evenì
able to start the column until after the deadline had passed. As a result,ì
it will surely be shorter than usual, and it will probably not haveì
benefited from my usual multiple rewrites and the careful scrutiny of Howardì
Goldstein, on whom I have relied in the past not only to check my code butì
to check my writing as well. He is remarkably good at both jobs!
As has become the pattern for my columns, before I turn to the mainì
technical subject, which will be a discussion of some of the capabilities ofì
the ZFILER shell, I would like, to talk about a few nontechnical issues.
Z Systems Associates
It may have taken the retirement of Frank Gaude' and the demise ofì
Echelon (at least as a force in the Z community) to make me realize just howì
much work Frank must have been doing, and I can now understand why he was soì
burned out in the end. The reason why I now appreciate his efforts in a wayì
that was impossible before is that I have been in the process these last fewì
months of setting up a new company -- Z Systems Associates or ZSA -- toì
serve as a central marketing organization for Z-System and related products.
Frank's retirement probably could not have come at a worse time for us. ì
With NZ-COM and Z3PLUS we finally had Z-Systems that did not require aì
programmer's mentality and programmer's abilities to be able to set up andì
use. We were also no longer limited to CP/M-2.2 computers. Our potentialì
market had now become the literally millions of people with CP/M computersì
of any kind, including especially the Commodore 128s and Amstrads runningì
CP/M-Plus and the CP/M-2.2 ADAMs. We have never had any contact with thoseì
communities in the past, and it is going to take a lot of work to developì
those contacts now.
The community of CP/M-2.2 hobbyists will, of course, be our marketingì
front line. To that end, we have established two plans, one involving theì
Z-Node remote access computer systems and the other, the hundreds ofì
computer clubs around the world.
The Z-Node Plan
Echelon had a nice plan that recognized the important role Z-Nodeì
sysops play in disseminating information about the Z-System and in providingìèsupport to those who use it. It allowed Z-Nodes to act as dealers forì
Echelon's products and thus to gain some compensation for their efforts. Zì
Systems Associates has started a similar plan. I will not go into theì
details here, but if you are a Z-Node sysop and have not heard from me,ì
please drop me a line at the address in the Sage Microsystems East ad.
Unfortunately, we do not have a list of the names and addresses of theì
Z-Node sysops. Somewhere along the way that information got lost and wasì
never passed on from Echelon. So, a couple of weeks ago I sat down at myì
computer on a Saturday afternoon and started to call all the Z-Nodes in theì
United States and Canada. I did not count how many numbers were listed inì
Echelon's last ZNODES.LST file, but there must have been well over 50. Atì
first I tried to figure out which ones were accessible by PC-Pursuit, butì
the task was monumental enough without having to put up with the perpetuallyì
busy PCP circuits. My phone bill came a few days ago, and it was amazing toì
see the number of pages of calls. Since each call was rather short,ì
however, the bill was surprisingly low.
Although I started making the calls in the afternoon, I kept at it wellì
into the night. At a point when I could hardly keep my eyes open, Iì
connected to a system out West and, as a new user, went through theì
procedure of identifying the city and state from which I was calling. Theì
system then greeted me very nicely and reported that the time was 1:05 am. ì
Amazing, I thought! That was just what my watch showed here in Boston. ì
This was the first system I had ever called that was so sophisticated thatì
it actually adjusted the time display to the caller's time zone. Well, itì
wasn't until the next morning that I realized that the battery in my wristì
watch was failing and that the watch had jumped back three hours. It hadì
really been 4 am! No wonder I felt so tired.
The whole experience of calling the Z-Nodes was rather disheartening. ì
I discovered that many Z-Nodes had long ago gone off the air. The numbersì
of the more recently departed were answered with messages from the phoneì
company reporting that they were no longer in service. Those long gone wereì
answered by actual people, who usually had had that number for over a year. ì
Considering that when my watch said 11 pm, it may actually have been as lateì
as 2 am, it is amazing how civil all of these people were to me. Yes, theyì
admitted, they did get an awful lot of calls with no one on the other end. ì
I explained why this was happening, that they were being called by aì
computer, and I promised to try to get their numbers removed from the lists.
Several Z-Nodes had become private systems, and I was prompted for aì
password without any signon message at all or just a brief, "private system,ì
enter password." A few systems, as one would expect, had gone over to MS-DOS. All in all, no more than half the nodes on the list appear still to beì
active.
In view of this situation, I would like to encourage the establishmentì
of new nodes. Some of the nodes on Echelon's list, I learned, actuallyì
never went into operation because the sysop was unable to get Z-Systemì
running on his computer. With NZ-COM and Z3PLUS this will be much less of aì
problem. If you think you might be interested in setting up a Z-Node orì
converting your present system to one, please give me a call or drop me aìènote in the mail.
The Z-Plan for Computer Clubs
Computer clubs are probably the single most effective and valuableì
source of support to computer users. To promote membership in clubs and atì
the same time to encourage more people to take advantage of the new Z-Systemì
software, we have established a plan whereby clubs can purchase the programsì
at a discount. It is their option how that discount is distributed. It canì
be passed on entirely to the club members, or the club can keep at leastì
part of it to support its activities.
The Z-Plan project was initiated by Tony Parker, who serves as aì
marketing representative for ZSA. He uploaded a file to many bulletinì
boards describing the plan, and you may be able to find it on a system nearì
you. ZSA had not yet been formed at that time, and the file instructs clubsì
to send the necessary registration forms to Alpha Systems. Alpha Systemsì
has agreed that ZSA should take over responsibility for the administrationì
of this plan.
A revised version of the Z-Plan file should be on systems by the timeì
you read this column, but if you already sent information to Alpha instead,ì
it would be a good idea to send another copy to ZSA (again, see the Sageì
Microsystems ad for the address). More importantly, if you belong to a clubì
that has not registered, have them write to me requesting a description ofì
the plan and registration forms.
My New Amstrad Computer
One of the computers on which Z-System now runs and one which exists inì
very large numbers, especially in Europe, is the Amstrad. This CP/M-Plusì
machine -- once sold in the US by Sears, Roebuck -- uses a very unusual 3"ì
diskette (unique might be a better word for it). We were afraid that weì
would not be able to produce Z3PLUS diskettes for this machine, so I boughtì
one second hand (just what I needed, another computer!). Since it appearedì
that we really had to have the machine, I probably paid a good bit more thanì
it would otherwise be worth, but I must say that it has been a very pleasantì
surprise. (On the other hand, paying close to $400 for a hundred diskettesì
was a most unpleasant surprise.)
I expected the Amstrad to be little more than a toy. Instead, I haveì
found it to be a very capable machine and an excellent platform on which toì
run Z-System. The main reason for this is its very nice RAM disk. Myì
PCW8512 (it started life as a PCW8256, but it was upgraded) has a total ofì
512K of RAM, about 350K of which is available as a RAM drive. With ARUNZ,ì
EASE, ZFILER, all their support files, and a few other critical files on theì
RAM drive, the Z-System really zips along.
The native (non-CP/M) mode has also proved to be quite useful. Theì
Amstrad was largely promoted as a stand-alone wordprocessor, and itsìèLocascript wordprocessing software is actually rather nice. Like Macintoshì
software, it is very easy to use, and my 12-year-old son has really taken toì
it in a way he never did to my super-sophisticated PMATE editor. Theì
keyboard is set up specially for the software, and the computer includes anì
integral printer.
That printer is, in fact, rather interesting in its own right. To keepì
the cost down, Amstrad buys just a raw printer mechanism, and they supplyì
the software drivers to emulate an Epson FX80 in the host machine. Theì
printer is pitifully slow, but I actually use it myself now for quickì
letters because the Amstrad is so much faster to set up than my fancyì
systems. The printer even loads single sheets of paper automatically, andì
that's more than my (at one time) $3000 Diablo HyType-II printer can do. Ifì
you have an Amstrad computer or know of someone who does, I would be happyì
to help them get started on Z-System.
Special Acknowledgments
Before we go on to ZFILER. I would like to acknowledge publicly someì
very special recent contributions to the development of Z-System.
David Johnson of Sunnyvale, CA, took my ZCPR34 source code and mustì
have gone over it not only with a fine-toothed comb but with an electronì
microscope. In programming, I always give top priority to writing code thatì
has good features and runs reliably. Code compactness is secondary. Thus,ì
I am never surprised when I learn that one of my routines can be improvedì
slightly. Nevertheless, I would never have believed that the Z34 code couldì
reduced by close to a hundred bytes, but David Johnson did just that! Evenì
Joe Wright, who is deservedly acclaimed for his coding skill, had only takenì
out 10 or 20 bytes, and he was especially impressed by David's achievements. ì
With all the new space available, I can now start to think about more newì
features!
The second person whose contribution I want to acknowledge is Billì
Tishey of Severn, MD. Bill has proven something I have been trying to getì
across for a long time: that you do not have to be a programmer toì
contribute in a significant way to Z-System. Bill has sytematicallyì
compiled the documentation for the complete collection of Z-System programsì
in a set of help files that runs (uncompressed) to more than a megabyte! Heì
has grouped the help files into libraries with names of the form
Z3HELP-n.LBR, where 'n' is the first letter of the command name.
Z3HELP-A.LBR, for example, contains 21 files covering ARUNZ, AFIND, ALIAS,ì
and many other commands. To my mind, this contribution is at least asì
valuable as those of program authors because it makes the programsì
accessible to the user.
The complete set of files is posted on my Z-Node #3 and will graduallyì
make its way around the world (slowly probably, because of their size). Inì
view of the exceptional value of Bill Tishey's help system, Sageì
Microsystems East will make it available on diskette for only $10 (SME'sìèusual copying charge is $15 to $20 per diskette). Here are the rules. Youì
have to send (1) preformatted diskettes clearly marked with the exact formatì
and sufficient to hold 800K of files; (2) a disk mailer for returning theì
diskettes (unless the one you sent the disks in is reusable); (3) returnì
postage; and (4) a return address sticker. We can accept 8" SSSD IBMì
standard format (including 'flippy' diskettes) and most 5" soft-sectoredì
formats (anything on the menus of Uniform or Media Master on either theì
SB180 or an IBM AT). Bill, himself, has an Apple and (I just spoke withì
him) is willing to make the same offer for diskettes in that format. Hisì
address is 8335 Dubbs Drive, Severn, MD 21144.
ZFILER, The Point-and-Shoot Shell
Now let's turn to the technical subject for this issue, the ZFILERì
shell. Having written about shells so much in the past few columns, I amì
tempted to jump right into the thick of the subject. However, judging fromì
the number of new subscriptions that SME alone takes each month, TCJ mustì
have lots of new readers with each issue. Therefore, I will begin at theì
beginning. Since time and energy are in short supply, however, I will notì
attempt to provide the same comprehensive documentation that I did forì
ARUNZ. Instead, I will concentrate on the basics, on the one hand, and onì
some of the special features that many users may overlook, on the other.
Z-System Shells
A Z-System shell is a program that takes over the user-input functionì
of the command processor. The way this works is that the Z-Systemì
environment includes a special area in memory called the shell stack whereì
shell command lines can be kept. Whenever the ZCPR3 command processor isì
finished processing all the commands that have been passed to it in theì
command line buffer (another special area in memory), it checks the shellì
stack. Only if no command line is present there does the command processorì
itself prompt the user for the next command line. If there is an entry inì
the shell stack, then that command line is run instead, and the user noì
longer sees the command processor directly.
Some shells, like the EASE history shell, while making a big change inì
how the system is actually running, make relatively little change in how itì
appears to run. A command prompt is still presented, and one entersì
commands more or less as usual. The difference is that one has a moreì
capable editor at one's disposal, and the commands are saved to a historyì
file from which they can be recalled, edited, and run again. As we shallì
see, the ZFILER shell presents the user with a dramatically different userì
interface.
What is ZFILER For?
Historically, ZFILER is a descendant in the line of file maintenanceì
utilities like SWEEP and NSWP (hence the "filer" part of the name). Fileì
maintenance is generally concerned with copying files, looking at theirì
contents, renaming them, erasing them, and so on. ZFILER provides all theseìèfunctions and more.
ZFILER's immediate parent was VFILER, where the "V" stood for video. ì
The TCAP facility in Z-System makes it easy for programs to take advantageì
of the full-screen capabilities of whatever video display terminal happensì
to be in use at any time. In contrast to applications under CP/M, Z-Systemì
programs need not be configured to match the terminal. It was, therefore,ì
natural to build a file maintenance program in which the files are displayedì
graphically on the screen. When I decided to explore some new directionsì
with VFILER, to avoid confusion I gave the program the new name ZFILER, forì
Z-System Filer.
The file maintenance tasks described above would not require a shell. ì
Making the program a shell, however, allows it to go beyond the functionsì
included in the program's own code. Because a shell can pass command linesì
to the operating system, ZFILER can perform any operation that the computerì
is capable of. Like a menu system, however, it helps the user by generatingì
the commands automatically at the touch of a key.
When ZFILER is running, the screen is filled with an alphabetizedì
display of the files in a specified directory, and there is a pointer thatì
the user can manipulate using cursor control keys. If we had a mouse toì
move the pointer, it would be a little like having a Macintosh. Actually,ì
it would be a lot more. It would be like having a mouse with fifty buttons! ì
Once the pointer has been positioned on a file, pressing a key (or two orì
three) causes any of a great number of functions to be invoked to act on that file. We will describe how this works in more detail shortly.
Invoking ZFILER
Since ZFILER performs full-screen operations, a proper Z-Systemì
terminal descriptor (TCAP) must have been loaded. If you have not doneì
that, or if you have selected a terminal that does not support all theì
functions ZFILER needs, then ZFILER will give you an error message. Theì
TCAP, unfortunately, does not include information about whether dim orì
reverse video is used by the terminal, and since these two modes forì
highlighting regions on the screen are so different, ZFILER is madeì
available in separate versions for each.
There is also an option to have either four or five columns of fileì
names in the display. Personally, I prefer the four-column version, whichì
gives an uncluttered screen with plenty of restful white space and a veryì
distinct, easy-to-spot pointer. Others think it is more important to beì
able to see the maximum number of files on each screen and prefer the five-column display.
Then there is the issue of support for time and date stamping of files. ì
ZFILER contains the code for preserving the time stamps when files areì
copied. So as not to inflict the overhead of this code on those who haveì
not implemented DateStamper (though they should do that!), ZFILER is alsoì
provided in versions with and without the DateStamper code.
If we supported all combinations of the above choices, there would beì
eight different versions of ZFILER. Typically, the distribution libraryìècontains four or five of the combinations. For example, a five-column fileì
display is not particularly compatible with reverse video highlighting,ì
because the reverse video of tagged files runs into the reverse-videoì
pointer.
When you get ZFILER, you have to choose which version you prefer,ì
extract it for the distribution library, and give it a working name (some ofì
the early Z-System shells had to have a specific name, but you can giveì
ZFILER any name you like). I prefer the name ZF, since it is very quick andì
easy to type, and I will use that name in all the examples that follow.
The general syntax for invoking ZFILER is
ZF filespec
where "filespec" is a standard Z-System ambiguous file specification (thatì
is, it may contain the wildcard characters "?" and "*"). The filespecì
selects the directory area and the files from that area to be included inì
the screen display.
Various parts of the filespec can be omitted. If no filespec is givenì
at all, then "*.*" for the currently logged directory is assumed. ì
Similarly, if only a directory is specified (e.g., B: or 3: or B3: orì
WORK:), then all the files ("*.*") in that directory are displayed. If aì
file name/type is included, then it will serve as a mask on the files to beì
displayed. Thus "ZF WORK:*.DOC" will show only files of type DOC in theì
directory WORK:.
The directory and file mask can both be changed from inside ZFILER asì
well using the "L" or LOG command. I bring this up now because there is aì
confusing difference in the way the "L" command works. VFILER originallyì
allowed one to change only the directory and not the file mask from insideì
the program. To save the user the trouble of typing the colon after aì
directory, its inclusion was made optional. Since users became soì
accustomed to this shorthand, it was carried over into ZFILER. Because ofì
this, if you want to change only the file mask, you must remember to precedeì
it with a colon. Otherwise your mask will be taken as the name of aì
directory (which generally results in an error message).
One brief aside for programmer types. ZFILER can be loaded from anyì
directory. One of the special features of Z-System since version 3.3 of theì
command processor allows a program to find out both its own name and theì
directory from which it was actually loaded, perhaps as the result of a pathì
search. ZFILER builds the shell stack entry to invoke ZFILER under itsì
current name from the directory in which it is actually located. Thisì
sometimes makes it run faster, and it allows ZFILER to be invoked from aì
directory that is not on the search path.
The ZFILER Display
The main ZFILER display contains three parts. At the top of the screenì
there is a message line. In the version of ZFILER that is current at theìètime I am writing this column (version 1.0L), this line contains, from leftì
to right, the following information: (1) the directory that has beenì
selected, in both DU and DIR (named directory) format; (2) the indicatorì
"[PUBLIC]" if that directory is a ZRDOS public directory (if you don't knowì
what this is, just ignore it); (3) the current time of day if DateStamper orì
one of the new DOSs (ZSDOS or ZDDOS) is running; (4) the program's officialì
name and version; (5) the text string "Current File:"; and (6) the name ofì
the file currently being pointed to (this changes as the pointer is moved).
At the bottom of the screen is a command prompt of the form
Command? (/=Help, X=Quit):
The cursor (don't confuse this with the file pointer) is positioned afterì
this command prompt to indicate that ZFILER is waiting for you to press aì
key.
The center 20 lines of the screen show the selected files. Theì
character string "-->" (only "->" in the five-column display) floats betweenì
the rows of file names and designates the so-called "pointed-to" file. Manyì
of the ZFILER commands automatically operate on this file.
What we have described so far is the main ZFILER screen, but it is notì
the only one. As the command prompt suggests, pressing the slash characterì
(or "?" if you prefer) brings up a help screen that summarizes the built-inì
commands of ZFILER. This help screen replaces the file display but leavesì
the status line at the top and the command line at the bottom, except thatì
"/=Help" changes to "/=Files". As you might, therefore, guess, pressingì
slash again will take you back to the file display screen.
I do not know if anyone makes use of this feature, but all ZFILERì
command operations can be invoked from the help screen. Although you cannotì
see the file pointer, you can manipulate it in the usual way, and you canì
tell what file you are pointing to from the name displayed at the upperì
right on the status line.
ZFILER Commands
I am not going to attempt to describe all of ZFILER's commands, but Iì
will try to list most of them. Basically, the commands fall into severalì
classes.
One classification reflects where the code for the command resides. ì
There are two categories:
A. Built-In Commands
B. Macro Commands
Class A includes the functions for which the code is part of ZFILER. Macroì
commands are like aliases in that they generate command lines that areì
passed to the command processor for execution. These commands make ZFILER aì
shell. In this column I will discuss only the built-in commands, and I willìètake up the more complex subject of macro commands next time.
A second classification depends on what the command acts on. Threeì
categories describe the object of the commands:
1. the pointed-to file
2. a group of tagged files
3. neither of the above
We will begin the discussion with commands of class A3, resident commandsì
that do not perform any action on the files.
Pointer Commands
Class A3 includes the commands that move the file pointer. These areì
shown on the help screen, and I will not list them here. One can move theì
pointer to the next file on the screen or to the previous one (withì
wraparound); up, down, left, or right (with wraparound); to the first orì
last file on the current screen; or to the very first or very last file ofì
those selected by the file mask. One can advance to the next screen ofì
files or to the previous screen. Obviously, some of these functions will beì
redundant in some cases, such as when all the selected files can fit on oneì
screen (think what happens when there is exactly one file selected).
ZFILER learns from the TCAP the control characters sent by any specialì
cursor keys on the keyboard (provided they send a single control characterì
and provided the TCAP has been set up correctly), and it makes them generateì
the up, down, left, and right functions. If the cursor keys generateì
control codes normally used for another function, then that function will beì
lost (the cursor keys take precedence). That can cause problems. Oneì
solution is to eliminate the definition of the cursor keys in the TCAP andì
simply use the default WordStar diamond keys for those functions. ì
Alternatively, one can patch ZFILER to use different keys for its ownì
functions, but this is not straightforward to do, and I will not describe itì
here.
The "J" (Jump) command allows you to jump to a file that you name. ì
This is very handy when there are many files in the display or when the fileì
you want is not on the current screen. Press the "J" key, and you will beì
prompted for a file name. You do not have to enter the exact name. ZFILERì
automatically converts what you type into a wildcard filespec, and it findsì
the first file that matches. For example, if you enter only "Z" followed byì
a return, this is equivalent to "Z*.*", and ZFILER will move the pointer toì
the first file that starts with a "Z". Similarly, if you enter ".D", ZFILERì
will move to the first file with a file type that starts with "D".
The "J" function is very handy; however, there is more. Many peopleì
are not aware that you may press control-J to repeat the same search andì
find the next matching file. The search will wrap around from the end ofì
the files back to the beginning. This function is not listed on the helpì
screen because I could not find room for it.
èOther Non-File Commands
Some other commands that do not act on files are: X, L, A, S, E, H, Z,ì
and O. "X", as the command prompt reminds you, is used to exit from ZFILER. ì
Besides terminating the current execution of the program, it also removesì
ZFILER's entry in the shell stack (if it did not, you would just reenter itì
right away).
We already spoke about the "L" (Log) command earlier. The "A"ì
(Alphabetize or Arrange or Alpha sort) toggles the way in which the filesì
are sorted, namely alphabetically by the file name or by the file type. ì
The "S" (Status) command prompts you for a disk drive letter and then tellsì
you the amount of space remaining on that disk.
The "E" command (refresh scrEEn -- I know that's stretching things, butì
"R" was already used) redraws the screen. You might think that this wouldì
never be needed, but there are two circumstances in which it comes in veryì
handy. One is when ZFILER is being used on a remote system. It is trueì
that very few RASs make ZFILER available, but I do on Z-Node #3. If you getì
some line noise, the screen can become garbled. Then the "E" key can beì
used to draw a fresh screen.
The other circumstance in which the "E" command saves the day is withì
Backgrounder-ii if you do not have a screen driver (I don't for my Conceptì
108 terminal -- never got around to writing one, partly because all theì
programs I use frequently have a redraw key like this one). I simply defineì
a BGii key macro specifying "E" as the "redraw" key, save the keyì
definitions to ZFILER.BG, and attach that definition to ZF.COM. Thenì
whenever I swap tasks back into ZFILER, BGii simulates my pressing the "E"ì
key, and the screen is redrawn. This often gives a faster screen refreshì
than one gets with a full-fledged screen driver.
The "H" (Help) command generates a macro command to invoke the Z-Systemì
HELP facility. To tell the truth, I have not used this and don't evenì
remember precisely what it does. I would have to look at the source code.
The "Z" (Z-system) command prompts you for a command, and whatever youì
enter is passed on to the Z-System multiple command line buffer forì
execution. When that command line is complete, ZFILER is reinvokedì
automatically.
When you use the "Z" command, you will normally be logged into theì
directory that is currently displayed. However, this will not always beì
possible. ZFILER allows you to select directories with user numbers from 0ì
to 31. Unless you are using a version of ZCPR33 or ZCPR34 with the HIGHUSERì
option enabled, you cannot log into user areas above 15. In that caseì
ZFILER will put you in the directory your were in when you invoked ZFILER. ì
In any case, the command prompt will indicate the directory from which yourì
command line will be executed.
Since commands you run using the "Z" function may put some informationì
on the screen that you would not want ZFILER to obliterate immediately,ìèthere is a flag set that signals ZFILER to prompt you and to wait for you toì
press a key before putting up its display. Here is a tip for advancedì
users. If you enter your command line with one or more leading spaces, thisì
shell-wait flag will not be set, and ZFILER will return without your havingì
to press a key. The leading spaces are stripped from the command lineì
before it is passed to the command processor. This means that you cannotì
use a leading space to force invocation of the extended command processorì
(ECP); you have to use the slash prefix instead. A space and a slash willì
force invocation of the ECP and will disable the shell-wait flag.
The final command in class A3 is the "O" (Options) command. It is aì
complex topic, and I will leave it for next time. If you can't wait untilì
then, experiment with it. It should not be able to do any harm to yourì
system.
Single-File Built-In Functions
Now let's discuss the commands in class A1, the built-in commands thatì
act on the pointed-to file. These are invoked by pressing one of theì
following keys, whose meaning is indicated in parentheses: C (Copy), Mì
(Move), D (Delete), R (Rename), V (View), P (Print), F (File size), T (Tag),ì
and U (Untag). Some of these are self-explanatory, and I will not discussì
them.
The "C" command copies a file to another directory under the same name;ì
it does not allow one to give a new name for the destination file (however,ì
you can do that with a macro command). The "M" command does not really moveì
a file; it copies the file and then, if the copy was successful, deletes theì
original file. It is really a combination of "C" and "D". Moving a fileì
this way is inefficient if the destination directory is on the same drive asì
the source file. A macro command that invokes an ARUNZ alias can get aroundì
this limitation (and almost all other ZFILER limitations).
The tag and untag commands are used to select a group of files on whichì
operations can be performed. Tagged files are indicated in two ways. Aì
special character ("#") is placed after the file name in the display, and,ì
if the terminal supports video highlighting, the file is highlighted.
Two related commands are W (Wild tag) and Y (Yank back?). "W" allowsì
you to tag or untag groups of files designated by an ambiguous file spec. ì
After tagged files are operated on by the built-in group commands describedì
below, the tag marker "#" is changed to "'" (a soft tag). The "Y" commandì
changes the soft tags back into hard tags so that further group operationsì
can be performed on those files.
Built-In Group Commands
Group commands are initiated by pressing the "G" (Group) key. Theì
command prompt at the bottom of the screen changes to
Command? (/=Help, X=Quit) Group: (A,C,D,F,M,P,R,T,U,V)
èFor now we will consider only the built-in group functions (class A2) andì
will take up group macro commands (class B2) next time.
Except for the four functions described below, the letters invoke theì
same action as the individual command corresponding to that letter, but theì
function is performed on all the tagged files. We will not discuss thoseì
further. Note in particular that the keys "A" and "R", however, have aì
group function that is completely different from the individual function.
The "U" and "T" group functions do not act on the tagged files; theyì
change the tagging. The former untags all files; the latter tags them all.
The "R" group function is another one that does not, strictly speaking,ì
act on the tagged files. It reverses the tags, tagging the files that hadì
been untagged and untagging the ones that had been tagged. This can be veryì
handy in several circumstances. For example, you might want to copy all theì
files except two. It is easier to tag those two and then to reverse theì
tags. As another example, you might want to copy some of the displayedì
files to one diskette and the others to a second diskette. I do thisì
frequently. I begin by tagging the ones to go to the first diskette. Thenì
I group copy ("GC") them to the destination diskette. Next, I yank back theì
tags using the "Y" command and then reverse the tags with "GR". Now I canì
group copy the rest to the second diskette.
The "A" (Archive) group command is very handy for automating backups. ì
When it is entered, the tags are removed from any tagged file whose archiveì
flag is set. As a result, only files that have been modified since the flagì
was last set will remain tagged. In addition, the "A" group commandì
automatically initiates a group copy operation but with one special feature. ì
After the file has been copied successfully, the archive flag on the sourceì
file is set to indicate that the file has been backed up.
Under later versions of VFILER, the group "A" command automaticallyì
tagged all unarchived files; under ZFILER it untags the archived ones. Thisì
difference is very important. With VFILER, you were forced to back up allì
the files selected by the VFILER file mask. Under ZFILER you can select theì
files that will be candidates for backing up. If you want the achieve theì
same function as under VFILER, just tag all the files first with "GT" andì
then archive them with "GA". On the other hand, if you want to exlude BAKì
files from the backup, you can "GT" all files, untag the "*.BAK" files usingì
the "W" command, and then use the "GA" command.
After you enter the command "GA", you will be prompted for aì
destination directory. You do not have to supply one! If you simply enterì
a carriage return, the copy operation will be skipped, and you will be leftì
with tags on the files that need to be backed up. You can then use a macroì
function to back them up in a specialized way, such as crunchingì
(compressing) them to the backup disk (instead of copying them as they are)ì
or putting them into a library on the backup diskette. Next time we willì
discuss the macro techniques required to do this.
[This article was originally published in issue 36 of The Computer Journal,èP.O. Box 12, South Plainfield, NJ 07080-0012 and is reproduced with the
permission of the author and the publisher. Further reproduction for non-
commercial purposes is authorized. This copyright notice must be retained.
(c) Copyright 1989, 1991 Socrates Press and respective authors]