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 / KAYPRO / K83Z33.LBR / VLU.HZP / VLU.HLP
Text File  |  2000-06-30  |  20KB  |  461 lines

  1. :VLU101                            07/01-12/15/87
  2. Copyright 1987, Esoteric Software            Michal Carson
  3.  
  4.  
  5. This program is distributed through ZSIG.
  6.  
  7.  
  8.  
  9.  
  10. VLU is a ZCPR3-specific library utility with crunch, uncrunch, and 
  11. unsqueeze capabilities.  It will allow the user to view, 
  12. uncompress, or extract library members or to view, uncompress 
  13. (uncrunch or unsqueeze, VLU will decide), or crunch disk files.  
  14. VLU will build libraries from disk files, crunching the files as 
  15. they are added.
  16.  
  17. The utility will display a list of disk files on the screen along 
  18. with a cursor and other information.  Placing the cursor next to 
  19. the name of a file with the extension .LBR and pressing 'O' for 
  20. Open will display the contents of the library and shift the cursor 
  21. into that directory.
  22.  
  23.  
  24. What is a Library?
  25.  
  26.  
  27. The Library file format was developed to overcome two persistent 
  28. limitations of CP/M disk storage capacity: limited directory 
  29. entries and large blocking.
  30.  
  31. Although CP/M writes files in units of 128 bytes (sectors), most 
  32. manufacturers have used larger blocks for storage on disk.  On a 
  33. Kaypro with double-sided disks, for instance, all files are stored 
  34. in 2K blocks; even a file one sector in length will occupy 2K on 
  35. the disk.  Because the Kaypro disk format allows only 64 directory 
  36. entries (files) on one disk, 64 of these 1-sector files (8K) will 
  37. fill a 390K disk.
  38.  
  39. In a library, a one sector file occupies one sector (plus 32 bytes 
  40. for internal directory information).  The library itself occupies 
  41. only one directory entry on the disk.  If 64 one-sector files are 
  42. placed into a library, the library will occupy 10K.
  43.  
  44. This is obviously an extreme example but illustrates the 
  45. usefulness of libraries.  Other reasons exist; for instance, 
  46. libraries keep related files together.  VLU will make files within 
  47. libraries more accessible.
  48.  
  49.  
  50. In this Library
  51.  
  52.  
  53. Two executable versions are distributed:  VLUxxx-R.COM is for 
  54. machines using reverse video as highlighting.  VLUxxx-D.COM is for 
  55. machines using dim video as highlighting.  VLU.FOR is a short 
  56. description of the utility; VLU.HLP is full documentation 
  57. compatible with the ZCPR3 HELP text display utility.
  58.  
  59.  
  60. The Help display
  61.  
  62.  
  63. Pressing "/" or "?" will evoke a display summarizing the commands 
  64. available to the user.  These commands change according to Wheel 
  65. status and directory choice (e.g., Delete is not available in the 
  66. library and is never available to non-wheels).  Pressing either of 
  67. these keys a second time will clear the display.
  68.  
  69.  
  70. Invoking VLU
  71.  
  72.  
  73. Use VLU as an extension to a ZCPR3 shell, such as ZFiler, invoked 
  74. through a macro.  To install it, one need only open the ZFILER.CMD 
  75. file with a word processor and enter a line of the form "1 vlu".  
  76. Thereafter, positioning ZFiler's cursor beside a library file and 
  77. pressing "1" (possibly preceded by [esc]) will bring up VLU with 
  78. the library already open.  A better thought is to assign this 
  79. macro to the "O" key--"O $d1$u1:;vlu" in ZFILER.CMD--so that [esc] 
  80. "O" will open the indicated library.
  81.  
  82. Some aspects of VLU were designed to make it an extension of 
  83. tools like ZFiler.  Most of these tools use the ZCPR system files 
  84. to store the name of the current file (the file the cursor was 
  85. pointing to on exit).  VLU checks these filenames and interprets 
  86. the current file (sys file 2) as a library.  On starting up, VLU 
  87. will try to open a library file of this name in the current 
  88. directory.  
  89.  
  90. This allows the user to invoke VLU from the "Z" prompt of ZFiler 
  91. or through a macro, pass no parameters, yet open the current file 
  92. if it is a library (or shares the same name as a library though it 
  93. may have a different extension).  If a different library is opened 
  94. before returning to ZFiler, VLU will modify the filename in 
  95. system file 2 (and thus cause ZFiler to believe it was pointing to 
  96. this library when it exited).
  97.  
  98. As a command file, VLU can, of course, be invoked from the system 
  99. command prompt.  If a library name is entered on the command line, 
  100. that name will take priority over any name currently in system 
  101. file 2 and the library will be opened if it exists.  Even from 
  102. ZFiler's "Z" prompt, with the pointer on ABC.LBR, entering the 
  103. command "VLU DEF" will open DEF.LBR and place that name into 
  104. system file 2.
  105.  
  106. VLU can be re-entered with the GO command.
  107.  
  108.  
  109. Changing libraries
  110.  
  111.  
  112. When a library is opened, when VLU is invoked with a library name 
  113. in the command line, or when a new directory is logged in with a 
  114. library open, the VLU cursor will point into the library 
  115. directory.  Pressing the [esc] key will shift the cursor back into 
  116. the disk directory.  Opening a different library is as simple as 
  117. positioning the cursor in front of the name and pressing "O".
  118.  
  119.  
  120. Cursor motion
  121.  
  122.  
  123. Moving the cursor (pointer) in VLU is effected using the WordStar 
  124. cursor motion controls.  Ctrl-E moves the cursor up one line, ctrl- 
  125. X moves it down.  Ctrl-S moves the cursor left one file, ctrl-D 
  126. moves it right.  Ctrl-F brings a new directory onscreen if there 
  127. are more files in the directory (as if the display were moving 
  128. right by a directory), ctrl-A moves back toward the beginning of 
  129. the file list.  Ctrl-F will wrap around from the final directory 
  130. to the original.
  131.  
  132. The arrow keys will also function if they are properly defined in 
  133. the users Environment descriptor.  The symbols "+" and "-" (and 
  134. "=", the usual non-shifted counterpart of "+") have the same 
  135. effect on the directories as ctrl-F and ctrl-A, respectively.
  136.  
  137. The [esc] key shifts directories: from the library to the disk, 
  138. from the disk to library.  In most instances the cursor will 
  139. "remember" where it was when it last pointed into that directory.
  140.  
  141.  
  142. Extracting and Uncompressing library members
  143.  
  144.  
  145. Positioning the cursor beside the name of a member file within a 
  146. library and pressing "E" for Extract will cause the file to be 
  147. copied from the library to the disk with no change in form.  If it 
  148. is crunched or squeezed within the library, it will be crunched or 
  149. squeezed on the disk.
  150.  
  151. Pressing "U" for Uncompress will cause a crunched file to be 
  152. uncrunched onto the disk, a squeezed file to be unsqueezed onto the 
  153. disk, or an uncompressed file to be extracted sic.
  154.  
  155.  
  156. Changing directories
  157.  
  158.  
  159. Library members may be extracted to a disk and/or user area other 
  160. than the one which contains the library.  Open the library first, 
  161. then use the Login command to move to the destination directory 
  162. and perform the extraction or decompression.  The move is 
  163. accomplished by pressing "L" (cursor position makes no difference 
  164. with this command) and answering the prompt "Directory ".  The 
  165. user may enter a DU: specification (e.g., A0:, B14:, F:) or the 
  166. name of a ZCPR3 named directory to be found in the current system 
  167. (e.g., MODEM:, DUNGEON:).  The colon is not necessary in any case 
  168. and an invalid directory or denied access will relog the current 
  169. area.  No entry at all will also relog the current area to 
  170. facilitate disk changes.
  171.  
  172.  
  173. Tagging files
  174.  
  175.  
  176. The "T" command will tag an untagged file and the "Y" command will 
  177. remove the tag from a tagged file.  The tag appears as a hash (#) 
  178. immediately following the filename.  After a group operation 
  179. (actually, during the group operation) hard tags represented by 
  180. the hash are replaced by soft tags which appear as an apostrophe 
  181. (').  Soft tags may be transformed back into hard tags by the 
  182. retag command: "*".
  183.  
  184. Wildcard tagging is accomplished by pressing "W" and providing a 
  185. wildcard file specification in response to the prompt.  All files 
  186. in the directory, starting from the beginning, which match the 
  187. file spec will be tagged.
  188.  
  189. Group Tag ("GT") is equivalent to a *.* wildcard tag.
  190.  
  191. It may be convenient at times to untag all files.  This can be 
  192. accomplished by relogging the directory with the Login command.  
  193. Certain file operations which affect the disk directory (anything 
  194. that adds or deletes files) will also end by relogging the 
  195. directory and any remaining tags will be erased.  Group operations 
  196. obviously prevent this relogging until all files have been 
  197. operated upon.
  198.  
  199.  
  200. Group operations
  201.  
  202.  
  203. "G" will evoke the Group prompt.  From this prompt, several 
  204. commands are available to wheels.  Only the View command is 
  205. available to non-wheels and it will be executed immediately.  If 
  206. the wheel byte is not zero, the prompt will indicate by the first 
  207. letter of each command that View, Tag, Uncompress, crunch, and 
  208. either Extract or Delete and Build are available.  Any selection 
  209. is carried out on all tagged files.  The Group manager will check 
  210. for ctrl-C between each file and abort if it is seen.
  211.  
  212.  
  213. Viewing files and library members
  214.  
  215.  
  216. Crunched, squeezed, and uncompressed files may be viewed by 
  217. pressing "V" at the VLU prompt.  The screen will clear, the 
  218. file's name will appear at the top of the screen and the file will 
  219. be presented.  The display will stop with the prompt "[strike any 
  220. key]" after, in general, 22 lines.  The number of lines (the size 
  221. of a screen page) is taken from the ZCPR3 Environment descriptor.  
  222. The number provided there, by convention, is two lines less than 
  223. the screen height.  This should give the viewer two lines of 
  224. overlap with each page.  If this is unsatisfactory, the user's 
  225. Environment descriptor can be adjusted.
  226.  
  227. At any time during the viewing, pressing ctrl-S will pause the 
  228. display.  Pressing ctrl-C will abort the operation.  Under Group 
  229. control, ctrl-C will abort the entire operation and no more files 
  230. will be presented; the user will be returned to the file directory 
  231. display.  Unscreened files will remain tagged.  Ctrl-X may be used 
  232. to skip to the next file under Group execution; it has the same 
  233. effect as ctrl-C if only one file is being viewed; id est, we 
  234. abort.
  235.  
  236. At the "[strike any key]" prompt, pressing the period will bring 
  237. one more logical line to the screen.
  238.  
  239. Ctrl-Z will suppress the "[strike any key]" prompt and the file 
  240. will scroll continuously.  The viewer is then left with ctrl-S to 
  241. stop the display (and any key except ctrl-X and ctrl-C will 
  242. restart it).  Another Ctrl-Z will restore the paging mode and 
  243. stop the screen immediately.  This is handy for long files when 
  244. the interesting text is near the end.
  245.  
  246. Certain file extensions are proscripted (e.g., COM, LBR, ARK, SYS, 
  247. RCP, REL, PRL, etc.) and VLU will give the message "may not type" 
  248. followed by the file name.  Crunched files of proscripted types 
  249. may have a "stamp" of interest to the user.  If a proscripted file 
  250. has a "Z" in the extension (e.g., CZM, RZL, etc.) VLU will give 
  251. the filename as it appears and attempt to extract the original 
  252. filename and any stamp contained in the first record of the file.
  253.  
  254.  
  255. Crunching disk files
  256.  
  257.  
  258. The crunching faculty of VLU is incidental.  Because of the Group 
  259. operations, it may be quite useful and may become addictive, but 
  260. crunching files on disk is secondary to the project of crunching 
  261. files into libraries.  Selecting "K" at the command prompt will 
  262. cause VLU to crunch the file pointed to by its cursor.
  263.  
  264. VLU will first prompt for a "stamp."  By convention, this is a 
  265. message of up to 40 characters enclosed in square brackets.  The 
  266. message is imbedded in the first record of the crunched file to be 
  267. displayed when the file is either uncrunched or viewed.  Often, 
  268. the message reports the date of the crunching, the author or 
  269. origin of the file, or its expanded size.
  270.  
  271. VLU will allow the entry of up to 38 characters.  Two characters 
  272. are reserved so that VLU can insert the square brackets if the 
  273. user omits one or both.  VLU will remove any trailing spaces from 
  274. the message; if the user wishes the spaces to appear, the user 
  275. must enter at least the final closing bracket.
  276.  
  277. The crunching operation will be aborted if the file is already 
  278. compressed (either crunched or squeezed) or is of a proscripted 
  279. filetype.  Proscripted filetypes are LBR, ARC, ARK, BAD, and, if 
  280. the target is a library, FOR and CIM (vide infra).
  281.  
  282. VLU will allow the user to crunch a member out of a library onto 
  283. the disk.  There seems no harm in such an operation (and as little 
  284. use).
  285.  
  286.  
  287. File size report
  288.  
  289.  
  290. The size of a file in kilobytes is reported when the user presses 
  291. either "F" or carriage return.  If the file is a library member, 
  292. the size will also be reported in records.
  293.  
  294.  
  295. Renaming disk files
  296.  
  297.  
  298. VLU will not rename a library member.  To rename a disk file, 
  299. position the cursor beside the file and press "R".  Enter the new 
  300. name at the prompt.
  301.  
  302.  
  303. Deleting disk files
  304.  
  305.  
  306. VLU will not delete a library member.  To delete a disk file, 
  307. position the cursor beside the file and press "D".  The user will 
  308. be prompted to confirm that the file is to be deleted.  Under 
  309. Group execution, if the user selects Delete, the prompt will 
  310. appear for each file.  Currently, there is no provision to avoid 
  311. this prompt.
  312.  
  313.  
  314. Building libraries
  315.  
  316.  
  317. In order for VLU to build a library, all files to be included 
  318. must be located in the same directory.  The library may, if 
  319. necessary, be built in a foreign directory.
  320.  
  321. As distributed, VLU will crunch all files as they are added to the 
  322. library (unless the extension is unacceptable as previously 
  323. stated).  See the configuration section for possible attenuation 
  324. of this practice.
  325.  
  326. To initiate the construction, tag the files which are to be 
  327. included and then type "GB" for Group and Build.  VLU will prompt 
  328. for the name and directory of the "new library" and the number of 
  329. entries to allow.  A carriage return at the "entries" prompt will 
  330. build a library with the minimum directory size, only large enough 
  331. to accomodate the currently tagged files.  The largest library 
  332. that may be built with VLU is 255 entries.
  333.  
  334. VLU will then initialize the library directory area.  The 
  335. directory list (onscreen)  will be reset to the first screen; the 
  336. cursor will move to the first tagged file and a message will 
  337. display that the file is being crunched or added as appropriate.  
  338. If any files are to be crunched, the "stamp" prompt will appear 
  339. and the stamp thus entered will be in effect for all files 
  340. crunched into the library.
  341.  
  342. Under this operation, as under the Wildcard and other Group 
  343. operations, the directory list onscreen will shift through all 
  344. files searching for tags.  This will be more noticeable in larger 
  345. directories (which require more than one display) and during the 
  346. Building of libraries (because of the pause to close the library).
  347.  
  348.  
  349. Configuration
  350.  
  351.  
  352. There are five configuration bytes.  The first, at 10Ch, controls 
  353. the display of files whose system bit is set.  Zero value in this 
  354. location will display such files, any other value will suppress 
  355. their display.  Default as distributed is "not displayed."
  356.  
  357. The second byte was added in order to accomodate LDR v1.6.  This 
  358. version of LDR allows all ZCPR3 system segments to be packed into 
  359. a single library, saving disk and directory space.  If the byte at 
  360. 10Dh is of zero value, all system segments will be crunched 
  361. according to the rules governing other files.  If the user wishes 
  362. to be prompted when a system segment is detected--given the option 
  363. of crunching or not--the byte at 10Dh should be not zero.  Default 
  364. as distributed is "prompt."
  365.  
  366. The third byte (10Eh) controls a prompt in the library building 
  367. routines.  If this byte is not zero, the user will always be 
  368. prompted before a file is crunched.  This gives the opportunity to 
  369. load uncompressed files to the library.  The fourth byte (10Fh) is 
  370. dependent on the third.  If the third byte is zero, there will be 
  371. no prompt and all files will be loaded to the library on direction 
  372. of the fourth byte.  If the fourth byte is zero, all files will be 
  373. loaded sic; if not zero, files which have passed VLU's other 
  374. criteria will be crunched.  The fourth byte has no effect if the 
  375. third byte is not zero.  Default as distributed is "no prompt, 
  376. crunch when possible."
  377.  
  378. The fifth byte (110h) is a bit map of fixed media.  The most 
  379. significant bit represents the A: drive; the least significant, 
  380. the H: drive.  If the bit is set (1), the drive will not be reset 
  381. on logging to a new directory.  If the bit is reset (0) a disk 
  382. reset (BDOS function 37) will be performed each time the Login 
  383. command is used.  This takes some time; users with Hard Disks and 
  384. RAM disks are encouraged to configure this byte to match their 
  385. system.  Users with only floppy disk drives should leave the byte 
  386. in its default as distributed: "no fixed media" (00h).
  387.  
  388. The value needed in this byte to indicate that the A: drive is not 
  389. to be reset is 80h.  The value for A: and B: is C0h.
  390.  
  391. Following the five configuration bytes, the user will note the two 
  392. file extents FOR and CIM.  This location contains a list of 
  393. filetypes which the user does not wish to be crunched in building 
  394. a library.  More filetypes may be patched into this list; the list 
  395. must be terminated by a null.
  396.  
  397.  
  398. Option menu
  399.  
  400.  
  401. The Option menu, accessed by typing "M" at the command prompt, 
  402. will toggle any of the first four configuration bytes.  This 
  403. allows temporary assignment of the options to display/suppress 
  404. system files, prompt before crunching system segments, and prompt 
  405. before crunching files into libraries.
  406.  
  407.  
  408. Security
  409.  
  410.  
  411. The Login command of VLU will use the Z33 parser when it is 
  412. available, thus behaving exactly as the operating system would in 
  413. allowing admitance to directory areas.  When Z33 is not available, 
  414. VLU allows immediate entry to any du: or dir: within the MAXDSK 
  415. and MAXUSR limits of the environment.  Dir: forms outside these 
  416. limits are also accepted; passwords, if present, are enforced.
  417.  
  418. Commands Delete and Rename and any commands that would create new 
  419. files are available only while the wheel byte is set.
  420.  
  421.  
  422. Contributors
  423.  
  424.  
  425. VLU directly incorporates the work of many "better makers."  My 
  426. thanks to all of them as much and more for the opportunity to read 
  427. and learn from their code as well as for their library releases.  
  428. Among them, the following:
  429.  
  430. Richard Conn, Howard Goldstein, Jay Sage, Al Dunsmuir et al. for 
  431. SYSLIB, Z3LIB, Z33LIB04 and VLIB--and ZCPR, itself.
  432.  
  433. C.B. Falconer and Steven Greenberg for USQREL, UNCREL, CRN, and 
  434. BUFFERS.
  435.  
  436. Steven Cohen for M24.
  437.  
  438. Martin Murray for NULU, the standard for these efforts.  And Gary 
  439. Novosielski for the library format.
  440.  
  441.  
  442. Note from the programmer
  443.  
  444.  
  445. Please notice that VLU is not a shell.  If there are good 
  446. arguments for making it a shell, please forward them to me.  Other 
  447. functions are planned; next upon the board is output to printer.  
  448. If you have requests or ideas, contact me.
  449.  
  450. VLU, its source code, and its documentation are copyright 1987 by 
  451. Esoteric Software.  VLU is distributed for non-commercial use 
  452. only; any commercial use or any re-distribution in association 
  453. with a commercial product or package requires the prior written 
  454. permission of the author.
  455.  
  456. I may be reached on Z-nodes 2 and 3--Al Hawley's Ladera and Jay 
  457. Sage's Newton Centre; both are available via PC-Pursuit.  I log 
  458. into these nodes approximately weekly.  If it is important to 
  459. reach me sooner, my home Z-node is #58, operated by Kent Mason in 
  460. Oklahoma City (405/943-8638).  You should check into this node 
  461. anyway; there aren't many Kaypros online with 1Meg of memory.