Version 1.7

      - Added the ability to process alternate filebases.  The 
        new /B parameter is optional and defaults to the main
        filebase.  The main filebase can be referred to as either 
        filebase 0 or 1.  Alternate filebases begin with 2.
        
        Each filebase uses its own exclude (.XCL) file.
        In order to accomodate those with more than ten filebases,
        the root name of the exclude file had to be changed.  If 
        you have a GVERIFY.XCL file you should rename it to GVER.XCL.
        The alternate filebase exclude files will be named 
        GVERn.XCL, where 'n' is the number of the filebase.  

      - Fixed the version number.  Version 1.6 was erronenously 
        released with the version number still set to 1.5.

      - Changed the Xcode filtering so the Xcode sequences are 
        also removed from the keyword line.

Version 1.6

      - Changed the mechanism used for delay under non-DV systems.
        Those running under OS/2 or Windows should see smoother
        multitasking when using a "nice" factor greater than 0.

      - Added the capability to filter out Xcode sequences.

      - Fixed a bug in the demo version that caused the program
        to exit with an error before the first file was processed.

Version 1.5

      - Changed the way the exclude file is processed so it 
        will take significantly less time when running GAP_Verify
        on just a few directories.

      - Modified so GAP_Verify won't attempt to extract a 
        FILE_ID.DIZ for files GAP has identified as duplicate
        files.  This should make it easier to spot the duplicates
        since they'll still say "Duplicate File" even after 
        GAP_Verify has run.

      - Added the 'U' parameter.  This is a highly specialized
        option that will rarely be of use.  It will change 
        the name of any file that contains non-alphanumeric 
        characters so those non-alphanumerics become underscores.
        For instance, #1BLAKE.ZIP will become _1BLAKE.ZIP.  This
        option can be specified only on the command line.

      - Changed the time scale of the "Nice" parameter from 
        milliseconds to hundredths of a second.  The + and - keys 
        have the same effect as before on the "nice" factor.  The
        display of the "nice" delay has been changed from 
        milliseconds to seconds, with two decimal places displayed.

      - If running under DESQview, GAP_Verify will now completely
        surrender its time slice while being "nice".  This should
        improve performance for other tasks running under DV.

      - Increased the size of the stack allocated to GAP_Verify.
        Previous versions had a fairly small stack and were
        likely to overflow, causing memory corruption problems.

      - Added the 'I' parameter to allow the "Files:..." line to 
        be excluded from the enhanced description.

      - Added the 'Q' parameter to verify seQuence numbers.  This 
        will locate and remove orphaned keywords in your  
        FILEKEY.DAT. While working on some of the other  
        enhancements mentioned here I noticed that I had quite a  
        few keywords in FILEKEY.DAT that had no associated file 
        in FILES.DAT.  Somehow these keywords had become orphaned 
        from their parent file and were just hanging there taking 
        up space.  Enter the 'Q' option.  This will scan  
        FILEKEY.DAT, searching for each keyword sequence number
        in FILES.DAT.  If not found, the keyword is deleted.

        While this option is independent of the pre-load keYwords
        option, it is recommended that you use the Y option if you
        use the Q option.  Without pre-loading, a FILES.DAT search
        must be performed for each keyword in FILEKEY.DAT.  When 
        the keywords are pre-loaded, they are organized in a tree 
        structure, indexed by sequence number.  The orphan scan 
        goes through the sequence numbers in this tree.  This 
        means the orphan keyword scan needs to verify each 
        sequence number only once, not once for each keyword 
        with that sequence number.  It should cut the orphan 
        scan time by 500% or more.
        
        Of course, this assumes you have sufficient EMS/XMS to 
        pre-load without most of it overflowing onto disk.  As a 
        guideline, I have about 20,000 files which have a bit
        over 100,000 keyword records.  It takes about 3MB of 
        virtual memory to pre-load these keywords.

        Deleted orphan keywords are written to the log and to
        the history window.

      - The log file is now bracketed with start and end date/time
        marks.

      - Fixed a bug in the processing of the keyword line that was
        cutting off the last word.

      - The exclude file updates written by GAP_Verify will now
        have a subject number of -1 for all files in the upload
        subject.  Other subjects will continue to have the actual
        subject number included.  This change was made since it's
        likely you'll be moving the files out of the upload 
        directory and a -1 will match any subject.  This way, a 
        duplicate exclude file entry won't be made after the file
        is moved.

      - Improved the speed of reading the exclude file by about 
        one third.  The status window on the lower right of the 
        screen now displays the current line number of the exclude
        file rather than the names of the files being excluded.
        The window is updated every 25 files.  
        
        If you have a lot of filenames in your exclude file, you 
        may notice the update rate slowing after a while.  This 
        is because it takes longer to add the filenames to the 
        virtual memory exclude list as it gets larger.  This 
        slowdown has always been there, it's just more 
        noticeable now that the display is being updated less 
        frequently.

      - Adjusted the virtual memory buffering to improve speed a
        bit.  This will be most noticeable if you pre-load keywords
        or file data.

      - Changed the way pre-loaded keywords are stored to eliminate
        the need for specifying a maximum number of keywords.  The
        program will now automatically handle any number of keywords
        for a given file.  (Note, pre-loaded keywords should only be
        used when you intend to re-index all of the filebase or 
        doing an orphaned keyword scan [mentioned above].  
        Loading the keywords takes a good deal of time and will 
        only be beneficial when most of the keywords would have 
        to be retrieved anyway.  If you're running GAP_Verify for 
        the first time and intend to extract FILE_ID.DIZ 
        descriptions, pre-loading keywords will probably speed 
        things up, though it may not seem like it at first.)

      - Added a virtual memory status window that can be popped up
        in the upper right corner.  F10 toggles the window on and 
        off.  It is advisable to display the window only when 
        actively viewing it.  Generating all the numbers in the 
        display takes time and will slow things down if you leave
        the window up all the time.

      - Eliminated all (I think) of the program stops in error 
        situations.  The program should now log the error and 
        carry on if it's not a serious error or terminate if the 
        error is serious.  In either case you shouldn't wake up 
        to a "Press any key to continue" error box on your 
        screen.

      - Changed the parameter processing to allow the parameters that
        don't take an argument to be stacked after a single slash
        or dash.  The parameters D, E, F, H, I, K, L, M, O, R, T, W, 
        X, and Z may be stacked.  Previously, each of these parameters 
        had to be preceded by a slash or dash.  Now you can specify 
        them like:

                            /dEfHIkLMorTWXZ

        instead of:

                /d /E /f /H /I /k /L /M /o /r /T /W /X /Z

        The parameters that take an argument, A, N, P, S, V, and Y
        still must each be preceded by a slash or dash.


Version 1.4

      - Mostly internal changes.  Converted to virtual memory overlays.
        This makes the executable require about 100k less memory, 
        leaving more for data storage while the program is running.
        Added support for EMS 4.0, allowing program use of EMS without
        tying up the page frame.  Also added support for 32-bit 
        operations when running on a 386 or above.

      - Fixed a bug in the date scan function.  Seems it was always
        changing the upload date to the actual file date, even if 
        you asked it not to.

Version 1.3

      - GAP_Verify will now attempt to filter out boxes drawn around
        FILE_ID.DIZ descriptions using regular alpha characters.  It
        still filters out hi-ASCII, but some authors were cleverly 
        using asterisks or dashes.  GAP_Verify now looks at the 
        pattern of the characters, not just the character type.  Any
        sequence of three or more consecutive non-alphanumeric characters
        will be converted to spaces and squeezed out when the 
        description is wrapped.

      - GAP_Verify will now add the root of the filename as a keyword
        when re-parsing keywords.  This attempts to compensate for
        callers who can't quite grasp the difference between filename
        and keyword searches.

Version 1.2

      - Added a pause at the end of the run so the summary statistics
        can be viewed before the screen is cleared.  In interactive
        mode, GAP_Verify will delay until a key is pressed.  In
        command line mode, it will pause for 15 seconds before 
        exiting.  If, during this 15-second period, a key is pressed,
        GAP_Verify will pause until another key is pressed.

      - Added the /M parameter to override the default pause
        behavior at the end of a command line mode run.  If /M is
        specified on the command line, GAP_Verify will wait for a 
        key press at the end of the run.

      - Added a full-screen status display that shows all sorts of
        information about the current run of GAP_Verify, including
        counts of files and total bytes processed.  (The "Content
        Bytes" field won't display a meaningful value unless you 
        are extracting FILE_ID.DIZ's during the current run.)  The
        history window is essentially the information that used to
        be displayed in v1.1 and earlier, though it's been condensed 
        a bit.  Only files that have been updated are displayed here.  
        Following the name of the file are one or more letters that 
        indicate what was changed.  The letters DSLDKZ are displayed 
        in fixed positions to indicate the Date, Size, Location, 
        Description, Keywords, or DIZ was changed.  In the case of DIZ, 
        it really means a DIZ was extracted and used instead of the 
        current enhanced description.

      - Fixed a problem with the deletion of old keywords.  This
        bug shouldn't have caused any harm to your filebase, though
        you may have more keywords than necessary associated with
        some files.  If you're concerned about this, have GAP_Verify
        re-parse the keywords and the extra keywords will be cleaned
        up.

      - Special note:  It wasn't mentioned in the docs previously, 
        but it's a good idea to run GAPMAINT and pack both the 
        Files and Keywords after you've done a major update with
        GAP_Verify, particularly if you've extracted FILE_ID.DIZ
        descriptions.  Because GAP_Verify adds the contents line to
        the end of the enhanced description when extracting DIZs, 
        many of the filebase records will have to be moved to accomodate
        the longer descriptions.  This will leave a lot of "holes" in
        the filebase.  No harm there, but your filebase may take up
        a bit more disk space than it needs to.  Packing the filebase
        will take care of the "holes".


Version 1.1

      - Fixed an insufficient memory problem that occurred when a
        board had several hundred forums.  Also added an error message
        (which should have been there all along) in the extremely
        unlikely event that there should be another memory shortage
        in this area.  (You'd have to carry every echoed conference
        known to man to run into memory problems in this particular
        area, but you'll get an error message if it happens!)

      - Changed the version number to 1.1.  It was mistakenly left
        at 0.9 in the 1.0 release.

      - Changed the screen output functions to provide better speed.

      - The change to the screen output resulted in inconsistent 
        fielding of Ctrl-C and Ctrl-Break, so the keyboard is now 
        checked after each file is processed.  If any key has been 
        pressed, you'll be specifically asked if you want to terminate.
