Z Tips. Thanks to you who have subscribed or have renewed to hardcopy
version of Z-News. We appreciate your continuing support.
Z-Index, massive index to Z-News is shipping. Those who renew newsletter
subscription receive it free. To other we offer it for $8.95.
Notice Alias, Vfiler and Arunz CMD, Menu MNU, and Vmenu VMN process
command lines after all prompts, if any, have received operator response.
Therein establishes major virtue of GETVAR and RESOLVE. Commands may run
before prompts are output to operator for responses! Such tools complement
our others to satisfy needs of "turn-key" menu systems. GH alias of Z-News
507 and GLF below could only be created using this tool duo. Neither Alias
nor Arunz have facility to run commands, prompt operator, then run more com-
mands based upon operator's response.
Dennis Wright has finished AC, Version 3.9, and hopefully it solves some
problems some have had with archiving files. We include it in file of
aliases, ALIAS#1.LBR, as convenience.
Don't forget, if you need to add line numbers to a text print-out, PRINT
does this plus can add left margin offset, custom file headers, and most
importantly, wrap lines that are too long to print whole, as one. With
utility somewhere along search path (in ROOT, say), type PRINT //<cr> to see
its many features.
Data compression, CRUNCH is more efficient than SQUEEZE. Our 8-bit
community is encouraged to phase out "squeezing" files in favor of
"crunching." Steven Greenberg has taken high-level language versions of
Lempel-Ziv-Welch algorithm implemented and described by Kent Williams and
produced pair called CRUNCH and UNCR(unch). Written in assembler, occupy but
16 and 15 records, respectively. SQ occupies 42 to 47 records, depending on
version; USQ, 15, and UF (UsqFast), a low 10. Steven claims, "conversion
speed 'an order of magnitude' faster than C-Language equivalents." He is
thoughtful enough to have made the pair, plus associated TYPELZ, understand
our DU form, drive/user areas, for effective use of Z-System facilities. We
have tested CRUNCH and SQUEEZE. We cannot argue against the former's super-
iority. Echelon supports CRUNCH. CRUNCH11.LBR is on Z-Nodes everywhere.
Don't miss benchmark results below.
--------------------------------------------------------------------
From Our Mail Box. Bob Peddicord, Z-Node #60 Sysop, 503/597-2066, Selma, OR,
upgrades VMENU, to Version 1.7, with five-column, 20-file screens and other
improvements. Style goes with VFILER, Version 4.0 and beyond. If no bugs
show, source code is released presently. Download VMENU17.LBR, if interested
(it's on an upcoming SUS, Software Update Service, diskette.)
From Dennis O'Neill, Electra-Find string-search program author, "When you
time an Electra-Find search, you're timing a lot more than a simple search.
Many other things happen that add considerable overhead to the search
time...continually monitoring keyboard for ESCAPE, to permit interrupting a
search...looking for start and end pointer...Boolean searching for more words
in a search list...checking for special search characteristics, case-
sensitive, wildcard, phonetic, exclusion, etc...buffering files larger than
memory...and more." Yes, Dennis, it takes time to handle features. We under-
stand price paid for each. But, your product has it all--features plus speed,
congratulations! To accomplish both is a great achievement. "Thanks very
much for including Electra-Find in your search time comparisons," concludes
Dennis. Hopefully we were objective, fair to all concerned, with our testing
reported in Z-News 505 and 506.
Z-User's Corner. Earlier this year, Steve Cohen, Chicago, IL, wrote
interesting utility called "W". Dubbed The Wildcard Shell Processor, offers
use of wildcards, the ? and *, to programs not usually accepting them.
Stimulated by a suggestion in Z-News 402 about automating file copying using
ZRDOS utility COMP with /T option, copy only if files don't match, W was
produced. (Now we only need a ZEX 3.2 with required features to complete what
402 indicated could be done.) W permits command
w comp WORK:*.* BACKUP:<cr>
to compare, file by file, equality of directories WORK and BACKUP, and command
w zas *.z80<cr>
to assemble all Z80 type files on default directory. Both commands function
correctly, even though your better judgement says they do not! Command
w z3ins *.com<cr>
installs all Z3 COM files on default directory, in a single line--lots more
convenient than using an install script. (Use Version 1.3 of Z3INS.) Down-
load file (it's coming by SUS, Software Update Service) W20.LBR from Z-Nodes
for more.
Next subject (Hacker's Corner of Z-News 006 Revisited.) Okay, we didn't
tell enough. To get a clean prompt for erase "E" command in the
"Housekeeping" menu of Z-News 504, WORK-VMN.LBR, you must comment-out, remove
four (4) lines of code from your SYSFCP.ASM file and reassemble. In routine
IFCINPUT remove lines containing CALL NL, CALL PRIF, CALL PRINT, and DB
'True?',' '+80H statements. We have used modified code for sometime and it
works find with CMD, menu, and alias command lines. Here's what our code
looks like:
;
; Condition: INPUT (from user)
;
IF IFOINPUT
IFCINPUT:
LXI H,Z3MSG+7 ;pt to ZEX message byte
MVI M,10B ;suspend ZEX input
PUSH H ;save ptr to ZEX message byte
IF NOT NOISE
; CALL NL
ENDIF ;NOT NOISE
; CALL PRIF
; CALL PRINT
; DB 'True?',' '+80H
MVI C,1 ;input from console
.
.
ENDIF ;IFOINPUT
Reassemble and use as SYS.FCP loaded at cold boot. After, always use an "echo
prompt" statement ahead of IF IN conditional. Modified system segment works
with all versions of transient IF.COM up to latest, Version 1.4, even if "IN"
has been changed to "XN", Jay Sage convention.
Next subject. Dear to Richard Jacobson's heart is CPSEL, console and
printer selection utility. (Richard runs two phone lines for Z-Node #15,
Chicago, 312/649-1730, 312/664-1730, and is co-author of Z-System User's
Guide.) Well, long-time Echelon customer, John Tuksal (Livonia, WI) has
created two support utilities that change printer parameters on-the-fly. They
are called PRTDFLT and PRTSET and on-the-fly patch loaded SYS.ENV. (CPSEL
facility selects which one of four printers are active. Pages 7-5 through 7-8
of Z-System's User's Guide clearly describe features of CPSEL and SYS.ENV.)
(Both PAGE and PRINT use environment-data for wrapping lines.) First utility
resets printer to default values; second sets printer to that needed for next
task. Both run from aliases, menus, and from ZEX files. (You hackers will
appreciate John's liking for long labels. Notice his instructive, easy-to-
follow source code style in PRTDFLT.LBR and PRTSET.LBR libraries. Reminds of
Andy Johnson-Laird in The Programmer's CP/M Handbook, published by
Osborne/McGraw-Hill.) Here, two more tools to automate tasks!
Now we list parameters that pass from command line script to ZCPR3, a
table by function and utility:
TABLE OF Z-SYSTEM PARAMETERS
Utility
Function ALIAS ARUNZ RESOLVE SH VFILER (V)MENU ZEX
1) Directory
current drive $d: $dn: $d: %d: $d:
current user $u: $un: $u: %u: $u:
current dir: %c: $c:
home (du:) %h:
home (dir:) %r:
2) Files
full name (fn.ft) $n $n
name only (fn) $:n
type only (ft) $.n
3) Registers n=0..9 $rn $rn
4) System Files
full name $f1..4 $f1..4 $f1..4 $f1..4
name only $n1..4 $n1..4 $n1..4 $n1..4
type only $t1..4 $t1..4 $t1..4
5) Current (pointer) File
full name (fn.ft) %f $pf
name only (fn) %n $pn
type only (ft) %t $pt
current du:fn.ft %$
6) Named Variable Handling %<text> %<text>
7) Specials
Command Separator ; ; $| ; ; ; ;
Memory Location $mnnnn
User Prompt $" " $' ' ' ' " "
Verb Equate =
Parameters $0..9 $0..9 $1..9
Verb Name $0 $0
Command Tail $* $*
Recursion $z
with looping $-n
Lots of little details to remember while programming scripts. Above data
sized for CRT screen could be online, as part of Z-System HLP system, as alias
containing Z-COM's VID to "read" text of table, or as COM file made using
TXT42 program.
if $1=//;echo $0 - get z-system parameters table; <<
echo syntax: $0<cr>;else;ROOT:;vid params.tbl;$d$u:;fi
Yes, an alias tool for script heaven, called GPT, Get Parameters Table. $0 is
name of alias; usually we directly use the name, but here we wanted to
remember one of the things $0 can do. You develop "params.tbl" from text
table above--please show us finished product! That done, back to more alias
development.
SEE, of Z-News 504, works so well we expanded it to near command-line
buffer capacity. Adding built-in help and send-to-printer functions we have:
if $1=//;echo see - display files in command.lbr;echo syntax: <<
see [p];else;if $1=p;ROOT:llf ROOT:command /cip;ROOT:echo $$; <<
else;ROOT:llf ROOT:command /ci;fi;fi
In SEE, the "$$" simply sends a single CR/LF combination to printer for blank
line between print-outs, but use transient ECHO and not resident. $$ is
passed to command processor from alias script as single $, which is ECHO flag
to send text to printer. But in this case, we have no text and only CR/LF (a
blank line) is output. You could output a form-feed, use $$^L instead, if you
choose. Three possibilities with updated version: see<cr> displays files to
console, see p<cr> to console and printer, and see //<cr> for built-in help.
Now, are you ready for another alias? Okay, here goes...
We use GETVAR and RESOLVE in GLF. Get Library Files initially shows
directory list for declared library file and then prompts operator for file
list to extract. Neat and very quick. Has built-in help and error messages.
We use "glf" as our named variable which gets automatically placed in ROOT
file SH.VAR by GETVAR.
if $1=//;echo syntax: glf [du:]libname;else;if nu $1;echo glf <<
libname;else;llf $1 /ci;quiet s;getvar glf files to extract?; <<
resolve lget %glf;quiet r;fi;fi
Aliases, aliases, cornucopia of aliases--many ways to get jobs done. And
now...
We thought you might find our change-to-another-directory VMENU (and
MENU) command line interesting. Use L or N as command letter.
l ROOT:quiet s;ROOT:shctrl p;"Log into New Directory (du/dir): ":; <<
ROOT:quiet r;ROOT:vmenu *.* default.vmn
Line is in our default VMN file in ROOT directory. A similar one should be in
all other VMNs. Only modification, "default.vmn" is appropriately renamed to
directory-specific VMENU name. Entering colon (:) for du/dir forms is
optional. From any directory containing specific-for-directory VMN file, you
move to others, one-by-one, and still have default, multi-purpose VMN found by
VMENU's auto-search along path. Super!
-------------------------------------
As indicated in Z Tips above, some LZW/Steven Greenberg CRUNCH versus
Dave Rand and Jim Lopushinsky SQUEEZE benchmarks. Time in seconds; file
sizes, records (128 bytes). Many conclusions to draw. Let's hear yours?
File Type: Text Library Binary
Uncompressed Size: 22 54 189 423 61 232 records
Program: LZW CRUNCH v1.1
Time to Crunch 8.63 12.41 27.02 51.27 15.82 37.13 seconds
Compressed Size 15 36 111 246 56 219 records
Time to Uncrunch v1.1 9.89 11.66 16.73 26.81 17.14 23.89 seconds
Program: SQUEEZE v1.11
Time to Squeeze 16.25 24.88 39.79 55.32 33.99 47.64 seconds
Compressed Size 16 41 125 266 60 195 records
Program: SQUEEZE v1.06
Time to Squeeze 10.59 13.35 24.45 41.99 18.49 32.18 seconds
Compressed Size 17 41 129 269 60 196 records
Time to Unsqueeze v1.19 9.45 10.76 17.36 29.39 14.13 --- seconds
Program: UsqFast v2.0
Time to Unsqueeze 6.60 7.47 9.56 16.21 10.38 15.47 seconds
At compressing 232-record binary file SQUEEZE fares better than CRUNCH. In
all other cases CRUNCH produces higher uncompressed-to-compressed ratio and is
faster at compressing small files. UF is hands-down winner uncompressing
files, much faster than USQ or UNCR. But notice, little seems gained in
compressing binary files. Library file contains 11 ASCII files to make total.
Tests were conducted with electronic timer, on Ampro Bookshelf 4mHz Z80 hard
disk computer, and from VFILER, Version 4.1g, CMD macro commands.
Lunch Break. Renewal and first-time subscriptions to Z-News are needed if we
are to continue expending energy writing. If you neither renew nor subscribe
for first time we take it as a signal you think Z-News not worth your money
(see Z-News 305 concerning money). Each month thousands read it "free" from
remote access systems and electronic bulletin boards. Is it not worth your
$24.00 per year to continue reading it? Labors of love go just so far when
bills come due! Please, renew now--become an EI customer, subscribe for the
first time--get bundled massive index, Z-Index, as part of subscription
renewal. Index bundling with renewals expires 31 August 1986. We dare to
knock even if doors don't open. Help us to continue to help you. Thanks!
Editorial. The menus and alias scripts generated and discussed in recent
newsletters point to solid conclusions about "tool style" versus "integrated
application" programs. V-Spell versus The WORD Plus is good case in point in
our world. (PC DOS world has many examples of integrated applications not
being universally best.) VS is integrated and from within program most things
of a spelling-word nature are performed, and performed well, but you have to
be in the program and cannot do anything from OS command line, except load and
run program. On the other hand, TWP closely follows tool concept of ZCPR3 and
ZRDOS. TWP permits OS to use its various facilities in custom ways. GS and
WF aliases are representative of what a powerful OS teamed with single-
function tools can achieve. Integrated application programs, though having a
place on our list of priorities (you, we love VFILER and NULU), locks us
operators into mold set by program desi
gners. Our freedom of expression is
taken away--we become more a function of the program than when under non-
integrated concepts. Long live single-function tools!
====================================================================
Of Cabbages and Kings. Life: to take on substance (to eat), converting it to
energy (essence) for continuation of being. From life comes upper-echelon
abstractions: Time and Intelligence. Time: measure of displacement between
objects, assuming movement is reality, is concrete. Intelligence: measure of
ability to learn, organize, and communicate. Notice we do not define but only
tell how to gauge. No definitions! We, we are "high on a mountain top," or
maybe intoxicated on a hill-side? And now...
Z-News 309 Ramblings Revisited. Each species feeds on another. Birds on
worms, animals on plants and fish. But, if we use a species as food to main-
tain our lives we are obliged to insure the survival of that species, like
farming (we plant, growth occurs, we eat). If worms eat all insects, there
are no insects. If birds eat all worms, there are no worms. If fishermen
hunt and catch all the whales, there are no whales. We are all part of an
endless biological string. Our feet grew simultaneously with our head from
within our mother's womb. We were not put together like automobiles, parts
bolted together, but one whole emerged as with all life. We evolve...we eat,
taking on food of many types, we live. (Z-News 309 tells of many kinds of
food.) Each group feeds on the other in seemingly unending cycles. But who
or what feeds on human beings? Don't give your life without also giving your
word! See you down the lines...
Echelon, Inc.
885 N. San Antonio Road
Los Altos, CA 94022 USA
Telephone: 415/948-3820
Z-Node Central (RAS): 415/489-9005
Trademarks: Bookshelf, Ampro Computers; SB180, Micromint; PRO-180, Magnum
Digital; ON!, Oneac; DT42, The SemiDisk, Deep Thought 42, SemiDisk Systems;
HD64180, Hitachi; CLIPPER, Fairchild; Z-System, ZCPR3, ZRDOS, Z-News, Z-Tool,
Z-Tools, Zas, Zlink, Z-Msg, TERM III, Term3, Quick-Task, Lasting-Value
Software, Echelon; GT180, Turbo Modula-II, Borland International; TWP, The
Word Plus, Oasis Systems; V-Spell, CompuView; C/80, Software Toolworks; BDS-C,
BD Software; SIFT, Siftsoft; Electra-Find, O'Neill Software.
* *
Z sets you FREE!
* *
Z-News 508 is Copyright 1986 Echelon, Inc. All Rights Reserved. Permission
to reprint, wholly or partially, automatically granted if source credit is
given to Echelon.