HelpPC 2.10 Quick Reference Utility Copyright 1991 David Jurgens


 HelpPC 2.10     Quick Reference Utility      Copyright (c) 1991, David Jurgens


       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 $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.



       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.

Esc or Alt-X to exit HelpPC Readme Home/PgUp/PgDn/End ←↑↓→
Converted to HTML in 2006 by Timo Bingmann