home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / jsage / znode3 / tcj / tcj36.ws < prev    next >
Encoding:
Text File  |  1994-09-02  |  34.9 KB  |  616 lines

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