Supplement to README.TXT

New to version 1.1093 (not in the manual) (not in demo)

- Support for "SECTION FILE" for free format link scripts has been added.

New to version 1.1092 (not in the manual)

- The context-sensitive help was not loaded the first time the configuration
  screen automagically comes up, giving TW a very bad first impression.  The
  help file is now the first file loaded.

- TW now performs all operations from its execution path, restoring the 
  default directory upon exit.  Doing the operations this way seems to make
  more sense to me, and prevents TW from creating multiple copies of the
  data files all over the place.  No reason to have multiple directories for
  the analysis data files occurs to me anyway.  Note that custom XL8 files
  will consequently have to be fully specified if they are stored somewhere
  other than the TW directory.  (But there's no advantage to doing this, and
  some management disadvantages.)

- Miscellaneous minor bug fixes.

- This version is compiled and linked with SuperClass II and dBxStore 1.6,
  for more reliable and faster performance.

New to version 1.109 (not in the manual)

- Fixed some AEval() errors that should not have been occuring.

- Added help text everywhere it was not found before (unless I missed some!).
  All menu options and fields should now have help text attached to them.

New to version 1.108 (not in the manual)

- Fixed the bug introduced when Computer Associates no longer allowed for
  assignment of TBColumn instance variables to NIL.  Nice way to break
  existing code!

New to version 1.107 (not in the manual)

- Shadows in super-extended video modes (like UltraVisions' 94x36 mode, I 
  think) were not working correctly.  This has been fixed.

- When attempting to edit a routine, I was stupidly attempting to open it
  as read/write exclusive instead of read/shared to read the line of text to
  find.  This has been fixed, so files that are marked as read only can be
  correctly read and viewed in your editor.

New to version 1.106 (not in the manual)

- Comments like:

  /*
  FUNCTION : blah

  */

  or

  /*
  PROCEDURE : blah2

  */

  Were confusing TechWriter.  It is now a little bit smarter.

  By the way, I will be totally rewriting the parsing engine for the next
  version of TechWriter. This will delay new features a while, but it will
  be well worth it.  Trust me. <grin>

- QEMM's Stealth mode is not supported by TW when you shell to DOS (for 
  various essential operations).  This is NOT a bug in TechWriter, and is 
  not something I can fix, other than to tell you about it.  If you are
  running into system lockup problems when TW is attempting to shell to DOS,
  you should use:

  STACKS=8,246

  in your CONFIG.SYS file and disable QEMM's stealth mode.  You may find that
  other Clipper applications are running faster w/o stealth.  TW probably 
  will, too.

  You may be able to get around the problem by using:

  SET BLINKER=<switch>

  where

  <switch> can be:
        /CE0 - disable use of EMS for overlay cache
        /CX0 - disable use of XMS for overlay cache
        /OU0 - disable use of XMS UMB's for overlay pool
        /OP0 - disable use of EMS pageframe for overlay pool

- I am in the process of updating the documentation to a totally on-line
  version of a manual.  My time is spent either on docs or bug fixes and
  enhancements.  So far, people have been more interested in bug fixes and
  enhancements than docs.  I am trying to get the new manual done ASAP.

- On larger systems or larger routines, TechWriter is capable of producing
  long text descriptions or call trees that are larger than Expert Help
  can handle.  If the problem is with a call tree, remove some of your 
  library references from the link script and do NOT use "All Modules" for the
  lookup type for the system.  The output styles that include source code are
  obviously larger than those that do not.

New to version 1.105 (not in the manual)

- Index keys could be missing from the documentation due to an error in the
  rewrite of the word-wrapping routine.  Now the index key wrapping has 
  actually been improved to wrap only on " ,+()" characters.

New to version 1.104 (not in the manual)

- The PROFILE.DBF work area was being reused by the context-sensitive help
  database (NOTES.DBF).  This has been fixed.

- For comment re-processing with the PRGDOC styles, please note that no 
  preprocesser directives should appear between the routine's declaration
  and the comment header.

  Example:

    NOT:

    // This is my comment header
    #include "mystd.ch"
    FUNCTION SuperDooper()

    BUT:

    #include "mystd.ch"
    // This is my comment header
    FUNCTION SuperDooper()

New to version 1.103 (not in the manual)

- The character stripping function used with the #strip directive is now
  faster and more reliable.  StrTran() is no longer used, and the time taken
  to strip out multiple characters is greatly reduced.  Notice that two
  ascii graphic characters have been added to the commented out #strip
  directive in NORTON.XL8 (missed them the first time around!).

- Categories and sections were not being recognized if the comment had to
  have its characters stripped before it would be recognized correctly.

- The WordPerfect screen capture source code now includes access to the
  context-sensitive help system included with TechWriter to demonstrate how
  the majority of your user documentation can be generated directly from the
  application itself.  Table of contents and index marks are also in the 
  screen capture file.  Unfortunately, there's no easy way to put the index
  definition at the end of the file (since it's inconvenient to have to 
  manually close the file when Clipper will do it automatically), so you'll
  have to insert the index definition manually.  The TOC definition is
  inserted automatically.

- The text file screen capture source code now provides a dialog for the
  name of the screen capture file.  Output redirection is no longer
  supported, but existing files can be appended to if they exist.

- Screen mock-ups can also be generated (complete with context-sensitive help)
  to .TXT files that can be used as input for Norton Guide versions of the
  documentation.

New to version 1.102 (not in the manual)

- Screen capture can now be either a text file (with DOS redirection) or
  a WordPerfect file.  Name of the WordPerfect file is entered when capture
  is first invoked.  Set GET*.PRG in the EXAMPLES directory.

New to version 1.101 (not in the manual)

- The Stuff() replacement function skipped the first character after the
  inserted text, wreaking all kinds of havoc in WordPerfect.  This has now
  been fixed.

New to version 1.10 (not in the manual)

- A "lock required" message would sometimes occur when dumping library 
  symbols.  This has been fixed.

- An argument error message in NGClassDoc with > would be generated from a
  class that did not contain its own instance variables.  This has been
  fixed.

New to version 1.099 (not in the manual)

- A line of source code could potentially be skipped when generating a new
  source code file with comments.

- NewSyntax() has been added:

  NewSyntax( cOldSyntax, cNewSyntax ) -> lNew

  Returns .T. if the syntax has changed, .F. if it has not.  This is used
  in PRGDOC.XL8 and PRGBOX.XL8 for generating comments and keeping track
  of revisions automatically.

- The "View Tree" option could do strange things when the active system
  was not an application.  You are now told to select a system that is
  an application.  The same is true for the "Call Tree" option that generates
  the call tree.

- If the "Profile" option is selected directly rather than as part of a 
  document, the system is rescanned before performing the profile.

New to version 1.098 (not in the manual)

Barring bug reports this is the version that will be 1.1, except for some
possible trivia.

- The calls from and calls to list on the module form screen can now be
  used to go DIRECTLY to another module by pressing Enter.

- You can edit the currently displayed module on the form by pressing
  Alt-E, if you have an external editor defined.

- The explicit "See Also" references were not being included in the cross
  reference information for Expert Help/Norton Guides.  This has been
  fixed.

- Source code comments embedded using /* and */ were not always processed
  correctly.

- The change for the default module type for a class to "Class" has been
  put back to "<FileName> Class".  For example, if no category is defined
  for a class defined in SRCMOD.PRG, the ModuleType() is "SRCMOD Class".

  This required a change to the WordPerfect output for style marks, because
  the style is called "Class", not "<filename> Class".  The function to
  strip the <Filename> back out of the module type for WordPerfect output
  is WPModType().

- Blinker 2.0's memory swapping functions are now being used instead of
  Overlay()'s.  This resulted in the keyboard stuffing options being removed
  from the configuration screen.  (No one has reported using keyboard
  stuffing successfully with editors that would require it, anyway.)

  This has also taken care of the problem with Expert Help switching the
  display to 25 line mode and TechWriter not being able to set it back to
  50 (if that's what you were in), because Blinker can save the video MODE
  also.

- TechWriter will not allow itself to be run when you are already shelled
  out from it.

New to version 1.097 (not in the manual)

- Two new styles have been added to NORTON.XL8 to allow you to go DIRECTLY
  from completely undocumented source code to an Expert Help/Norton Guide
  file.  The information produced by TechWriter includes the syntax,
  argument list with default values, and the revision date and time of
  the file.  These styles are:
  
  #style Undoc Calls (No comments in source)

  which produces the "Calls" lists, and

  #style Undoc Tree (No comments in source)

  which produces the call tree.

- The credits window is now correctly sized for the credits information 
  limits of Expert Help and Norton Guides: 65 characters per line, 5 lines.

- Some new text files have added to the samples directory.  They contain
  some useful tables that may be included for Norton Guide files.  If you 
  wish to use them in a generated EH file, include them in a file mask for
  that system.

  ATTRIBS.TXT - Color and File attribute tables
  CHARS.TXT   - ASCII chart, Line Draw Chart, Special Characters
  ERRORS.TXT  - DOS, Printer, EMS & BIOS errors
  KEYS.TXT    - InKey() Values, Scan Codes

- Source code comments can now be generated by TechWriter.  See COMMENT.XL8
  for a description.

- A new output style called PRGDOC is available for generating source code
  comments.  See PRGDOC.XL8 for examples.

- New XL8 directives:

  #title directive has been added so a more informative prompt is provided
  for the available translation files. Example:

  #title Source Code Comment Output

  You can provide a list of characters to remove from your comment text 
  before topics are extracted from your comment.  Example:

  #strip "ĺڿɻȼոԾַӽŴιص׶"

  will remove the listed characters from the comment before it is processed.
  None of the default XL8 files contain this directive, so no characters are
  stripped.  (This list should be ALL of the line draw characters that may
  be contained in your comments).
  
  The list of characters to be stripped must be a valid expression, so:

  #strip ĺڿɻȼոԾַӽŴιص׶

  Would cause a run-time error.

  The following three comment-specific directives are only recognized for 
  the PRGDOC output style.

  #footing directive is provided for the footer for commenting source code.
  This can be either a code block or an xBase expression that evaluates to
  a string. Example:

  #footing {||Repl( Repl("/", Len(Trim( Source->Module ))+10)+Chr(13)+Chr(10),2) }

  #heading directive is provided for the header for commenting source code.
  This can be either a code block or an xBase expression that evaluates to
  a string. Example:

  #heading {||Repl( Repl("/", Len(Trim( Source->Module ))+10)+Chr(13)+Chr(10),2) }

  #line directive is provided for adding text to every line of the source 
  code comment.  This must be a code block that accepts a parameter for the
  current line of text. Example:

  #line {|t| "//" + t }

  If you like having trailing comments on the end of the line, you could use
  the following directives to create a complete box out to 80 characters.

  #heading {||Repl( Repl("/", RightMargin() ) + Chr(13)+Chr(10), 2 )}
  #footing {||Repl( Repl("/", RightMargin() ) + Chr(13)+Chr(10), 2 )}
  #line    {|t| PadR( '//' + Untabify( t ), RightMargin() - 2 ) + '//' }
  #right margin 80
  #strip   "/"

  Note that stripping the "/" character will cause dates to be incorrectly
  printed.

- New functions for source code documentation:

  Syntax() will generate the syntax expression for a routine.

  Syntax:
    Syntax( <cMatch>, <cOption> ) -> cSyntax

  Formal Arguments: (2)
    Name       	Description
    	
    cMatch    	(Defaults to "<>")
    cOption   	(Defaults to "[]")

  ArgTable() will generate the argument table for a routine, listing default
  arguments for values.  The default options are ONLY recognized via the
  Clipper 5 User Defined Command (UDC):

  DEFAULT <var> TO <val>

  The preprocessor directive for DEFAULT..TO contained in JFK.CH is:

  #command DEFAULT <p1> TO <v1> [,<pN> TO <vN>] =>;
         if ( <p1> == NIL ); <p1>:= <v1>;  end;
         [;if ( <pN> == NIL ); <pN>:= <vN>;  end]

  Arguments that have a default value are enclosed in brackets [], as they
  are in the preprocessor.  Best way to see how it works is to use PRGDOC.XL8
  on one of your systems.  It only works with PRG files, currently.

  Syntax:
    ArgTable( <cTitle>, <bArg>, [ <cNewLine> ] ) -> cTable

  Formal Arguments: (3)
    Name         Description
      
    cTitle       Defaults to "Name      Description", etc.
    bArg         Code block for formatting argument.
                 Defaults to {|v,nl| nl + Pad( v:name, 12 )
                 + if( v:default, "Defaults to " + v:initVal, "" ) }
    cNewLine     (Defaults to NewLine()+Tab(2))

  The instance variables for the variable object passed to bArg are:
    name       Name of the variable
    scope      "local" or "private" (depends on formal argument list or
               PARAMETERS statement)
    initVal    Initial value for variable.  Defaults to "NIL".
    default    .T. if the variable is defaulted, .F. otherwise.

  IncFiles() returns an array containing the list of files included in the
  current source code file (only valid in PRGDOC output styles).

  IncTable() lists the include files.

  Syntax:
    IncTable( [ <cTitle> ], [<bArg>], [ <cNewLine> ] ) -> cTable
    
  Formal Arguments: (3)
    Name       	Description
    	
    cTitle    	(Defaults to "Include Files")
    bArg      	(Defaults to {|f,nl| nl + f })
    cNewLine  	(Defaults to NewLine()+Chr(9))


  Revision() will return the date and time stamp for the file and any
  text you may wish to specify.  

  Syntax:
    Revision( [ <cText> ], [ <bArg> ] ) -> cRevision

  Formal Arguments: (2)
    Name       	Description
    	
    cText     	(Defaults to "Original Version")
    bArg      	(Defaults to {|d,t,c| Tab(2) + dToC(d) + Tab(1) 
				 + t + Tab(1) + c }

  The code block receives (1) file date, (2) file time, (3) cText.

New to version 1.096 (not in the manual)

- Context-sensitive help should be implemented at almost all points in 
  TechWriter.  Press [F1] to read or update the help information.
  (The context-sensitive help files NOTES.DBF and NOTES.DBT have been added
  to the shipping version.)

- The "Analysis" menu option has been removed as it is no longer needed, 
  since TechWriter performs incremental documentation that includes automatic
  reanalysis of changes modules.

- The "Output" menu options are now taggable, so multiple types of output
  may be generated for any system at once.  This duplicates the command line
  /g switch's capabilities.

- A /e command-line switch has been added to allow for editing of a routine
  in a system from the command line.  Very handy feature for changing 
  unfamiliar source code.

  For example:

  tw /sy=pcl /e=PCLRastRes()

  Will bring up your external editor on the declaration of the function
  PCLRastRes()

- The cursor now becomes a full block when Insert is on, and a normal 
  blinking underscore when typeover is on.

- Added FUNCKY2 library replacements for StrTran(), Stuff(), and any other
  EXTEND or CLIPPER routines FUNCKY2 replaces.  This should result in more
  reliable generation of documentation.

- The wrapping of long index keys should now be performed correctly.

- For reasons that have nothing to do with code under my control, certain 
  memory situations would cause UnTabify() to go into an infinite loop.  
  This should no longer occur, as a limit is put on the number of times it 
  can loop, based on the length of the text passed to it.

New to version 1.095 (not in the manual)

- WordPerfect output is now its own output style (mainly due to the way the
  call tree for applications could totally confuse WordPerfect).  Use

  #format WP

  to generate a WordPerfect 5.1 document.

- VarClass() is another "hook" to provide the name of the class declaration
  routine for the class or instance variable currently being documented.
  For example, if the current module is an instance variable and its 
  class declaration module is Window(), VarClass() will return "Window():"
  If the current module is not a class or instance variable, VarClass()
  returns a NULL string.  Index markings are also generated for instance
  variables now, both in alphabetical order and as part of the class 
  declaration module.

- ModuleType() has been modified for classes.  Before, it would have returned
  "DICT Class" for methods in DICT.PRG.  Now, it returns "Class".  Also,
  if the current module being documented is an instance variable, 
  ModuleType() returns "Variable".

- All styles using call trees in all XL8 files have been updated to use
  LastTree(), which returns the text of the last call tree created by
  ModTree().  This allows the styles to have things like the following:

  {Is(ModTree(),"^bCall Tree^b:"+Chr(13)+Chr(10)+LastTree())}

- All styles using the "calls from" and "calls to" styles have now been 
  updated to use LastCall(), which returns the text of the last CallsFrom()
  or CallsTo() evaluation.  This allows the styles to have things like the
  following:

  {Is(CallsFrom(),"^bCalls From^b:"+Chr(13)+Chr(10)+LastCall())}

  {Is(CallsTo(),"^bCalls From^b:"+Chr(13)+Chr(10)+LastCall())}

- ModTree(), CallsFrom() and CallsTo() all default to the appropriate bold
  and underline settings for whatever document generation format.

- ASCII and WordPerfect file output was being closed after the call tree for 
  an application was generated.

New to version 1.094 (not in the manual)

- WordPerfect index markings are provided in the styles for:
  
  Module name
  Category and Module name
  File and Module name

  When the index is generated, it will contain listings based on the above
  orders.

- A new XL8 directive has been added for ASCII file output for indicating
  that the document is self indexing, generating its own Table of Contents,
  etc.  This setting is #indexed.  To indicate that a generated file is self
  indexed, use:

  #indexed on

  or

  #indexed yes

  or

  #indexed true

  If this directive is omitted or equal to anything other than the three 
  values above, the alphabetical listing and listing by source file will
  still be generated into the document.

- NewDoc() has been removed from TechWriter because it was too awkward (and
  slowed things down) to test inside every style expansion.  Instead, two
  new directives have been added for XL8 files:  #preface and #epilogue.
  The evaluation of #preface will be written to the ASCII-style output file
  immediately after the file has been created.  The evaluation of #epilogue
  will be written to the file immediately before the file is closed.

  Example for WordPerfect generation:
  #preface WPHeader()+WPTOCDef()+WPHardPage()
  #epilogue WPHardPage()+WPIndexDef()

  These both default to NUL strings.  No other document generation style
  recognizes these options currently.  However, these should provide 
  everything you may need for WordPerfect documents.

New to version 1.093 (not in the manual)

- Routines that were no longer contained in a source code file were being
  reactivated when that file was considered active for the subsequent 
  document generation.  These inactive module records are now wiped and 
  deleted for reuse.

- WordPerfect support.  Check the WordPerfect Support Norton Guide (WP.NG)
  for the complete listing of all WordPerfect support routines.  
  WORDPERF.XL8 is where you should start for implementing your own WP support.
  Support for marking styles, table of contents, and indexes is provided.

- Mainly to support WordPerfect, a #massage directive has been added to
  the XL8 file. The default massager is:

  #massage Untabify( Blankstrip( {text} ) )

  To convert text to be as close to WordPerfect ready as possible, for
  example, use:

  #massage WPPrepare( Blankstrip( {text} ) )

  You will still have some problems with not being able to word wrap the 
  resultant text, but alternatives are being investigated for that.  
  Suggestions are also welcome.

- WordPerfect's style sheets are a little strange, but really work quite 
  well.  WordPerfect automatically creates a reference by name for every 
  style it finds in a document.  However, it must read all the way to the 
  bottom of the document to load all the styles.  You can force it to do 
  this by  pressing [Home][Home][Down Arrow].  All styles it found will 
  then be listed when you press [Alt-F8].  TechWriter ships with a default 
  style library called TW.STY, which is contained in the EXAMPLES 
  subdirectory.
  
  It is important to move to the bottom of the file before viewing the
  document with [Shift-F7]"v" - otherwise WordPerfect may lock up.

New to version 1.092 (not in the manual)

- The default section "Source Modules" now is called "Source Code"

- Instance and class variables for class declarations are now documented.
  Another short entry is added after the class declaration that leads
  to the respective variable list.  In your source code, instance and class
  variables should be documented above their declaration (following the 
  normal source code commenting convention TechWriter uses).  NORTON.XL8 and
  ASCII.XL8 have been updated to reflect this support.

  The files documenting the instance variable list are composed of the Base32
  representation of the record number for the class declaration routine plus
  "-I".  For example, "1CB-I.NGX".

  The files documenting the class variable list are composed of the Base32
  representation of the record number for the class declaration routine plus
  "-C".  For example, "1CB-C.NGX".

- New "hooks" into TechWriter:

  IsIvar() - .T. if the module being documented is an instance variable

  IsPre() - IsCmd() has been renamed to this.  All preprocessor operations
            now return .T.

  IsClassDef() - .T. if the module being documented is the class declaration

- The fields Source->Module and Source->Category have been lengthened from
  20 characters to 25, mainly to support the module names created by parsing
  the class declaration syntax.

New to version 1.091 (not in the manual)

- The file names created for Expert help are a base 32 representation of
  the record number from the Num2Base32() and Base32Num() functions written 
  by Anton van Straaten, author of Class(y).  These routines allow 1 billion
  (1,000,000,000) to be represented in 6 digits (0..9,A..V), which still 
  creates valid file names based on the record number for the category.  
  
  This routine is used with Expert Help for two reasons - to reduce the size 
  of the cross-reference bytes (since the file name is often used) and to
  allow TW to create dependent files from a main file for support of class
  definitions, etc.  This use will become clear with the next version of TW.

New to version 1.09 (not in the manual)

- Several users were getting "conventional memory exhausted" messages when
  parsing large routines.  Parsing may run slightly slower, but it should
  no longer put such a burden on system memory.  In tight memory situations,
  it should actually run faster than previously.  Timing tests show a 23%
  increase in performance during parsing.  This is mainly due to an ASM
  routine written by Rob Hannah (author of many things you didn't know he
  wrote) called Compact() that replaces all tabs with spaces, and all extra 
  spaces with a single space.  (Part of TechWriter's White Space Reduction 
  Act).  This routine probably runs as fast as computerly possible.

- The file names listed in the profile section was missing a space at the
  end of the file, so the module names were running into the file name.

- Clipper 5.x CH file support is much more complete for #command, #xcommand,
  #translate, and #xtranslate.  NORTON.XL8 and ASCII.XL8 have been modified
  to take advantage of this added support.

- NewSection() and NewCategory() are available for ASCII file output, so 
  duplication of section headers and category headers can be skipped if
  desired.  The shipping ASCII.XL8 file demonstrates how these routines can
  be used in every output style.  NewSection() returns .T. if the section 
  has changed from the last one generated, and .F. if it is the same.
  NewCategory() does the same thing for categories.

- IsCmd() has been added for determining if the current module is a Clipper
  5.x preprocessor #command or #xcommand.  All the styles in both ASCII.XL8 
  and NORTON.XL8 demonstrate how this routine can be used to customize the
  generated output based on this condition.  A function called Directive()
  is also available to extract the text of the current preprocessor match 
  pattern.  Results of Directive() if it is used on modules other than
  preprocessor modules is unpredictable.

- IsData() has been added for determining if the current module is not a
  source code module.  IsData() returns .T. for anything that TechWriter 
  does not recognize as source code.

- IsSource() is available to determine if the current module is a source
  code module.  IsSource() returns .T. for any recognized source code file.

- IsText() is available to determine if the current module is from an ASCII
  text file.  IsText() returns .T. for any *.TXT file.

- The document generation is significantly faster in all aspects, 
  particularly with large blocks of text.  Timing tests show a 33% increase
  in performance.  This is mainly due to a C routine written by Chris Sennitt,
  author of many Clipper products, including SuperClass and the Chydale Mouse
  Driver, which replaces the slow Clipper tab interpretation routine 
  Tabify().

- *.C and *.ASM files are again being scanned without causing TechWriter to
  to into infinite loops.

New to version 1.084 (not in the manual)

- Formerly, TechWriter saved the results of the last generated call tree for 
  the active system for the duration of that session.  If a different system
  was selected, the call tree was cleared and automatically generated.  A
  problem with TW saving the call tree occured when a configuration screen's
  "Look Up" variable was changed, because the call tree was not regenerated
  with the new look-up rules.  Now, if the "Look Up" variable is changed,
  the call tree is cleared, so it is regenerated the next time it is 
  requested.

- A change in the system-specific toggle for making a menu wasn't taking 
  effect unless TechWriter was reloaded.  The change is not implemented
  immediately.

- Documentation support for dBase III compatible .FRM, .LBL, and .MEM files 
  has been added.

- An ASCII.XL8 file has been created for producing ASCII text file 
  documentation.  Text output support has begun!

New to Version 1.083 (not in the manual)

- The "spinning wheel" at the lower right of the screen is now in effect for 
  both clearing the tap count on nodes of the tree and for printing the tree.

- If TechWriter determined that no menu should be generated for the on-line
  file for Expert Help or Norton Guides without the user specifying no menu,
  the table of contents could sometimes be incorrect.  This has now been
  corrected.

- Version 1.082 was skipping data files because they were not source code.

- Document generation should be faster due to a quicker version of dBxStore.

- Many of the styles in Norton.XL8 did not include the topic definitions for
  the field and index file information.  All styles now include this
  information.  TRH.XL8 has also been updated to include index and data file
  information.

- When source code modules are deleted interactively, the values associated
  with that record in the DBX file are also deleted.  DBX files are also
  now packed when the Utilities:Pack Files menu option is selected.

- A new command line switch has been added for setting the generation to be
  as fast as possible.  This switch disables the testing for the [Esc] key
  for terminating the generation.  By using this switch and turning the
  progress toggle off, you will get the fastest generation possible.

  Syntax is: /[F]ast=<toggle>.

  It is listed in the help screen provided with TW /H.  This may also prevent
  some of the run-time memory problems some people have been experiencing.

- If a topic occured starting at the first character on a line, sometimes it
  was not correctly translated with its attributes.

- Documentation for DBT files is now included.

New to Version 1.082 (not in the manual)

- Incompletely specified libraries are now searched for in the following 
  order of precedence:

  - System source code paths
  - Library paths specified in the Files:Configuration screen
  - The DOS "APPEND" environment variable path
  - The DOS "LIB" environment variable path
  - The DOS "PATH" environment variable path

- Some problems have been reported with _DBX_A_ADD or _DBX_A_GET when library
  symbols are being stored or retrieved, which may be related to low memory 
  situations.  The only recommendation right now is to free up as much memory
  as possible.  Chydale software has been contacted to see if they have any
  ideas. (These problems were reported for 1.081).

- "Conventional memory exhausted" messages may occur when producing a call
  tree for every module in a large system - a string containing the entire
  call tree for that module is built before it is printed, and Clipper can
  only handle a 64K string at one time.  Furthermore, that 64K string must
  be available in one contiguous block, which is rare, considering the size
  of TechWriter and network drivers.  The only recommendation is to skip
  generating a call tree for a source code module.

- A better "Spinning Wheel" effect has been implemented for the "still 
  working" indicator rather than the strange looking pulsating characters 
  which were inadvertently left in after testing.

- TechWriter will correctly process lines like:

  PROCEDURES=blah
  FUNCTIONS=blah

- The profiler now runs faster for documenting missing calls.  It also 
  produces a list of routines by frequency of call after the list of missing
  calls.  Every listed routine in each of the profile sections can now be 
  moved to directly in the on-line file.

- The Systems->Section name field has been removed.  Section names now 
  default as follows:

  File Extension Module Type          Section Name
  ============== ===========          ======================
  ASM            Assembly function    Source Modules
  C              C Function           Source Modules
  CH             Clipper Header File  Preprocessor
  		 Command
		 Command (Exact)
		 Directive
		 Translation
		 Translation (Exact)

  DBF            Data file            Data Files    
  DBT            Memo file            Data Files    
  DCT            Text Data Dictionary Data Files    
  DIC            UI Data Dictionary   Data Files    
  FRM            Report Form File     Labels/Reports
  H              C Header File        Preprocessor
  LBL            Label File           Labels/Reports
  MAK            Make file            Source Modules
  NDX            Dbase Index File     Data Files    
  NTX            Clipper Index File   Data Files    
  PRG            xBase Source         Source Modules
                 Function
		 Procedure
		 Static Function
		 Static Procedure
  		 Class                Classes

  WW             UI Window File       Data Files    

- Comment.pel for Sage Professional Editor has been updated with a 
  reorganized comment header that includes the "Section:" topic.  Two
  other routines that may be of interest to users is "search_forward_module"
  and "search_backward_module"

- Comment.cb & comment.cm for Brief has been updated with a reorganized 
  comment header that includes the "Section:" and "Category:" topics.

- CH file support has begun.  Don't bother with bug reports on these 
  routines.  If you don't like the output results, don't use *.CH files in
  your file masks.

- Blank lines should now be supported in comment headers similar to this:

  //

  // Purpose:  This is da purpose
  
  // Syntax: Syntax()

New to Version 1.081 (Not in the manual)

- When the number of times a node has been printed is being cleared in the
  call tree, a little wheel appears at the bottom right corner of the screen
  indicating that TechWriter is still working.  The clearing of tags has
  also been tremendously sped up - generation is now taking half the time the
  original node tag clearing version took.

- Class declarations, constructions, and methods are correctly recognized
  again.

- A "Make Menu" toggle has been added for every system, and a command-line
  switch of /[M]enu=<Logical Toggle> has been added.  The help screen has
  been updated as well.  By specifying a value of FALSE for this option,
  a visual outline is generated for the Expert Help file rather than a
  pull-down menu.  Try this option and see what it does - you might like it
  better than the conventional menus.

New to Version 1.08 (Not in the manual)

- SECTIONS now provide a grouping option for categories.  Both NORTON.XL8 
  and TRH.XL8 provide a topic definition for "Section:" in your source code 
  comments.  See the modified tutorial source code for examples, or 
  regenerate its documentation.  A default SECTION name is provided as a
  field for every system.

- Call trees for a specific module are now sensitive to the call tree 
  branching limit.  This has slowed down generation of module call trees
  by about twice as much, but it helps prevent the string overflow problems 
  that could occur on large call trees.

- String overflow errors in SysXLate() should no longer occur.

- Module cross-referencing is tighter than it was, thanks to Expert Help's
  1.09 version.  When looking in the reference section, only one [Enter]
  key press is required to go directly to the documentation of a module.
  The reference section can be returned to by pressing [Esc].  If you don't
  have version 1.09, contact SofSolutions, Inc. for an upgrade at
  800-325-6820, or check their bulletin board.

- The file name for modules now appears on the same line as the name of
  the module, flushed to the right margin for all NORTON.XL8 styles.

New to Version 1.07 (Not in the manual)

- Another menu and command line option has been added for viewing the
  call tree for an application.  The command line option is /g=[V]iew.
  The menu option is under Output:View Tree.

  This routine reads the <system>.TRE text file directly to view the
  call tree.  Pressing [Enter] on any line in the tree viewer provides 
  additional information for that node.  If the current node's source code
  is available, it may be edited directly from the tree.  The record for
  that node can also be accessed.

  The [^Enter] key allows you to search for a node in the tree from the
  current position down.  If the node isn't found, your position in the
  call tree is not changed.

  As in the other browse screens, [F10] will display the special key
  options.

