The DOS help file format:


_GOAL_SYMBOL_ 	:= 	_TOPIC_ _TOPIC_*
		|	_INFO_ _TOPIC_ _TOPIC_*

_INFO_		:=	_DESCRIPTION_ _DEFTOPIC_
		|	_DEFTOPIC_
		|	_DESCRIPTION_	
		
_DEFTOPIC_	:=	DEFTOPIC::::"_NON_SPACE_*"

_DESCRIPTION_	:= 	DESCRIPTION::::"_TEXT_"

_TOPIC 		:= 	_HEADING_ _TEXT_

_HEADING 	:= 	_TITLE_
		|   	_TITLE_ _HEADER_FOOTER_

_TITLE		:=	::::_TOPIC_NAME_ _MAX_ROW_ _MAX_COL_ _CR_
		|	::::_TOPIC_NAME_ _MAX_ROW_ _MAX_COL_ _ROW_ _COL_ _CR_
		|	::::_TOPIC_NAME_ _MAX_ROW_ _MAX_COL_ _ROW_ _COL_ _LINE_ _CR_

_TOPIC_NAME_	:=	"_BUTTON_NAME_"
	   	|	_NON_SPACE_*

_MAX_COL_	:=	_DEC_CONST_

_MAX_ROW_	:=	_DEC_CONST_

_COL_		:=	_DEC_CONST_

_ROW_		:=	_DEC_CONST_

_LINE_		:=	_DEC_CONST_


_HEADER_FOOTER_	:=	_HEADER_
		|	_FOOTER_
		|	_HEADER_ _FOOTER_

_HEADER_	:=	:h _CR_ _BUTTONS_ _CR_:eh _CR_

_TRAILER_	:=	:t _CR_ _BUTTONS_ _CR_:et _CR_

_BUTTONS_	:=	_BUTTON_ _BUTTON_*

_BUTTON_	:=	<_BUTTON_NAME_>

_CR_		:=	\n


// these META SYMBOLS not described in strictly BNF for clearity sake

_TEXT_		:=	(see the NOTES section for a description)

_DEC_CONST_	:=	(a 3 digit decimal constant )

_BUTTON_NAME_	:=	(any sequence of 1 or more printable ASCII character)

_NON_SPACE_	:=	(any sequence of 1 or more printable non-space ASCII character)

NOTES

1) all _TOPIC_NAME_ tokens must be unique

2) the ::::, :h, :eh, :t, :et delimiters must begin in column 0

3) The Maximum allowable length for any line in a help file 399 characters.

4) The characters < > { } and " are special characters. If one of these
   characters is to be displayed on the screen it must be prefixed by
   an ASCII 0x1B character.  For historical reasons in help text only
   (not in button or topic names) < > { and } characters may be displayed
   by entering the desired character twice in a row. Ex enter >> to produce
   a >.

5) For each hot point defined using the <> characters the text enclosed
   in the brackets must match a _TOPIC_NAME_ defined elsewhere in the file.

6) _TEXT_ is the help text.  It is displayed by the help facility
	in the same form as it appears in the help file.  That is to
	say, no line breaking etc. occurs.  _TEXT_ may be any sequence
	of printable ASCII characters.

The help text may contain the following special sequences:

(NOTE:  is the ASCII character 0x1B )
(NOTE:  is the ASCII character 0xE0 )
(NOTE:  is the ASCII character 0xE8 )

uText enclosed in these delimiters is hilitedw
bText enclosed in these delimiters is hilitedp

At present the uw and the bp produce the same results but this may
change.  Consider uw to denote underlining and bp to denote bolding.

If the text contains a construct of the form:

<some_text> then the text is considered to be a hyperlink and will appear 
	    hilited and enclosed in angle brackets.  When the hyperlink
	    is chosen it takes the user to the topic specified by
	    some_text.

some_text then the text is considered to be a hyperlink as above except
	    the text will not be enclosed in angle brackets
	    
In either of the above cases some_text may be followed by and ASCII 0xE8
character followed by an topic name.  In this case the hyperlink takes the
user to the specified topic.

ex

	If the help file contains <bobfoo>
	then the hyperlink will be displayed as <bob>
	and when it is selected the user will be take to the topic foo.
	
If a topic name is specified then it may be followed by an ASCII 0xE8
character followed by the name of the helpfile in which to search for
that topic.  The helpfile name should include the extension but not a 
full path.  The helpfile should only be specified if it is different from 
the current file.

ex	If the helpfile contains <bobfootest.ihp>
	then the hyperlink will be displayed as <bob>
	and when it is selected the user will be taken to the topic foo
	in the helpfile test.ihp.
	
7) Bold and Underline attributes may not be specified inside a hyperlink
   definition.
   
8) The help text may not contain ASCII 0x1B 0xE0 and 0xE8 characters
   except when used as special characters as described above.
   
