HelpPC 2.10 Help Documentation


	Audience

	This program and accompanying databases are designed for the
	intermediate to advanced programmer that knows what he's doing,
	but just can't remember specific information necessary to program
	advanced features of the PC or PS/2.  The default distribution is
	comprised of a collection of information found in manufacturer
	technical reference manuals, various commercial books, technical
	topics discussed on CompuServe's technical forums, public domain
	articles and my own snooping, all organized in a single database.
	The help topics include BIOS interrupts, DOS interrupts, DOS 
	functions, EMS and Mouse functions, BIOS and DOS data structures,
	diagnostic codes, DOS commands, 80x86 assembler instructions,
	Standard and vendor specific C functions and various hardware
	specifications.  The program can also be used as a quick reference
	utility for any	collection of text.



	Installation

	This utility requires the following:

	    DOS 2.0 or greater
	    64K of free RAM
	    a hard disk system is recommended
   
	Installation involves two steps.  First, simply dearchive the
	HelpPC.EXE file (may be HelpPC.ZIP or HelpPC.ARC).  Second,
	issue the following command: 

	SET HLP=d:dirname	(no blanks, except between "SET HLP")

	Where 'd:' is the drive and 'dirname' is the directory where the
	help .TXT files exist (this should be fully qualified, with or
	without the trailing '\').  The HelpPC.COM and HelpTsr.COM files
	can exist anywhere they can be accessed through the DOS command
	search path (PATH).  The "SET HLP=" command should be placed in
	the AUTOEXEC.BAT file to allow access to HelpPC each time your
	machine is restarted.

	As an example, if the files HelpPC.NDX and the .TXT files reside
	in a directory named  C:\HELPPC  then use:

	         SET HLP=C:\HELPPC  
	              or
	         SET HLP=C:\HELPPC\


	The name HelpPC was chosen to avoid conflict with the HELP command
	available with some OEM versions of DOS.  I'd recommend that you
	rename HelpPC.COM to a name you find convenient and easy to remember
	such as "H.COM", "HELP.COM" or "INFO.COM".

	The HelpPC utilities work with various TSR's resident, but as with
	all TSR's there's always the possibility of conflict.  If you find
	a problem please pass along as much information as you can to me via
	the address listed below.



	Background

	As programmers, we tend to gather massive amounts of books,
	journals and magazines.  Each of these items have some important
	detail that is generally out of our reach since we can't carry
	them with us everywhere we go.  That's why I started this project,
	to free myself from having to first find the manuals or articles
	and then weed through all the mundane text to get to an answer.
	In the past few years HelpPC has saved me a lot of time previously
	spent rummaging through manuals.
	
	HelpPC initially began somewhere around 1985 when I decided that
	I spent way too much time searching for the same information over
	and over again.  At that time my primary references were David
	Powell's BIOS & DOS quick reference cards and Peter Norton's
	"Programmers Guide to the IBM PC".  I generated an indexed help
	file from David Powell's original work and slowly added information
	to each topic.  The result of several years work is no longer a
	duplicate of David's fine work but a complete database of PC
	technical topics.  Each time I had to look up a new PC related
	topic, I made a note that it should be added to the database.  As
	time passed the database grew more and more complete and I found
	little need to look to other sources for information.  I then began
	adding information people were requesting in messages on CompuServe's
	IBMPRO, BPROGB, MSSYS (now MSLANG and MSOPSYS), CLMFORUM and IBMCOM
	forums.  The database is forever growing with each new feature and
	specification made available.
	
	All information included within HelpPC has been confirmed against
	available sources.  The comparison of information usually progressed
	along the same paths.  Initially Norton's "Programmers Guide to the
	IBMPC" and Duncan's "Advanced MS-DOS" were the two sources I turned
	to for verification.  Later I began using Dettemann and Kyle's "DOS
	Programmers Reference", Thom Hogan's "The Programmers PC Sourcebook",
	and the "MS-DOS Encyclopedia".   When something wasn't covered well
	in any of these references or there was a discrepancy, I turned to
	the "IBM PC/XT Technical Reference Manual" , the "IBM PC/AT Technical
	Reference Manual" and the "DOS Technical Reference Manual".   All
	hardware specific information is verified with the respective vendor's
	technical specification manuals.

	Credit is given to the sources if any of their data is included
	in HelpPC (see topic Bibliography for a listing).  One note I
	should make clear is that the information on many of the topics
	appears as if it were straight out of Norton, Duncan, Dettemann
	or from Ralf Brown's interrupt list.  These and many other sources
	were referenced but none of the material is plagiarized and any
	similarity is due to the nature of the material.  If you compare
	any of the aforementioned references, they all contain approximately
	the same data in very similar formats.

	The main program is a quick reference utility that allows quick
	viewing of the help database from the DOS command line.  The program,
	which is approximately 10K in size, is written in C with a little
	assembler sprinkled in for speed/size optimization.  A 43 and 50
	line mode is supported for those that like to squint.  A TSR version
	is also included with this release which has several enhancements
	over the command line utility.  These include dual monitor support
	and context sensitive help (see below for more information).



	HelpPC Command Line Usage

	The command line version of HelpPC has three modes of operation.
	At first the most useful will be the menu driven interface that
	allows you to point and shoot at your topic.  Entering HelpPC
	without a command line puts you in menu mode.  The second mode is
	the command line mode which allows you to specify the text to
	search for on the command line.  The third mode is available from
	either of the two other modes and prompts you for information.
	Prompted mode becomes the default after using the command line
	mode.  To switch between prompted mode and menu mode, use the
	F1 key.   Here's a list of the navigational keys:


	Esc     Exit current screen or HelpPC
	End     Moves text or menu to the last line/item
	Home    Moves text or menu to the first line/item
	PgUp    Moves text or menu to page top or previous page
	PgDn    Moves text or menu to page bottom or next page
	F1      Switches from menu to prompting mode and vice versa
	Alt-P   Write current topic to printer.  HelpPC has builtin error
	        detection for normal printers but if LPT1 is redirected to
		a serial printer the system may hang until the printer is
		ready.  This is an undesirable though common behavior with
		DOS and serial printers.
	Alt-W   Write text to file HelpPC.DAT in the current directory
	Alt-X   Exit HelpPC and without clearing current screen
	Tab	Move to next subtopic link (Right Arrow also)
	BackTab	Move to previous subtopic link (Left Arrow also)
	Enter	Jump to highlighted subtopic link



	HelpTSR Usage

	HelpTSR is a popup utility similar to the HelpPC utility.  The
	following is a list of additional features found in HelpTSR:

	1.  Supports context sensitive help within editors such as Brief,
	    Epsilon, Fastwrite, Microsoft Editor, Norton Editor, PC-Write,
	    PWB, Qedit, dBASE and many other editors.  This means you can
	    position your cursor on a text item and HelpPC will popup with
	    information on the topic if it's available.  This is very useful
	    when editing source code and you need to know how to use a
	    function or command.  An example would be while editing an
	    assembler file, you need to know what flags are affected by an
	    "ADC" instruction.  You just position your cursor on the "ADC"
	    instruction and press the hot keys.  Help information for the
	    "ADC" instruction is displayed.  Epsilon and the Norton Editor
	    may require	special setup for the HelpTSR to popup (see notes
	    below).  This feature can be disabled via the /M option.
	2.  Supports single or dual monitor systems (1 Color and 1 Mono).
	    On dual monitor systems you can get popup help on the alternate
	    monitor without disturbing your current screen.  Dual monitor
	    support frees 4k of memory since the video screen isn't saved.
	3.  Supports alternate popup key sequences to avoid conflict with
	    other TSR's and buggy keyboard BIOS's.
	4.  Has a similar interface to the command line version but with
	    options to customize the behavior during popup.
	5.  Supports TSR removal to free RAM.
	6.  Supports command line options to control the behavior when the
	    TSR pops up.  An example would be whether to popup in menu or
	    prompted mode or to disable context sensitive help.
	7.  Network compatible so several people can view the databases at
	    one time.
	8.  Requires only 32K (28K if dual screen support is used).  The
	    size of the resident memory varies depending on the size of the
	    index.  The default distribution, requires 37K to maintain 1350
	    topics on a single monitor system.  This can also be trimmed
	    down by removing unneeded topics from the default help files.  
	9.  Capable of being loaded high to conserve low DOS memory using
	    one of the 386 memory managers or DOS 5.0's LOADHIGH command.
	10. The alternate monitor is blanked after 10 minutes to preserve
	    the screen.  This feature can be disabled via the /B option.
	11. Integrity checking to safeguard against unruly code often
	    found in development environments.  Before popping-up HelpTSR
	    checksums its internals and refuses to popup if corrupted by
	    another program or stray pointer.  If another program stomps
	    on memory owned by HelpTSR, it may have also destroyed other
	    vital areas within the system which could lead to severe
	    problems.  It is recommended that you reboot the system
	    should this occur.  This is a safety measure added to HelpTSR
	    to improve confidence in these environments.  HelpTSR sounds a
	    long tone when this condition is detected.
		

	If the data files are changed or reindexed after HelpTSR is resident,
	HelpTSR must be unloaded from memory (/U option) and then reloaded.
	This is because HelpTSR maintains checksum information on the help
	index when it is loaded.  If the data or index files change these
       checksums will no longer be valid.

	Here's how to use HelpTSR from the command line:

	HelpTSR [options]

	Where "options" is zero or more of the following:

	/?   list this help information.  If other options are supplied
	     also, they are ignored.

	/B   disable alternate monitor blanking.  When dual monitor support
	     is chosen, the alternate monitor is blanked if the help screen
	     is stagnant for over 10 minutes.  Although this option is
	     available, it's usually a good idea to allow the alternate
	     monitor blanking to avoid monitor burn in.
 
	/D   dual monitor support.  If two monitors are available, the
	     alternate monitor can be used to display the help text.
	     This avoids disruption of the active display.  The screen
	     is blanked after 10 minutes if the HelpPC screen is stagnant.
	     This will not blank a screen under the control of another
	     program such as a debugger.

	/M   menu mode as default.  This option forces HelpTSR to display
	     the main menu and ignore any context sensitive help.  Prompted
	     mode is available if requested via the F1 key.

	/P   prompted mode as default.  This option forces HelpTSR to come
	     up in prompted mode if no current word context is supplied.
	     Normally HelpTSR will popup in menu mode in this situation.
	     Menu mode is available if requested via the F1 key.

	/U   unload HelpPC and free memory.  This option overrides all
	     other options except /?.  All other options are ignored as
	     HelpTSR will attempt to remove itself.  If another resident
	     program has hooked HelpTSR's interrupt vectors, HelpTSR will
	     not unload and displays a message indicating this condition.

	/1   use Ctrl-Shift-H to popup instead of Alt-Left-Shift-H.  Some
	     Tandy 1000's have an Alt Key BIOS bug which requires changing
	     the popup hotkey.

	/2   use Ctrl-Kp5 to popup instead of Alt-Left-Shift-H

	/3   use Ctrl-Shift-Kp5 to popup instead of Alt-Left-Shift-H

	/4   use Alt-Shift-F1 to popup instead of Alt-Left-Shift-H
	
	

	Other Utilities

	Also included are two command files INDEXHLP.COM and BUILD.BAT.
	INDEXHLP.COM is the file index utility.  Usage is very simple;
	you just include the files you plan to index on the command line.
	Issuing the INDEXHLP command gives instructions on usage.  BUILD.BAT
	is a batch file provided to simplify use of INDEXHLP.  It preset to
	index the default databases in the distribution and allows you to
	specify	your own additional databases.  BUILD without parameters
	indexes	only the default databases.  If any file names are supplied,
	they are also indexed.  Here's an example:

	BUILD
			is equivalent to

	INDEXHLP asm c dos hardware interrupt tables misc

	Both of these command lines will index the default databases.  To
	add additional databases just append the filename (extension isn't
	necessary if .TXT is used) to the list.  Here's an example:

	BUILD custom

			is equivalent to

	INDEXHLP asm c dos hardware interrupt tables misc custom



	Creating your own Help Files

	HelpPC in its standard form can handle 1800 indexed topics and 16
	independent help files.  If you find you need a larger capacity,
	please contact me at one of the addresses below.  Each file must
	have its own title which will show up in the main menu.  Each topic
	following the file title (see below) will show up in the subtopic
	menu.  Note that HelpPC will adjust the menu format based on the
	screen height and the number of items in the main menu.

	HelpPC text files are simple ASCII files that contain control codes
	in column one.   Each file must contain a menu title in the first
	line.  The remainder of the file consists of keyed lines and help
	text.  Each line must end with a CR/LF pair (standard DOS format) and
	shouldn't be longer than 79 characters.   Tabs position the text at
	8 character tab positions.  The following is a list of keys and
	special characters (keys are found in column 1, special characters
	appear in columns 1-80):

	 '@'  in column 1 indicates a file title which will appear in
	      the main topic menu.  This must be the very first line
	      in the file and has a maximum length of 40 characters
	      (excluding the '@').
	 ':'  in column 1 indicates a subtopic key.  Multiple keys separated
	      by colons ':' can be entered on the same line.  Single spaces
	      are allowed in a key, multiple spaces are compressed to single.
	 '%'  in column 1 indicates a highlighted title line.
	 '^'  in column 1 indicates a centered highlighted title.
	 ' '  (space) in column 1 indicates normal text.
	 '~'  Tilde is used to mark text as a subtopic link.  Use two
	      tilde characters to represent an actual tilde in the data.
	      A word or phrase enclosed between tilde's will become a
	      subtopic link for the current topic.
	 TAB  in column 1 starts text in column 9
	 any other character in column 1 is truncated

	Use the BUILD command to index/reindex the default help text files.
	To add your own files to the index use the command:

	     BUILD [fname [file2 ...]]

	This information is available in HelpPC with the topic
	"HELPPC FORMAT".



	Limits of the HelpPC program

	Max items in main topic menu:          16
	Max items in subtopic menu:           512
	Max topics in index:                 1800
	Max size of topic text:             16384 bytes
	Max lines of text per topic:          512 lines
	Max topic key length:                  20 bytes
	Max file title length:                 40 bytes
	No limit on file size



	Special Editor Considerations

	With Epsilon, you must setup a TSR popup key.  This is done by
	issuing the "program-keys" command and choosing one of the hotkey
	options [1..4].  Option 4 is the default popup key sequence for
	HelpTSR.  Quit from the menu using 'Q' and then issue the
	"write-state" command to make the configuration permanent.

	The Norton Editor may need configured on a few video systems,
	though there is no rule to determine which.  If you try to popup
	HelpTSR while in the Norton Editor and the context sensitive help
	does not work, then the editor is not using a real cursor (may be
	using reverse video).  To configure the Norton Editor in this
	situation, do the following:

	  F5          Format Menu
	  C           Select cursor type (change to a blinking cursor)
	  F3          File Menu
	  S           Save Modified Editor configuration (it will prompt
	              you for the filename)



	Miscellaneous Notes

	If the HelpPC program is used in a batch file, the parameters to it
	must not be variable parameters (%0..%9), because DOS strips out
	commas when it parses batch file parameters.  Commas are valid in
	topics and if removed by the command parser will change the command
	line presented to HelpPC.  This usually results in the "Topic not
	found in index" message.

	HelpTSR works in MS Windows DOS sessions.  If HelpTSR is loaded before
	MS Windows, HelpTSR is available in any following DOS windows.  If
	HelpTSR	is loaded from with a DOS window, it is active until the
	window is destroyed.  HelpTSR will not popup over a graphics screen.
	


	43/50 Line users

	Some versions of DOS and ANSI.SYS replacements do not handle 43/50
	line mode correctly.  If the bottom half of the display does not
	scroll correctly in 43/50 line mode, either upgrade to a newer DOS
	or set 43/50 line mode through a program like NANSI.SYS.  This is a
	problem in some DOS versions and not HelpPC.



	Files included with HelpPC

	BUILD.BAT     -  A batch file that uses INDEXHLP to rebuild the
			 help index.  This is the simplest way to index
			 the databases.
	HELPPC.COM    -  A display utility that reads the index and databases
	                 and displays the information.  I recommend that you
	                 rename this program to something you find convenient
	                 to use like "H.COM", "HELP.COM" or "INFO.COM".  I
			 prefer "HELP.COM", which conflicts with the DOS HELP
			 command that is supplied with some OEM versions of
			 MS DOS.
	HELPPC.DOC    -  The file you're reading now.
	HELPPC.NDX    -  The data index.  Contains index information on data
			 in each of the .TXT files.  HelpPC finds this file
			 through the environment variable "HLP".
	HELPTSR.COM   -  Context sensitive help TSR.  The program interface
			 is similar to the command line utility HELPPC.COM
			 but has advance features.
	INDEXHLP.COM  -  The help file index utility.  Type INDEXHLP for
			 information on usage.
	README        -  A brief description of how to get started.
	REGISTER.FRM  -  A registration form.  This is also included with the
			 registered versions should one choose to redistribute
			 HelpPC. 


	Data Files:

	ASM.TXT       -  Assembler programming topics.
	C.TXT         -  ANSI, Microsoft and Turbo C functions and C 
			 programming topics.   This may be split into
			 C.TXT, MSC.TXT and TC.TXT in future releases of
			 HelpPC.
	DOS.TXT       -  DOS commands database.
	HARDWARE.TXT  -  Hardware relative programming topics.
	INTERRUP.TXT  -  Documented and undocumented interrupt topics.
	MISC.TXT      -  Miscellaneous topics that have no logical grouping.
	TABLES.TXT    -  Tables, structures and formats of BIOS, DOS and other
	                 programming related tabular information.



	Version News

	2.10 Added subtopic linking, tab support, 486 instructions and timings.
	2.0  Major revision of the user interface including menus.  This is
	     the first shareware release.  Help index utility is included
	     and TSR becomes available with registration.  Some versions
	     went out with David Powell referenced as David Wilson.  This
	     was an error and I apologize to David Powell for this accident.
	1.5  A minor bug in the 43/50 line mode of version 1.4 has been
	     fixed.  Over 900 topics are now included.
	1.2  EMS and Mouse functions were added to the database.  Over 750
	     topics were included.  (limited distribution)
	1.1  Maintenance release of the database.  Several topics were added
	     and existing ones were cleaned up.
	1.0  Original release.



	Registration

	This software is shareware.  If you find this program or accompanying
	data of some value and continue to use either after a 30 day trial
	period registration is required.  Registration costs  in the
	United States ( otherwise) and provides you with the latest
	version of the program and the databases.  It also places you on the
	update mailing list.   Registration provides the resources to continue
	work on HelpPC.  A registration form is included in the	file
	REGISTER.FRM.  This file is enclosed with the registered version also
	to make it easier to distribute HelpPC to friends and colleagues.
	Here's the pricing schedule for HelpPC.

             Number of copies           Price per copy

                   1                  per diskette
                  2-5                 per diskette
                   6+                 per diskette
                                      per upgrade (any version)

	Add  for addresses outside the U.S.



	Thanks to the following:

	David Powell of IBM for his BIOS/DOS reference cards which gave me
	the idea that started all of this.  Jeff Miller of CompuServe for
	supporting the project and providing helpful feedback.  Mark Grim,
	Bernd Schemmer and Robert Rosenbach for entering/passing along data
	for HelpPC.  Phil George and Ted Stephens for supporting and testing
	throughout the project cycle.  Dave Drown, Jerry Gibson, Kevin Hughes,
	Charles Lazo III, Jim Milligan, David Powell (of CCS) and Ali Vardag
	for testing and/or providing feedback.  Ray Duncan, Chris Dunford,
	Richard K. Herzog, Jim Kyle, Micheal Mohle, Chip Rabinowitz, Mike
	Rubenstein and Barry Simon for sharing their vast knowledge with the
	rest of us on CompuServe.  Ralf Brown for maintaining "the" interrupt
	lists.  Brett Salter and The Periscope Company for the great support
	and the awesome Periscope debugger which was the main bug buster used
	in writing HelpPC.



	In Closing

	Use it, try to break it or just tell me what you did or didn't
	like about it or what you'd like to see added.  If you find any
	discrepancies, errors or typos, I would appreciate corrections
	and any suggestions for improvement.  If at all possible,
	please contact me using one of the below addresses and I will
	try to correct the problem immediately.   Additions to the help
	files are welcome and can be submitted to me via any of the
	following addresses.  If the information you provide is used in
	HelpPC,	you will be given credit for the work.

	Please share this program with your friends; but please, if you
	do redistribute this software, distribute it in its original
	.ARC, .ZIP or LHARC form, without modification.  If you think
	it's a worthwhile program, please register.  Your registrations
	will allow continued development on HelpPC.


	I can be reached at any of the following addresses:


	US Snail:       David Jurgens
	                1550 Alton Darby Creek Road
	                Columbus, Ohio  43228

	CompuServe:     70004,30     (read daily)
	                71270,2422   (read weekly)




	Disclaimer

	The program contained herein, in its original form, is designed
	to work with PC's which are completely IBM DOS and IBM BIOS
	compatible and has been tested on a myriad of PC's and compatibles.
	The information contained within the help databases is correct to
	the best of my knowledge and ability.  Since it was compiled from
	various sources, some in complete disagreement and some continually
	changing specifications, I cannot be responsible for omissions, 
	inaccuracies or plain errors of any type.

	I make no claims to value of the enclosed programs or files,
	or their behavior and assume no liability for damages either
	from the direct use of this product or as a consequence of the
	use/misuse of this product.  Hence this program and all
	information contained within SHOULD BE USED AT ONE'S OWN RISK.

	This disclaimer is included to absolve me from legal issues
	brought about by today's litigious society.