HelpPC 2.10 Quick Reference Utility Copyright (c) 1991, David Jurgens
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.
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:
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.
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 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
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:
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
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:
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:
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
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)
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
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
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
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
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.
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.
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 $25 in the
United States ($30 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 $25 per diskette
2-5 $20 per diskette
6+ $15 per diskette
$5 per upgrade (any version)
Add $5 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.
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)
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.