HJELP is an outgrowth of numerous HELP programs, although the specific model is the program HELP8080.ASM from SIG/M 122.03, which forms a part of the collection of utilities for Richard Conn's ZCPR2. The orientation of these predecessors was toward electronic browsing. In its simplest form, such a program was little more than CP/M's TYPE, with provision to halt after the number of lines that would fill a screen so that the text that was displayed did not have to be read on the run or be detained with elaborate finger acrobatics using ^S. Later, arrangements were made to skip portions of the text that the viewer did not want to see, and finally a tree structure was created so that overlays could be used and much more selective arrangements of text could be provided. Recently there has been much emphasis on squeezing files, and on packing them into libraries. Squeezing is particularly attractive for HELP files because they tend to occupy a considerable amount of disk space, which eventually becomes saturated in whatever system. By applying a simple Huffman code to their predominantly lower case ASCII text, they usually can be reduced to about two-thirds of their original volume. The program HJELP.ASM which was issued as SIG/M xxx.xx was modified from the above mentioned HELP8080.COM to work directly from squeezed files, which were unsqueezed directly from memory as required to type them at the console. - Libraries offer two advantages towards compactifying information stored on a disk. The most apparent advantage is the elimination of the loose ends that result when a file does not completely fill the eight or sixteen or more sectors which are allocated to a CP/M group. The LU utility reduces this wastage to a single sector, which is advantageous when several rather small files are combined in a single library. A more important advantage, although it is less obvious at first sight, is that a library requires but a single entry in CP/M's main directory, because it contains its own directory internally. For disks of large capacity, the management of the directory becomes a severe problem, and is a fundamental limitation on the applicability of CP/M as presently conceived. HJELP has been extended to work with a suite of HELP files, some or all of which belong to the same library. HJELP can then make more effective use of memory by dividing a HELP file up into more overlays, without paying the price of proliferating directory entries for each overlay. There is still a price which is paid when the library's internal directory has to be translated into disk sectors relative to CP/M's directory. It is easiest to read up to the desired library entry sequentially, but it would be even better to be able to calculate the exact position and start reading from it immediately. - A notation is needed for members of library files. The one chosen for HJELP resembles the scheme used to adjoin area codes to telephone numbers. Thus (LIBRARY) FILE.EXT states that FILE.EXT is a member of LIBRARY.LBR, whose implicit extension is .LBR, but could be anything else. Spaces are permitted after the right parenthesis to improve legibility. For example, in this HELP file, the listings of HJELP for the Intel 8080 and for the Intel 8086 have been incorporated into the file for purposes of reference by inserting information sections of the following form: (note that space has been saved by squeezing them) :: (HJELP) HJELP.AQM :: (HJELP) HJELP.AQ6 To keep them from being interpreted as subfiles, and thus having their first lines listed as a menu (or else having to place an extraneous colon at their head), they must begin with some control character. A carriage return, signifying an initial blank line, will do. - HJELP can use a HELP library in several ways. The file that we are now using is called HJELP.HLP. The command line HJELP HJELP will search for it and load it if it is present on the disk. In this mode of operation, the file HJELP.HLP may refer to as many additional flies or libraries as desired by designating them as information sections in the usual manner. To ensure their presence on the same disk, concurrently with HJELP.HLP itself, we could create a library called HJELP.LBR, include HJELP.HLP in it as a member, and issue the command line HJELP (HJELP) The same idea can be applied to any other file name; thus HJELP (X) would suppose that X.LBR contains the HELP file X.HLP and any other additional files needed for internal reference. Consequently a very elaborate HELP system can be devised, which will still take up only one directory entry. HJELP alone, according to our custom, will produce a tutorial message containing advice on how to use it; however the message is internal, not loaded from a disk. This behaviour is different from ZCPR2 HELP. - HJELP has additional characteristics. Used in conjunction with three of Vector Graphic's "dense graphics" boards, a RGB display can be created which can be used to illustrate the remainder of the text in the HELP file. Alternatively, a HELP file can be created that will serve as a description of an accompanying video display. The information section must then define the color images, which can also be taken as squeezed files from the same library. The format is :: R=(L)WH.VGR R-(L)RED.VGR G=(L)BL.VGR G+(L)GREEN.VGR B=(L)BLUE.VGR In this example, the library L.LBR contains color images RED.VGR, GREEN.VGR, BLUE.VGR, BL.VGR and WH.VGR, which evidently have not been squeezed. WH is a white image, BL a black image. The three operation symbols =, +, and - indicate that the image is to be loaded as is, or else ored into a previous image, or complemented with the previous image. There are altogether three alternatives for an information section. It can define a color composite, it can load a file for consultation, or it can define a whole new HELP file. All three can be combined, but only one of the latter two alternatives makes sense at a time. They are distinguished by whether the cited file begins with a control character, or alternatively, with a colon or some other character. A colon or control character designates a once-only text file, otherwise it is a new menu-driven HELP file. - The color capabilities will only be interesting for those systems which have memory mapped graphics, color or monochrome. In those cases the assembly listing will have to be consulted to define the memory areas into which the images are to be loaded. Even with out the video graphics capability, HJELP will be very useful for organizing and presenting a large collection of data in an orderly manner. It will be most useful when the information has been prepared in panel sized installments organized in a combination of sequential and tree format.