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.WZ / TCJ36.WS
Text File  |  2000-06-30  |  36KB  |  617 lines

  1.                                Z-System Corne≥ (c)
  2.                                  by Jay Sage
  3.                         The Computer Journal, Issue 36
  4.                           Reproduced with permission
  5.                            of author and publisher
  6.  
  7.  
  8.      I wonder if the approach of a TCJ deadline will ever find me with noì
  9. pressing commitments to interfere with my writing this column.  That isì
  10. always my dream, but the prospects of its happening get dimmer by the month. ì
  11. My schedule just keeps getting worse and worse.  This time I was not evenì
  12. able to start the column until after the deadline had passed.  As a result,ì
  13. it will surely be shorter than usual, and it will probably not haveì
  14. benefited from my usual multiple rewrites and the careful scrutiny of Howardì
  15. Goldstein, on whom I have relied in the past not only to check my code butì
  16. to check my writing as well.  He is remarkably good at both jobs!
  17.  
  18.      As has become the pattern for my columns, before I turn to the mainì
  19. technical subject, which will be a discussion of some of the capabilities ofì
  20. the ZFILER shell, I would like, to talk about a few nontechnical issues.
  21.  
  22.  
  23.                             Z Systems Associates
  24.  
  25.  
  26.      It may have taken the retirement of Frank Gaude' and the demise ofì
  27. Echelon (at least as a force in the Z community) to make me realize just howì
  28. much work Frank must have been doing, and I can now understand why he was soì
  29. burned out in the end.  The reason why I now appreciate his efforts in a wayì
  30. that was impossible before is that I have been in the process these last fewì
  31. months of setting up a new company -- Z Systems Associates or ZSA -- toì
  32. serve as a central marketing organization for Z-System and related products.
  33.  
  34.      Frank's retirement probably could not have come at a worse time for us. ì
  35. With NZ-COM and Z3PLUS we finally had Z-Systems that did not require aì
  36. programmer's mentality and programmer's abilities to be able to set up andì
  37. use.  We were also no longer limited to CP/M-2.2 computers.  Our potentialì
  38. market had now become the literally millions of people with CP/M computersì
  39. of any kind, including especially the Commodore 128s and Amstrads runningì
  40. CP/M-Plus and the CP/M-2.2 ADAMs.  We have never had any contact with thoseì
  41. communities in the past, and it is going to take a lot of work to developì
  42. those contacts now.
  43.  
  44.      The community of CP/M-2.2 hobbyists will, of course, be our marketingì
  45. front line.  To that end, we have established two plans, one involving theì
  46. Z-Node remote access computer systems and the other, the hundreds ofì
  47. computer clubs around the world.
  48.  
  49. The Z-Node Plan
  50.  
  51.      Echelon had a nice plan that recognized the important role Z-Nodeì
  52. 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ì
  53. Echelon's products and thus to gain some compensation for their efforts.  Zì
  54. Systems Associates has started a similar plan.  I will not go into theì
  55. details here, but if you are a Z-Node sysop and have not heard from me,ì
  56. please drop me a line at the address in the Sage Microsystems East ad.
  57.  
  58.      Unfortunately, we do not have a list of the names and addresses of theì
  59. Z-Node sysops.  Somewhere along the way that information got lost and wasì
  60. never passed on from Echelon.  So, a couple of weeks ago I sat down at myì
  61. computer on a Saturday afternoon and started to call all the Z-Nodes in theì
  62. United States and Canada.  I did not count how many numbers were listed inì
  63. Echelon's last ZNODES.LST file, but there must have been well over 50.  Atì
  64. first I tried to figure out which ones were accessible by PC-Pursuit, butì
  65. the task was monumental enough without having to put up with the perpetuallyì
  66. busy PCP circuits.  My phone bill came a few days ago, and it was amazing toì
  67. see the number of pages of calls.  Since each call was rather short,ì
  68. however, the bill was surprisingly low.
  69.  
  70.      Although I started making the calls in the afternoon, I kept at it wellì
  71. into the night.  At a point when I could hardly keep my eyes open, Iì
  72. connected to a system out West and, as a new user, went through theì
  73. procedure of identifying the city and state from which I was calling.  Theì
  74. system then greeted me very nicely and reported that the time was 1:05 am. ì
  75. Amazing, I thought!  That was just what my watch showed here in Boston. ì
  76. This was the first system I had ever called that was so sophisticated thatì
  77. it actually adjusted the time display to the caller's time zone.  Well, itì
  78. wasn't until the next morning that I realized that the battery in my wristì
  79. watch was failing and that the watch had jumped back three hours.  It hadì
  80. really been 4 am!  No wonder I felt so tired.
  81.  
  82.      The whole experience of calling the Z-Nodes was rather disheartening. ì
  83. I discovered that many Z-Nodes had long ago gone off the air.  The numbersì
  84. of the more recently departed were answered with messages from the phoneì
  85. company reporting that they were no longer in service.  Those long gone wereì
  86. answered by actual people, who usually had had that number for over a year. ì
  87. Considering that when my watch said 11 pm, it may actually have been as lateì
  88. as 2 am, it is amazing how civil all of these people were to me.  Yes, theyì
  89. admitted, they did get an awful lot of calls with no one on the other end. ì
  90. I explained why this was happening, that they were being called by aì
  91. computer, and I promised to try to get their numbers removed from the lists.
  92.  
  93.      Several Z-Nodes had become private systems, and I was prompted for aì
  94. password without any signon message at all or just a brief, "private system,ì
  95. 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ì
  96. active.
  97.  
  98.      In view of this situation, I would like to encourage the establishmentì
  99. of new nodes.  Some of the nodes on Echelon's list, I learned, actuallyì
  100. never went into operation because the sysop was unable to get Z-Systemì
  101. running on his computer.  With NZ-COM and Z3PLUS this will be much less of aì
  102. problem.  If you think you might be interested in setting up a Z-Node orì
  103. converting your present system to one, please give me a call or drop me aìènote in the mail.
  104.  
  105. The Z-Plan for Computer Clubs
  106.  
  107.      Computer clubs are probably the single most effective and valuableì
  108. source of support to computer users.  To promote membership in clubs and atì
  109. the same time to encourage more people to take advantage of the new Z-Systemì
  110. software, we have established a plan whereby clubs can purchase the programsì
  111. at a discount.  It is their option how that discount is distributed.  It canì
  112. be passed on entirely to the club members, or the club can keep at leastì
  113. part of it to support its activities.
  114.  
  115.      The Z-Plan project was initiated by Tony Parker, who serves as aì
  116. marketing representative for ZSA.  He uploaded a file to many bulletinì
  117. boards describing the plan, and you may be able to find it on a system nearì
  118. you.  ZSA had not yet been formed at that time, and the file instructs clubsì
  119. to send the necessary registration forms to Alpha Systems.  Alpha Systemsì
  120. has agreed that ZSA should take over responsibility for the administrationì
  121. of this plan.
  122.  
  123.      A revised version of the Z-Plan file should be on systems by the timeì
  124. you read this column, but if you already sent information to Alpha instead,ì
  125. it would be a good idea to send another copy to ZSA (again, see the Sageì
  126. Microsystems ad for the address).  More importantly, if you belong to a clubì
  127. that has not registered, have them write to me requesting a description ofì
  128. the plan and registration forms.
  129.  
  130.  
  131.                           My New Amstrad Computer
  132.  
  133.  
  134.      One of the computers on which Z-System now runs and one which exists inì
  135. very large numbers, especially in Europe, is the Amstrad.   This CP/M-Plusì
  136. machine -- once sold in the US by Sears, Roebuck -- uses a very unusual 3"ì
  137. diskette (unique might be a better word for it).  We were afraid that weì
  138. would not be able to produce Z3PLUS diskettes for this machine, so I boughtì
  139. one second hand (just what I needed, another computer!).  Since it appearedì
  140. that we really had to have the machine, I probably paid a good bit more thanì
  141. it would otherwise be worth, but I must say that it has been a very pleasantì
  142. surprise.  (On the other hand, paying close to $400 for a hundred diskettesì
  143. was a most unpleasant surprise.)
  144.  
  145.      I expected the Amstrad to be little more than a toy.  Instead, I haveì
  146. found it to be a very capable machine and an excellent platform on which toì
  147. run Z-System.  The main reason for this is its very nice RAM disk.  Myì
  148. PCW8512 (it started life as a PCW8256, but it was upgraded) has a total ofì
  149. 512K of RAM, about 350K of which is available as a RAM drive.  With ARUNZ,ì
  150. EASE, ZFILER, all their support files, and a few other critical files on theì
  151. RAM drive, the Z-System really zips along.
  152.  
  153.      The native (non-CP/M) mode has also proved to be quite useful.  Theì
  154. Amstrad was largely promoted as a stand-alone wordprocessor, and itsìèLocascript wordprocessing software is actually rather nice.  Like Macintoshì
  155. software, it is very easy to use, and my 12-year-old son has really taken toì
  156. it in a way he never did to my super-sophisticated PMATE editor.  Theì
  157. keyboard is set up specially for the software, and the computer includes anì
  158. integral printer.
  159.  
  160.      That printer is, in fact, rather interesting in its own right.  To keepì
  161. the cost down, Amstrad buys just a raw printer mechanism, and they supplyì
  162. the software drivers to emulate an Epson FX80 in the host machine.  Theì
  163. printer is pitifully slow, but I actually use it myself now for quickì
  164. letters because the Amstrad is so much faster to set up than my fancyì
  165. systems.  The printer even loads single sheets of paper automatically, andì
  166. that's more than my (at one time) $3000 Diablo HyType-II printer can do.  Ifì
  167. you have an Amstrad computer or know of someone who does, I would be happyì
  168. to help them get started on Z-System.
  169.  
  170.  
  171.                           Special Acknowledgments
  172.  
  173.  
  174.      Before we go on to ZFILER.  I would like to acknowledge publicly someì
  175. very special recent contributions to the development of Z-System.
  176.  
  177.      David Johnson of Sunnyvale, CA, took my ZCPR34 source code and mustì
  178. have gone over it not only with a fine-toothed comb but with an electronì
  179. microscope.  In programming, I always give top priority to writing code thatì
  180. has good features and runs reliably.  Code compactness is secondary.  Thus,ì
  181. I am never surprised when I learn that one of my routines can be improvedì
  182. slightly.  Nevertheless, I would never have believed that the Z34 code couldì
  183. reduced by close to a hundred bytes, but David Johnson did just that!  Evenì
  184. Joe Wright, who is deservedly acclaimed for his coding skill, had only takenì
  185. out 10 or 20 bytes, and he was especially impressed by David's achievements. ì
  186. With all the new space available, I can now start to think about more newì
  187. features!
  188.  
  189.      The second person whose contribution I want to acknowledge is Billì
  190. Tishey of Severn, MD.  Bill has proven something I have been trying to getì
  191. across for a long time: that you do not have to be a programmer toì
  192. contribute in a significant way to Z-System.  Bill has sytematicallyì
  193. compiled the documentation for the complete collection of Z-System programsì
  194. in a set of help files that runs (uncompressed) to more than a megabyte!  Heì
  195. has grouped the help files into libraries with names of the form
  196. Z3HELP-n.LBR, where 'n' is the first letter of the command name.  
  197. Z3HELP-A.LBR, for example, contains 21 files covering ARUNZ, AFIND, ALIAS,ì
  198. and many other commands.  To my mind, this contribution is at least asì
  199. valuable as those of program authors because it makes the programsì
  200. accessible to the user.
  201.  
  202.   The complete set of files is posted on my Z-Node #3 and will graduallyì
  203. make its way around the world (slowly probably, because of their size).  Inì
  204. view of the exceptional value of Bill Tishey's help system, Sageì
  205. 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ì
  206. have to send (1) preformatted diskettes clearly marked with the exact formatì
  207. and sufficient to hold 800K of files; (2) a disk mailer for returning theì
  208. diskettes (unless the one you sent the disks in is reusable); (3) returnì
  209. postage; and (4) a return address sticker.  We can accept 8" SSSD IBMì
  210. standard format (including 'flippy' diskettes) and most 5" soft-sectoredì
  211. formats (anything on the menus of Uniform or Media Master on either theì
  212. SB180 or an IBM AT).  Bill, himself, has an Apple and (I just spoke withì
  213. him) is willing to make the same offer for diskettes in that format.  Hisì
  214. address is 8335 Dubbs Drive, Severn, MD 21144.
  215.  
  216.  
  217.                      ZFILER, The Point-and-Shoot Shell
  218.  
  219.      Now let's turn to the technical subject for this issue, the ZFILERì
  220. shell.  Having written about shells so much in the past few columns, I amì
  221. tempted to jump right into the thick of the subject.  However, judging fromì
  222. the number of new subscriptions that SME alone takes each month, TCJ mustì
  223. have lots of new readers with each issue.  Therefore, I will begin at theì
  224. beginning.  Since time and energy are in short supply, however, I will notì
  225. attempt to provide the same comprehensive documentation that I did forì
  226. ARUNZ.  Instead, I will concentrate on the basics, on the one hand, and onì
  227. some of the special features that many users may overlook, on the other.
  228.  
  229. Z-System Shells
  230.  
  231.      A Z-System shell is a program that takes over the user-input functionì
  232. of the command processor.  The way this works is that the Z-Systemì
  233. environment includes a special area in memory called the shell stack whereì
  234. shell command lines can be kept.  Whenever the ZCPR3 command processor isì
  235. finished processing all the commands that have been passed to it in theì
  236. command line buffer (another special area in memory), it checks the shellì
  237. stack.  Only if no command line is present there does the command processorì
  238. itself prompt the user for the next command line.  If there is an entry inì
  239. the shell stack, then that command line is run instead, and the user noì
  240. longer sees the command processor directly.
  241.  
  242.      Some shells, like the EASE history shell, while making a big change inì
  243. how the system is actually running, make relatively little change in how itì
  244. appears to run.  A command prompt is still presented, and one entersì
  245. commands more or less as usual.  The difference is that one has a moreì
  246. capable editor at one's disposal, and the commands are saved to a historyì
  247. file from which they can be recalled, edited, and run again.  As we shallì
  248. see, the ZFILER shell presents the user with a dramatically different userì
  249. interface.
  250.  
  251. What is ZFILER For?
  252.  
  253.      Historically, ZFILER is a descendant in the line of file maintenanceì
  254. utilities like SWEEP and NSWP (hence the "filer" part of the name).  Fileì
  255. maintenance is generally concerned with copying files, looking at theirì
  256. contents, renaming them, erasing them, and so on.  ZFILER provides all theseìèfunctions and more.
  257.  
  258.      ZFILER's immediate parent was VFILER, where the "V" stood for video. ì
  259. The TCAP facility in Z-System makes it easy for programs to take advantageì
  260. of the full-screen capabilities of whatever video display terminal happensì
  261. to be in use at any time.  In contrast to applications under CP/M, Z-Systemì
  262. programs need not be configured to match the terminal.  It was, therefore,ì
  263. natural to build a file maintenance program in which the files are displayedì
  264. graphically on the screen.  When I decided to explore some new directionsì
  265. with VFILER, to avoid confusion I gave the program the new name ZFILER, forì
  266. Z-System Filer.
  267.  
  268.      The file maintenance tasks described above would not require a shell. ì
  269. Making the program a shell, however, allows it to go beyond the functionsì
  270. included in the program's own code.  Because a shell can pass command linesì
  271. to the operating system, ZFILER can perform any operation that the computerì
  272. is capable of.  Like a menu system, however, it helps the user by generatingì
  273. the commands automatically at the touch of a key.
  274.  
  275.      When ZFILER is running, the screen is filled with an alphabetizedì
  276. display of the files in a specified directory, and there is a pointer thatì
  277. the user can manipulate using cursor control keys.  If we had a mouse toì
  278. move the pointer, it would be a little like having a Macintosh.  Actually,ì
  279. it would be a lot more.  It would be like having a mouse with fifty buttons! ì
  280. Once the pointer has been positioned on a file, pressing a key (or two orì
  281. 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.
  282.  
  283. Invoking ZFILER
  284.  
  285.      Since ZFILER performs full-screen operations, a proper Z-Systemì
  286. terminal descriptor (TCAP) must have been loaded.  If you have not doneì
  287. that, or if you have selected a terminal that does not support all theì
  288. functions ZFILER needs, then ZFILER will give you an error message.  Theì
  289. TCAP, unfortunately, does not include information about whether dim orì
  290. reverse video is used by the terminal, and since these two modes forì
  291. highlighting regions on the screen are so different, ZFILER is madeì
  292. available in separate versions for each.
  293.  
  294.      There is also an option to have either four or five columns of fileì
  295. names in the display.  Personally, I prefer the four-column version, whichì
  296. gives an uncluttered screen with plenty of restful white space and a veryì
  297. distinct, easy-to-spot pointer.  Others think it is more important to beì
  298. able to see the maximum number of files on each screen and prefer the five-column display.
  299.  
  300.      Then there is the issue of support for time and date stamping of files. ì
  301. ZFILER contains the code for preserving the time stamps when files areì
  302. copied.  So as not to inflict the overhead of this code on those who haveì
  303. not implemented DateStamper (though they should do that!), ZFILER is alsoì
  304. provided in versions with and without the DateStamper code.
  305.  
  306.      If we supported all combinations of the above choices, there would beì
  307. eight different versions of ZFILER.  Typically, the distribution libraryìècontains four or five of the combinations.  For example, a five-column fileì
  308. display is not particularly compatible with reverse video highlighting,ì
  309. because the reverse video of tagged files runs into the reverse-videoì
  310. pointer.
  311.  
  312.      When you get ZFILER, you have to choose which version you prefer,ì
  313. extract it for the distribution library, and give it a working name (some ofì
  314. the early Z-System shells had to have a specific name, but you can giveì
  315. ZFILER any name you like).  I prefer the name ZF, since it is very quick andì
  316. easy to type, and I will use that name in all the examples that follow.
  317.  
  318.      The general syntax for invoking ZFILER is
  319.  
  320.         ZF filespec
  321.  
  322. where "filespec" is a standard Z-System ambiguous file specification (thatì
  323. is, it may contain the wildcard characters "?" and "*").  The filespecì
  324. selects the directory area and the files from that area to be included inì
  325. the screen display.
  326.  
  327.      Various parts of the filespec can be omitted.  If no filespec is givenì
  328. at all, then "*.*" for the currently logged directory is assumed. ì
  329. Similarly, if only a directory is specified (e.g., B: or 3: or B3: orì
  330. WORK:), then all the files ("*.*") in that directory are displayed.  If aì
  331. file name/type is included, then it will serve as a mask on the files to beì
  332. displayed.  Thus "ZF WORK:*.DOC" will show only files of type DOC in theì
  333. directory WORK:.
  334.  
  335.      The directory and file mask can both be changed from inside ZFILER asì
  336. well using the "L" or LOG command.  I bring this up now because there is aì
  337. confusing difference in the way the "L" command works.  VFILER originallyì
  338. allowed one to change only the directory and not the file mask from insideì
  339. the program.  To save the user the trouble of typing the colon after aì
  340. directory, its inclusion was made optional.  Since users became soì
  341. accustomed to this shorthand, it was carried over into ZFILER.  Because ofì
  342. this, if you want to change only the file mask, you must remember to precedeì
  343. it with a colon.  Otherwise your mask will be taken as the name of aì
  344. directory (which generally results in an error message).
  345.  
  346.      One brief aside for programmer types.  ZFILER can be loaded from anyì
  347. directory.  One of the special features of Z-System since version 3.3 of theì
  348. command processor allows a program to find out both its own name and theì
  349. directory from which it was actually loaded, perhaps as the result of a pathì
  350. search.  ZFILER builds the shell stack entry to invoke ZFILER under itsì
  351. current name from the directory in which it is actually located.  Thisì
  352. sometimes makes it run faster, and it allows ZFILER to be invoked from aì
  353. directory that is not on the search path.
  354.  
  355. The ZFILER Display
  356.  
  357.      The main ZFILER display contains three parts.  At the top of the screenì
  358. 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ì
  359. to right, the following information: (1) the directory that has beenì
  360. selected, in both DU and DIR (named directory) format; (2) the indicatorì
  361. "[PUBLIC]" if that directory is a ZRDOS public directory (if you don't knowì
  362. what this is, just ignore it); (3) the current time of day if DateStamper orì
  363. one of the new DOSs (ZSDOS or ZDDOS) is running; (4) the program's officialì
  364. name and version; (5) the text string "Current File:"; and (6) the name ofì
  365. the file currently being pointed to (this changes as the pointer is moved).
  366.  
  367.      At the bottom of the screen is a command prompt of the form
  368.  
  369.         Command? (/=Help, X=Quit):
  370.  
  371. The cursor (don't confuse this with the file pointer) is positioned afterì
  372. this command prompt to indicate that ZFILER is waiting for you to press aì
  373. key.
  374.  
  375.      The center 20 lines of the screen show the selected files.  Theì
  376. character string "-->" (only "->" in the five-column display) floats betweenì
  377. the rows of file names and designates the so-called "pointed-to" file.  Manyì
  378. of the ZFILER commands automatically operate on this file.
  379.  
  380.      What we have described so far is the main ZFILER screen, but it is notì
  381. the only one.  As the command prompt suggests, pressing the slash characterì
  382. (or "?" if you prefer) brings up a help screen that summarizes the built-inì
  383. commands of ZFILER.  This help screen replaces the file display but leavesì
  384. the status line at the top and the command line at the bottom, except thatì
  385. "/=Help" changes to "/=Files".  As you might, therefore, guess, pressingì
  386. slash again will take you back to the file display screen.
  387.  
  388.      I do not know if anyone makes use of this feature, but all ZFILERì
  389. command operations can be invoked from the help screen.  Although you cannotì
  390. see the file pointer, you can manipulate it in the usual way, and you canì
  391. tell what file you are pointing to from the name displayed at the upperì
  392. right on the status line.
  393.  
  394. ZFILER Commands
  395.  
  396.      I am not going to attempt to describe all of ZFILER's commands, but Iì
  397. will try to list most of them.  Basically, the commands fall into severalì
  398. classes.
  399.  
  400.      One classification reflects where the code for the command resides. ì
  401. There are two categories:
  402.  
  403.     A. Built-In Commands
  404.     B. Macro Commands
  405.  
  406. Class A includes the functions for which the code is part of ZFILER.  Macroì
  407. commands are like aliases in that they generate command lines that areì
  408. passed to the command processor for execution.  These commands make ZFILER aì
  409. 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.
  410.  
  411.      A second classification depends on what the command acts on.  Threeì
  412. categories describe the object of the commands:
  413.  
  414.     1. the pointed-to file
  415.     2. a group of tagged files
  416.     3. neither of the above
  417.  
  418. We will begin the discussion with commands of class A3, resident commandsì
  419. that do not perform any action on the files.
  420.  
  421. Pointer Commands
  422.  
  423.      Class A3 includes the commands that move the file pointer.  These areì
  424. shown on the help screen, and I will not list them here.  One can move theì
  425. pointer to the next file on the screen or to the previous one (withì
  426. wraparound); up, down, left, or right (with wraparound); to the first orì
  427. last file on the current screen; or to the very first or very last file ofì
  428. those selected by the file mask.  One can advance to the next screen ofì
  429. files or to the previous screen.  Obviously, some of these functions will beì
  430. redundant in some cases, such as when all the selected files can fit on oneì
  431. screen (think what happens when there is exactly one file selected).
  432.  
  433.      ZFILER learns from the TCAP the control characters sent by any specialì
  434. cursor keys on the keyboard (provided they send a single control characterì
  435. and provided the TCAP has been set up correctly), and it makes them generateì
  436. the up, down, left, and right functions.  If the cursor keys generateì
  437. control codes normally used for another function, then that function will beì
  438. lost (the cursor keys take precedence).  That can cause problems.  Oneì
  439. solution is to eliminate the definition of the cursor keys in the TCAP andì
  440. simply use the default WordStar diamond keys for those functions. ì
  441. Alternatively, one can patch ZFILER to use different keys for its ownì
  442. functions, but this is not straightforward to do, and I will not describe itì
  443. here.
  444.  
  445.      The "J" (Jump) command allows you to jump to a file that you name. ì
  446. This is very handy when there are many files in the display or when the fileì
  447. you want is not on the current screen.  Press the "J" key, and you will beì
  448. prompted for a file name.  You do not have to enter the exact name.  ZFILERì
  449. automatically converts what you type into a wildcard filespec, and it findsì
  450. the first file that matches.  For example, if you enter only "Z" followed byì
  451. a return, this is equivalent to "Z*.*", and ZFILER will move the pointer toì
  452. the first file that starts with a "Z".  Similarly, if you enter ".D", ZFILERì
  453. will move to the first file with a file type that starts with "D".
  454.  
  455.      The "J" function is very handy; however, there is more.  Many peopleì
  456. are not aware that you may press control-J to repeat the same search andì
  457. find the next matching file.  The search will wrap around from the end ofì
  458. the files back to the beginning.  This function is not listed on the helpì
  459. screen because I could not find room for it.
  460. èOther Non-File Commands
  461.  
  462.      Some other commands that do not act on files are: X, L, A, S, E, H, Z,ì
  463. and O.  "X", as the command prompt reminds you, is used to exit from ZFILER. ì
  464. Besides terminating the current execution of the program, it also removesì
  465. ZFILER's entry in the shell stack (if it did not, you would just reenter itì
  466. right away).
  467.  
  468.      We already spoke about the "L" (Log) command earlier.  The "A"ì
  469. (Alphabetize or Arrange or Alpha sort) toggles the way in which the filesì
  470. are sorted, namely alphabetically by the file name or by the file type.      ì
  471. The "S" (Status) command prompts you for a disk drive letter and then tellsì
  472. you the amount of space remaining on that disk.
  473.  
  474.      The "E" command (refresh scrEEn -- I know that's stretching things, butì
  475. "R" was already used) redraws the screen.  You might think that this wouldì
  476. never be needed, but there are two circumstances in which it comes in veryì
  477. handy.  One is when ZFILER is being used on a remote system.  It is trueì
  478. that very few RASs make ZFILER available, but I do on Z-Node #3.  If you getì
  479. some line noise, the screen can become garbled.  Then the "E" key can beì
  480. used to draw a fresh screen.
  481.  
  482.      The other circumstance in which the "E" command saves the day is withì
  483. Backgrounder-ii if you do not have a screen driver (I don't for my Conceptì
  484. 108 terminal -- never got around to writing one, partly because all theì
  485. programs I use frequently have a redraw key like this one).  I simply defineì
  486. a BGii key macro specifying "E" as the "redraw" key, save the keyì
  487. definitions to ZFILER.BG, and attach that definition to ZF.COM.  Thenì
  488. whenever I swap tasks back into ZFILER, BGii simulates my pressing the "E"ì
  489. key, and the screen is redrawn.  This often gives a faster screen refreshì
  490. than one gets with a full-fledged screen driver.
  491.  
  492.      The "H" (Help) command generates a macro command to invoke the Z-Systemì
  493. HELP facility.  To tell the truth, I have not used this and don't evenì
  494. remember precisely what it does.  I would have to look at the source code.
  495.  
  496.      The "Z" (Z-system) command prompts you for a command, and whatever youì
  497. enter is passed on to the Z-System multiple command line buffer forì
  498. execution.  When that command line is complete, ZFILER is reinvokedì
  499. automatically.
  500.  
  501.      When you use the "Z" command, you will normally be logged into theì
  502. directory that is currently displayed.  However, this will not always beì
  503. possible.  ZFILER allows you to select directories with user numbers from 0ì
  504. to 31.  Unless you are using a version of ZCPR33 or ZCPR34 with the HIGHUSERì
  505. option enabled, you cannot log into user areas above 15.  In that caseì
  506. ZFILER will put you in the directory your were in when you invoked ZFILER. ì
  507. In any case, the command prompt will indicate the directory from which yourì
  508. command line will be executed.
  509.  
  510.      Since commands you run using the "Z" function may put some informationì
  511. 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ì
  512. press a key before putting up its display.  Here is a tip for advancedì
  513. users.  If you enter your command line with one or more leading spaces, thisì
  514. shell-wait flag will not be set, and ZFILER will return without your havingì
  515. to press a key.  The leading spaces are stripped from the command lineì
  516. before it is passed to the command processor.  This means that you cannotì
  517. use a leading space to force invocation of the extended command processorì
  518. (ECP); you have to use the slash prefix instead.  A space and a slash willì
  519. force invocation of the ECP and will disable the shell-wait flag.
  520.  
  521.      The final command in class A3 is the "O" (Options) command.  It is aì
  522. complex topic, and I will leave it for next time.  If you can't wait untilì
  523. then, experiment with it.  It should not be able to do any harm to yourì
  524. system.
  525.  
  526. Single-File Built-In Functions
  527.  
  528.      Now let's discuss the commands in class A1, the built-in commands thatì
  529. act on the pointed-to file.  These are invoked by pressing one of theì
  530. following keys, whose meaning is indicated in parentheses: C (Copy), Mì
  531. (Move), D (Delete), R (Rename), V (View), P (Print), F (File size), T (Tag),ì
  532. and U (Untag).  Some of these are self-explanatory, and I will not discussì
  533. them.
  534.  
  535.      The "C" command copies a file to another directory under the same name;ì
  536. it does not allow one to give a new name for the destination file (however,ì
  537. you can do that with a macro command).  The "M" command does not really moveì
  538. a file; it copies the file and then, if the copy was successful, deletes theì
  539. original file.  It is really a combination of "C" and "D".  Moving a fileì
  540. this way is inefficient if the destination directory is on the same drive asì
  541. the source file.  A macro command that invokes an ARUNZ alias can get aroundì
  542. this limitation (and almost all other ZFILER limitations).
  543.  
  544.      The tag and untag commands are used to select a group of files on whichì
  545. operations can be performed.  Tagged files are indicated in two ways.  Aì
  546. special character ("#") is placed after the file name in the display, and,ì
  547. if the terminal supports video highlighting, the file is highlighted.
  548.  
  549.      Two related commands are W (Wild tag) and Y (Yank back?).  "W" allowsì
  550. you to tag or untag groups of files designated by an ambiguous file spec. ì
  551. After tagged files are operated on by the built-in group commands describedì
  552. below, the tag marker "#" is changed to "'" (a soft tag).  The "Y" commandì
  553. changes the soft tags back into hard tags so that further group operationsì
  554. can be performed on those files.
  555.  
  556. Built-In Group Commands
  557.  
  558.      Group commands are initiated by pressing the "G" (Group) key.  Theì
  559. command prompt at the bottom of the screen changes to
  560.  
  561.     Command? (/=Help, X=Quit)  Group: (A,C,D,F,M,P,R,T,U,V)
  562. èFor now we will consider only the built-in group functions (class A2) andì
  563. will take up group macro commands (class B2) next time.
  564.  
  565.      Except for the four functions described below, the letters invoke theì
  566. same action as the individual command corresponding to that letter, but theì
  567. function is performed on all the tagged files.  We will not discuss thoseì
  568. further.  Note in particular that the keys "A" and "R", however, have aì
  569. group function that is completely different from the individual function.
  570.  
  571.      The "U" and "T" group functions do not act on the tagged files; theyì
  572. change the tagging.  The former untags all files; the latter tags them all.
  573.  
  574.      The "R" group function is another one that does not, strictly speaking,ì
  575. act on the tagged files.  It reverses the tags, tagging the files that hadì
  576. been untagged and untagging the ones that had been tagged.  This can be veryì
  577. handy in several circumstances.  For example, you might want to copy all theì
  578. files except two.  It is easier to tag those two and then to reverse theì
  579. tags.  As another example, you might want to copy some of the displayedì
  580. files to one diskette and the others to a second diskette.  I do thisì
  581. frequently.  I begin by tagging the ones to go to the first diskette.  Thenì
  582. I group copy ("GC") them to the destination diskette.  Next, I yank back theì
  583. tags using the "Y" command and then reverse the tags with "GR".  Now I canì
  584. group copy the rest to the second diskette.
  585.  
  586.      The "A" (Archive) group command is very handy for automating backups. ì
  587. When it is entered, the tags are removed from any tagged file whose archiveì
  588. flag is set.  As a result, only files that have been modified since the flagì
  589. was last set will remain tagged.  In addition, the "A" group commandì
  590. automatically initiates a group copy operation but with one special feature. ì
  591. After the file has been copied successfully, the archive flag on the sourceì
  592. file is set to indicate that the file has been backed up.
  593.  
  594.      Under later versions of VFILER, the group "A" command automaticallyì
  595. tagged all unarchived files; under ZFILER it untags the archived ones.  Thisì
  596. difference is very important.  With VFILER, you were forced to back up allì
  597. the files selected by the VFILER file mask.  Under ZFILER you can select theì
  598. files that will be candidates for backing up.  If you want the achieve theì
  599. same function as under VFILER, just tag all the files first with "GT" andì
  600. then archive them with "GA".  On the other hand, if you want to exlude BAKì
  601. files from the backup, you can "GT" all files, untag the "*.BAK" files usingì
  602. the "W" command, and then use the "GA" command.
  603.  
  604.      After you enter the command "GA", you will be prompted for aì
  605. destination directory.  You do not have to supply one!  If you simply enterì
  606. a carriage return, the copy operation will be skipped, and you will be leftì
  607. with tags on the files that need to be backed up.  You can then use a macroì
  608. function to back them up in a specialized way, such as crunchingì
  609. (compressing) them to the backup disk (instead of copying them as they are)ì
  610. or putting them into a library on the backup diskette.  Next time we willì
  611. discuss the macro techniques required to do this.
  612.  
  613. [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
  614. permission of the author and the publisher. Further reproduction for non-
  615. commercial purposes is authorized. This copyright notice must be retained.
  616. (c) Copyright 1989, 1991 Socrates Press and respective authors]
  617.