[õ A B Y SCRNLINE C KA  S T A R T E C H S Y S T E M S D Y N A H E L P S Y S T E M O V E R V I E W ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß DYNAHELP SUMMARY The real strength of the DYNAHELP SYSTEM is its ability to incorporate any text file into an existing help structure, regardless of the system's current size or its complexities. The process involves making changes to existing documentation, selecting a text file from a dynamic menu of files from anywhere in the realm of your system (networked or not), and letting the program create all the resources for calls from context sensitive programs or calls from the main help menu. The help databases (.INF's) are created from those text files and are placed in the default directory - that into which you copied the DYNAMENU system. DYNAHELP PROGRAM DESCRIPTIONS The DYNAHELP SYSTEM is comprised of four programs: Implementing Help Files - PROGRAM CREAHELP Main Help Menu - PROGRAM BDSHELPR Help Interface - PROGRAM HLPINTFC Browse Help - PROGRAM BROWHELP The following graphic may be helpful in determining how these programs interface with one another: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄCREAHELP ³ DYNAMENUÄÄÄÄÄÄÄÄÄÄÄBDSHELPRÄÄÄÄÄÄÄÄÄ¿ ³ ³  ³  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ CONVERTED  ³  APPLICATION HLPINTFCÄÄÄÄÄÄBROWHELP PROGRAMS  ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ IMPLEMENTING HELP FILES Program CREAHELP is the module that reads the input text files from any resource on your system. These files most often will be specially prepared for use in this system (see CREATING HELP FILES below), however, that is not a requirement. One may include any file into this system by simply entering the name of the file. Selecting a file is as simple a using the arrow keys to direct the program on where to look for your documentation. There are four help modification operations that can be called upon - three adds and one delete. The normal addition of a text file is the default 'ADD FROM DIRECTORY' selection in the opening menu of CREAHELP. The only files that may be incorporated with this selection are those that have a filename extension of .TXT. Pressing causes a menu of options to appear. Select the current drive, a sub-directory or select from any of the .TXT files in the current directory. In each case the object is to arrive at the display of the appropriate files that are to be called upon as input. If your files are on another disk, simply press from the current drive notation and a list of drives may be selected from. You may also select another directory from which to select your input. It is recommended that the input text files reside in some other directory than that of DYNAMENU. Include your files by simply pressing when the cursor highlights the proper file. You will be asked to confirm your selection. The two other add options involve the input of a file name entered by the user. The 'ADD/REPLACE ONE FILE' and 'COMPLETELY REBUILD' options differ only in the sense that the latter provides a file name of '*.TXT'. In either case, if an '*' is included in the file specification, confirmation of the addition of each file will be required - simply respond with a 'Y' or 'N'. While the pick list of files in the 'ADD FROM DIRECTORY' option only produces .TXT file names, any .EXT name may be used with these two options. It is recommended, that whenever possible, the .TXT extension be used because only the file name and not the extension is relevant to the resulting .INF file name. To say that another way; within the help system, the .EXT is not significant. This means that all input files are converted to .INF files without regard for differences in the originating .EXT name. Therefore all input text file names should be unique even if they are stored in separate directories. As a means of familiarizing yourself with this process, select 'ADD/REPLACE ONE FILE', key in C:\AUTOEXEC.BAT, press and wait for a few seconds. When the process has finished, exit to the main menu and select and press on 'CALL HELP MENU'. Then press on 'BROWSE HELP FILES', select 'AUTOEXEC.INF' and you will find your own AUTOEXEC.BAT file now incorporated into the help system (including help references in this file would have been very simple - refer to 'CREATING HELP FILES' below). Exit to the main presentation menu and re-enter the CREATE HELP program. Select 'DELETE HELP FILE', press , select 'AUTOEXEC.INF' and press . Note that after confirming the deletion of the intended file an informational message appears letting you know that there were no references to that .INF file found in reference file INFOINDE.DBF. This is normal since the AUTOEXEC.BAT file was not specially prepared for inclusion in the DYNAHELP system. Deleting a help file is just that simple. In all cases, file INFOINDE.DBF is purged of every reference to the input file prior to adding references from that file. If there are none, such as in the case of a first time add, there is no effect. Subsequent adds may be accomplished until you find that changes to your input documentation files produce the desired results. The 'DELETE HELP FILE' option is just that - all references to the .INF file specified will be deleted from the system and the .INF file will be remove from disk. Confirmation is required. No change is made to the original input .TXT file and it may be reused. MAIN HELP MENU Program BDSHELPR is one of two access methods to the DYNAHELP system. This method may be coded into any program or may be used as it is in the example on the DYNAMENU under UTILITY - see the cell labeled 'CALL HELP MENU'. The normal use of this program will be from the main presentation menu. Seven viewing options are presented in a list from which to pick. The first four mode options are: CROSS REFERENCE, MAJOR SUBJECT, PROGRAM NAME & DATABASE NAME. Use the arrow keys to select a mode and then press . This causes the help reference selection box to be displayed. Four options open to the user from this menu. - TO EXIT. - PRESS MOST ANY KEY TO POSITION/SELECT A SUBJECT. - PRESS ENTER TO VIEW THE HIGHLIGHTED SUBJECT. - PRESS TO INVOKE TOPIC MODE AND FROM WHICH TO SELECT A SUBJECT BY TOPIC. While the ESCAPE option is fairly self-explanatory, positioning the cursor to a preferred reference may not be. In addition to the normal cursor control keys the user may press any normal text key to determine if there are subjects related to that key. Press any alphabetic key to move to the first reference for that character; ie, press 'N' if you are looking for a reference called 'NETWORK'. If you continue to press 'N' the cursor will move to the next reference for the letter pressed until the last reference is located for the letter pressed. If there is no match to the key pressed, the cursor will highlight the next item in the current sequence. If 'TOPIC MODE' is on (see ALT-T below) only the items related to the displayed 'KEY TOPIC' will be keyed upon. This is true no matter where in the display you happen to be; ie, if you have moved to another topic (as determined by 'CURRENT TOPIC' in the display) you will be positioned to the first subject that begins with the key pressed and, that is related to the 'KEY TOPIC'. TIP: If there is more than one selection in succession that might be suitable, select the first one. Then, if the succeeding selections have identical characters in the first four positions, you need only press when exiting the BROWSE of the .INF file. You will automatically be able to BROWSE the next reference no matter what .INF file it is located in. Pressing (stands for Alternate Topic) while in the help reference selection box will provide a menu of topics to select from - if you press no change occurs. Pressing causes the help reference selection box to display all references in the system by topic. The auxiliary information display change to show both the 'KEY TOPIC' and the 'CURRENT TOPIC'. The 'KEY TOPIC' is the one that was selected the last time ALT-T was pressed and the 'CURRENT TOPIC' represents the topic for the highlighted subject. They should be the same initially. Pressing when in 'TOPIC MODE' turns off 'TOPIC MODE'. The subject order in effect at the time 'TOPIC MODE' was originally set will be restored. 'TOPIC MODE' is also set off when you exit to the main menu of BDSHELPR. Those references with no associated (a blank) topic will not be displayed (refer to the use of ALT-6 below in CREATING HELP FILES). The highlighted subject will be the first reference related to the selected (KEY) topic. Press when you have reached a suitable candidate for review. The next option 'BROWSE HELP FILES' presents a list of .INF files to pick from. Simply select a file and press . The cursor will always be placed at the top of the window on the first record. Note that the option as detailed above is not offered on exit from the browsed file. The next option is the 'HELP SYSTEM INFO' option. As you might have determined by now, selecting this option will allow you to BROWSE this file. You may also select this file from the 'BROWSE HELP FILES' option above or by selecting any of the associated reference displayed in the help reference selection box. The last option is offered at the advice of counsel. It may be worth reading since it details the availability of source code for the programs in the DYNAMENU SYSTEM and rights to use and distribute these programs. HELP INTERFACE Program HLPINTFC is used for making context sensitive calls on the DYNAHELP system. Any program may be converted/programmed to call on the DYNAHELP system. The recommended combination of keys is . Use of the ON KEY LABEL SHIFT-F1 DO HLPINTFC WITH ùùùùùùùù is the method of choice. The reason for this is that no matter what operation is in effect, the user may access the specified help. Using an in line call on help allows the user to access it only when program control is in the menu that presents that option. In designing the call for help, make sure to use a reference that is known to exist in a relative input .TXT file. When a call to HLPINTFC does not find the intended search token in this file, HLPINTFC immediately calls the main help menu as an alternative. Refer to program 'HLPINTFC' in file 'PROGDIR.INF' and to 'CONVERTING AND WRITING PROGRAMS' below for more information. BROWSING HELP Program BROWHELP is the module that ultimately displays the documentation on screen. It has its own help screen for understanding the navigation keys to be used to move around within the document - simply press . Try it now. The program supports the use of a direct call from any program without the use of the interface programs - HLPINTFC & BDSHELPR. This type of help call probably has limited use. However, it has its place when you want to allow a user to view a particular help file and no other. The difference is that no option is available to exit into the main help menu (see below) or to review additional references of the same key (see below). No interface is in place and hence the exit is directly back to the calling program. Refer to the program BROWHELP in PROGDIR.INF for calling parameter details. The optional use of this feature may be coded into any program or may be used as it is in the example on the DYNAMENU under UTILITY - see the cell labeled 'DIRECT HELP CALL'. Use CTRL-F1 to view the syntax for that call - that syntax combined with the appropriate implementation of the SHIFT-F1 key combination may be coded into any program. Use ON KEY LABEL SHIFT-F1 DO BROWHELP WITH or place the SHIFT-F1 test in line with other key tests depending on the given situation. EXITING BROWSE HELP CTRL-END VS. ESCAPE - always causes an exit without further action. will cause the program to determine if there are additional like references to be reviewed. This determination is made based on a similarity between the currently selected reference and the subsequent reference in file INFOINDE.DBF as displayed in the help reference selection box. If the first four characters match, the screen will automatically display the documentation for that help reference. This may continue while these conditions remain true. has no effect if the call to BROWHELP was direct (e.g., without benefit of one of the interface programs) - the menu of options will reflect this condition when appropriate. Also refer to the and below for more information about searching for like information. CTRL-F5 - is only valid from context calls (calls from within programs converted to provide help via this system). Press from DYNAMENU and then to experience this feature. Suppose that after pressing from a given program you find that you need to look elsewhere for information. By pressing you will invoke the full DYNAHELP main menu. You may then use the menu to move normally about the DYNAHELP system. PRINTING HELP FILES Press to activate a menu of printing options. The default option is 'PART OF FILE' - you may also print the 'WHOLE FILE'. Printing part of a file consists of moving the cursor to some point below the point from which the partial print option was invoked and then pressing . While this mode (SELECTIVE PRINT MODE) is in effect pressing causes printing to begin - a message to that effect is presented at the bottom of the screen. Also, all lines below the point from which the partial print option was invoked to the point of the current cursor position will be highlighted with a complimentary color combination. The original line will always remain highlighted to denote the point from which the partial print option was invoked, no matter if the cursor is above that point. To best demonstrate how this works, place the cursor in the middle of the window, press , and then press the and keys repetitively. Press to abort the printing option - the cursor remains in position in that case. If you opt to print, the cursor is subsequently repositioned to the line cursor position in use at the time (SELECTIVE PRINT MODE) was entered. MOVING WITHIN THE DOCUMENT One additional option that speeds positioning within a document (especially to lines in the middle of larger files) is . Pressing causes a vertical bar to appear on the right side of the screen. In this case, the right side of the window represents the entire expanse of the file being reviewed. Simply position the token at a point relative to a point in the file that you think is appropriate and then press . The window will then display the documentation in the approximate range of your selection. SEARCH FOR TEXT CTRL-F8 VS. CTRL-F9 - There are two options available when searching for text within a given document. CTRL-F8 causes the current search token to be displayed and be modified by the user if desired. CTRL-F9 cause a search on the contents of current search token. CTRL-F8 always begins its search at the top of the file while CTRL-F9 only searches from the top of the file the first time that the user calls it for a given document. Subsequently, CTRL-F9 begins searching at the point where it found the last occurrence of the current search token. Using CTRL-F9, will eventually cause the original browse file location to appear on the screen unless CTRL-F8 was called and the original search token was changed by the user. Any text may be searched for. Trailing spaces are ignored and embedded spaces are included. NOTE: These search functions may not be able to locate blind references that were selected for review from the Help Reference Selection Box. This is due mainly to those references having been removed from the on screen documentation - the location of a blind reference in these cases is somewhat coincidental. DYNAHELP FILES The DYNAMENU HELP SYSTEM utilizes one controlling database to determine where information is located in the system. File INFOINDE.DBF is created/modified by program CREAHELP and used by programs BDSHELPR and HLPINTFC to determine which .INF file and line number contains the required information. In the case of BDSHELPR the user makes the determination while program HLPINTFC is completely transparent to the user. The .INF files are created by program CREAHELP. It will generate an .INF file of the same name as any given input ASCII text file name but with the .INF extension. The maximum width of any line of text is 65 characters (including cross reference control characters) and the length of the file is only limited by one's fingers. See CREATING HELP FILES below. CONVERTING AND WRITING PROGRAMS The real value of the DYNAHELP help system is the ability to make context sensitive help available to programs in an environment where changes to the documentation are ongoing. Even if an application is in place with all the hooks for context sensitive calls on the system, any user could be expected to implement a new version of the documentation without any difficulty. The hooks for the new documentation are automatically regenerated each time a new version of a documentation file is implemented. This assumes the writer of the documentation has not deleted any of the existing references upon which hooked (converted) programs are relying. In the event that a context call is made from an application program and no hook to that program's requirements can be found, the main DYNAHELP menu will be invoked. The primary syntax to be incorporated into a given program follows: ON KEY LABEL SHIFT-F1 DO HLPINTFC WITH '','','' Where may be: 'MAJORCAT' (MAJOR SYSTEM REFERENCES) 'MINORCAT' (MINOR SYSTEM REFERENCES) - most common 'PROGRAMS' (SYSTEM PROGRAM REFERENCES) 'DTABASE' (SYSTEM DATABASE REFERENCES) Where may be: *** The key or search token to the help system. This text must be relative to the program needing help and must be known to be included among the references prepared for the specified . This value would normally change at various locations throughout the application program. Simply restate the ON KEY LABEL COMMAND as necessary, varying the appropriately. Where an may be: A window that could be open when the user decides to call for help from the DYNAHELP system. No error is encountered if the window is not open at the time the call for help is made. Much like the search token/reference, this value would change at various locations throughout the application program. Simply restate the ON KEY LABEL COMMAND varying the where necessary. When declaring the ON KEY LABEL COMMAND be sure to clear the typeahead buffer in advance when there is any possibility that a window will be subsequently opened. Also, the application program must anticipate the need to restore other pre-existing ON KEY requirements upon return from the help system call. Understand that in order to control the environment in which the help is being conveyed, all other ON KEY requirements must be disabled. Also, in order to restore the pre-existing ON KEY options, the application must keep the DYNAHELP system informed. If that has been done the HELP system will restate any pre-existing ON KEY requirements just before returning control to the application. The PUBLIC ARRAY ONKEYS[6,2] is used for that purpose. Suppose the application requires the following ON KEY conditions: ON KEY LABEL SHIFT-F1 DO HLPINTFC WITH; 'PROGRAMS','FILEBROW','x' ON KEY LABEL F1 DO F1BROWSE ON KEY LABEL CTRL-F7 DO SEEKREC The ON KEY LABEL SHIFT-F1 will be restored automatically and the PUBLIC ONKEYS ARRAY should be initialized as follows: ONKEYS[1,1]='F1' ONKEYS[1,2]='F1BROWSE' ONKEYS[2,1]='CTRL-F7' ONKEYS[2,2]='SEEKREC' These data will be used to reset existing ON KEY conditions. An absence of data here will cause the previously existing ON KEY requirements to be lost until the application program re-establishes them. That may or may not ever happen. CREATING HELP FILES Help files may originate as ASCII files or as dedicated word processor files suitable for printing with special control and print characters, etc. At some point in the migration to the DYNAHELP help file format (straight ASCII file, no left margin, 65 characters maximum width and with the below described control codes) these files must be converted to include at least some control codes to allow the help system to ultimately guide the user to select help based on a predetermined value or thought. The maximum width of any line of text is 65 characters (including cross reference control characters). The TAB character will be converted to eight spaces when being incorporated into the .INF file. No matter which file type you choose as your master document (ASCII or dedicated word processor), the document must include at least some help references to be of much value. In particular, if there are no references, there can be no context sensitive help call that will result in direct access to the proper text. Text file PROGDIR.TXT has been included with the system in order to provide some insight into what is involved in the process of creating the input files for DYNAHELP. Pay particular attention to the control codes ALT-1 thru ALT-6. The text file help control codes are defined as follows: MINOR CATEGORIES = CHR(1) = ALT-1 on most word procs. MAJOR CATEGORIES = CHR(2) = ALT-2 ³ ³ PROGRAM NAMES = CHR(3) = ALT-3 ³ ³ DATABASE NAMES = CHR(4) = ALT-4 ³ ³ BLIND REFERENCES = CHR(5) = ALT-5 ³ ³ TOPIC REFERENCES = CHR(6) = ALT-6 ³ ³ NORMAL REFERENCES characters (ALT-1 thru ALT-4) are used to create help references that will appear in the help reference selection box and be used by the HELP INTERFACE PROGRAM to make context sensitive calls on the system and should appear in the .TXT files as follows: CHR(5)CHR(4)CHR(3)CHR(1) and then optionally in reverse order CHR(1)CHR(3)CHR(4) This is because normal references are processed in the order: 1, 2, 3, 4 and are removed in that order at processing time. Or more typically: CHR(1)Minor referenceCHR(1) Also: CHR(1)Minor Or: CHR(2)Major ReferenceCHR(2) Or: CHR(3)Program Reference (ref. will only include 'PROGRAM') Or: CHR(4)Database Reference One or two of these might apply to a given token. However, as many as three may be useful on one token/reference. Please be sure to use the above described descending/ascending order. CHR(1) & CHR(2-4) should be used exclusively of one another because the MINOR category CHR(1) references include category references CHR(2-4). Minor Categories are the main selection when entering the DYNAHELP main menu - it is represented by the notation "BY CROSS REFERENCE' and causes all references to be displayed for possible selection. These characters are stripped from the text at .INF file creation time. If the next space to the right of the specified text is satisfactory for use as a delimiter, a second corresponding control code is not required. However, in order to bridge a space in the text for any given reference, you must use a corresponding control code to let the program know where to stop. When there are more than 20 characters in a row with no break to the right of the control code, or when the number of characters specified by two corresponding control codes exceeds 20, the remainder beyond 20 characters will be discarded from the reference. BLIND REFERENCES (ALT-5) are to be used under the following conditions: - When the text itself doesn't say what you would like to see in the help reference selection box and you do not wish to change it. - When the preferred text does not fit in the help reference selection box and you do not wish to change it. - When the preferred text generates an illogical order for use in the help reference selection box and you do not wish to change it. The use of this reference will cause this line to be blanked at .INF file creation time. In other words, it will appear as a blank line in the resulting .INF file. The use of 'BLIND REFERENCES' is a special case and the CHR(5) is only required once at the beginning of a line that you ultimately expect to appear to be blank. Follow it with any character combinations that will create the desired display token/reference when a user selects a token from the help reference selection box. TOPIC REFERENCES (ALT-6) could be considered chapters in a book. They are major subjects and are different from Major Categories in that they apply to all normal references (1-4). The object of using this type of reference is that the user may then view all other references by TOPIC only. A Topic Reference is required at least once per .TXT file to be effective; if no Topic Reference is made, none will be included in the creation of the help structure. This is not a problem. Topic References are similar to Blind References and would appear as follows: Chr(6) - 20 Characters Maximum. The Chr(6) must appear in column 1 on a blank line followed imediatately by the TOPIC REFERENCE. Subsequently, all normal references will take on the association of the most recently stated TOPIC REFERENCE. The TOPIC may be set at any point within a document and will affect all subsequent normal references until another TOPIC is encountered. Topic references should be added to any prior blank line and will be erased during the creation of the .INF file. This is similar to the Blind References and is done to prevent the reference from displaying along with the documentation. The .TXT file is not affected. To turn off topic references in a given document enter the following at the point where topic references are no longer required: CHR(6) in column 1 followed by no text. If you wish to place the CHR(6) within the text of a line, this will also work to turn off TOPIC REFERENCES. If it is not in column 1, is it assumed that it is present to turn off topic references regardless of whether one has been currently set or not. Suppose that it is desirable to prevent a particular reference in a document from being associated with any TOPIC. Simply enter CHR(6) on a blank line just before the reference in question. You must then re-establish the previous TOPIC reference on a blank line subsequent to the reference in question and prior to the next normal reference. Topics are generally created to group related subjects that may be found in separate parts of the system or parts of documents. By labeling normal references via the TOPIC REFERENCE, you will enable program BDSHELPR to display them in alphabetic order regardless of their origin. This occurs when a USER presses and selects a particular topic by pressing . Be particular about the spacing and spelling of TOPIC references. The are all converted to upper case, however, if there is any difference between one and the next it will be deemed a different topic. For example: 'HELP REFERENCES' and 'Help References' are the same. 'HELP REFERENCES' and 'HELP REFERENCE' are different. Topic references have no visible purpose until a User presses ALT-T while browsing the Help Reference Selection Box. All references are converted to upper case. One successful method of maintaining printable dedicated word processor files with both word processor and help control codes in place, is to strip the help control codes from any document when it is necessary to print it. This is a far simpler method than maintaining two sets of ever changing documentation files. To elaborate; make all changes to one master document and copy that document to a print version when it needs to be printed. The print copy of that file may then be modified to remove the DYNAHELP control codes with your word processor's search and replace option. Simply search on ALT-1 thru ALT-4 and replace with ''. Then search on ALT-5 and ALT-6 - blank out the entire line for each of those references. Keep in mind that if the master document is maintained in a DYNAHELP format; ie, no left margin and a right margin of 65 characters max., these two features may also need adjusting before printing. Delete this file when printing has been completed. CREATING FINAL INPUT TO DYNAHELP Normally a documentation file will be maintained in the form of a dedicated word processor file, complete with all control codes for the word processor and for the DYNAHELP system (see 'CREATING HELP FILE' above). That being the case, at some point it will be necessary to output that file as an ASCII file - most word processors have a print to disk option and only a few modifications will be required beyond that conversion. If the master document is in the form of an ASCII file it still may require some changes. The following rules apply to any input .TXT file: Remove all page break/header/foot note information from the resulting text file. This is optional, however it makes the file being read on screen much more presentable. Most word processors will introduce a form feed character at periodic locations throughout a text file. This occurs during the conversion from a dedicated word processor file to a text file. In order to make the documentation more presentable, form feed characters (ALT-12) will be eliminated at .INF file creation time. No manual change is required. For reasons discussed elsewhere in this document, it is suggested that the ASCII file be created with a .TXT extension. The converted file is now ready for input to the help system using the CREATE HELP program described above. CONVERTING EXISTING DOCUMENTATION Existing documentation may be incorporated by simply following the instructions under CREATING HELP FILES. They may be of any format and written by any word processor. Master documents may need to be changed with your word processor so that they have no left margin and each line has only 65 characters when output to a .TXT file. This may save a considerable amount of time when preparing the .TXT file for input to the CREAHELP program. Optionally, if your word processor is able to remove vertical blocks of text, the .TXT file could be created with a left margin and subsequently modified. If this can be made to work, it has a time savings advantage over making formatting changes to your master documents. A little experimentation is probably in order - Good luck.