MaxZ80 - Chapter 16

One of the handiest and most powerful shells is ZF, or ZFiler. I use it often
just to get a quick look at all the files in the directory I'm in, all at
once. It's a full screen application, letting you arrow key over to a
file of interest and then do a variety of things to it, like edit it, view
it, delete it, run some program on it etc., all with a single key stroke.
Like MENU, ZF has a "command" file to associate keystrokes with commands to
run. In ZF's case, it's called ZFILER.CMD. Here's what it looks like:

1 !zde $f
2 !echo 5/28/06
3 !$"command ? " $f $" tail ? "
4 !$n $" tail? "
5 !,,lput $"library? " $f
6 !crlzh $f
#
1. edit
2. version
3. perform command on
4. execute
5. put in a library
6. lzh compress

Let's say you're in C0:SIL and you want to get a library directory of
rdump12k.lbr.

 C0:SIL         Time:  7:47    ZFILER 1.1     Current File:  RDUMP12K.LBR

 -       .300   bdos    .def   edfile  .com   edfile  .txt   envsrc12.com
 eraz15a .com   fcb12   .com   fcb12   .lbr   prolink .com   rdk     .lnk
 rdump   .hlp ->rdump12k.lbr   rdump12k.sil   sil     .com   sil     .doc
 sil     .for   sil     .sub   sil15new.lbr   sillib  .not   sillib  .rel
 silnotes.doc   silz80  .lib   sop     .com   tcsrc14 .com   tcview24.com
 xiz     .com   z3env   .z80   z3hdr   .rel   z3hdr   .z80   z3tcap  .z80
 zasm    .com   zipdir12.com

Arrow over to this file and then hit "macro key" 3, which you can see from
the above ZFILER.CMD allows you to "perform a command on" the pointed at
file. When asked what command you want to run, type ld, the library directory
command. You'll be given an opportunity to supply a tail to this command. We
just hit the Enter key. This is what you'll see:

Library: C0:RDUMP12K.LBR  Created: 05/28/A6 12:43   Modified: 05/28/A6 12:45
Member Name        Size     Mth     Created         Modified       Real Name
============   ====-======= ===  ==============  ==============  =============
RDUMP   .HYP     3r   0.37k LZH  04/11/A6  9:42  04/11/A6  9:42  >RDUMP.HLP
RDUMP12K.CYM    17r   2.12k LZH  04/17/A6 16:57  04/17/A6 16:57  >RDUMP12K.COM
RDUMP12K.SYL    28r   3.50k LZH  04/16/A6  9:40  04/16/A6  9:40  >RDUMP12K.SIL
============   ====-======= ===  ==============  ==============  =============
RDUMP12K.LBR members: 3 matched, 3 active, 0 free, 0 deleted, 3 total
 Strike Any Key --

The Y's in the file types mean these files are "LZH-compressed." This
compression was carried out via the 6 "macro" (see above). We pointed at each
uncompressed file, hit 6 and then hit the Enter key. Finally, the three
compressed files were placed in the library by pointing at each compressed
file and hitting 5.

ZF has a Group command feature. You may tag (via the T command, which is
builtin to ZF, as opposed to "macros," which are user-defined) all the files
you want to do something common to (like delete or view, which are also
builtin) and then press G followed by D or V etc. To get help on the builtin
commands of ZF, press /.

Before we close this Chapter, let's talk about the SUBMIT script for running
LEE11H that was mentioned in Chapter 13.

SAK
IF EX $1.HTM
LEE11H O=$1H.HTM I=$1.HTM
ELSE
ECHO C%>ouldn't open $1.%<HTM
FI

IF, ELSE and FI are commands in the "Flow Command Package," which is like the
"Resident Command Package" in that the commands are in high memory and always
available. The EX in the IF command is short for EXist.

Say you invoked RUNLEE.SUB like so:

SUBMIT RUNLEE CLIF

"Couldn't open CLIF.HTM" will appear on your screen. The conditions that IF
supports include more than EX. There is a transient IF.COM in A1: and if you
type

.IF //

(note the leading period, which forces the transient to run instead of the
resident IF) you'll be shown all the options it supports, which are
extensive. Based on the help, you may experiment to see if you can build
something that works. Note: using // as a command tail for any Z-System
utility will always give you help on its usage.