home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / parsomat.zip / change.txt < prev    next >
Text File  |  2001-07-15  |  30KB  |  581 lines

  1. ===============================================================================
  2. ==========================                         ============================
  3. ==========================     VERSION HISTORY     ============================
  4. ==========================                         ============================
  5. ===============================================================================
  6.  
  7.  
  8.      For easy reference, this history is presented in reverse order (most
  9.      recent version first).  Remember:  if you have previously registered
  10.      Parse-O-Matic, you can self-register any evaluation copies we create
  11.      for two years (six years for deluxe registration).  Thus, your small
  12.      investment in the  initial  registration  can provide you  with many
  13.      free updates.  Since we do not  automatically  ship new versions, we
  14.      invite you to visit our Web site (users.aol.com/getmydata) every few
  15.      months, to see what's new.
  16.  
  17.  
  18. +------------------------- WE ARE CUSTOMER-DRIVEN! ---------------------------+
  19. |                                                                             |
  20. |    Most of the enhancements to Parse-O-Matic are inspired by POM users.     |
  21. |    We charge a nominal fee for custom work, but we will usually provide     |
  22. |    a discount if the requirement seems to be beneficial to other users.     |
  23. |                                                                             |
  24. |    ******* PARSE-O-MATIC'S EVOLUTION IS GUIDED BY OUR CUSTOMERS *******     |
  25. |                                                                             |
  26. +-----------------------------------------------------------------------------+
  27.  
  28.  
  29. ------ ------------------------------------------------------------------------
  30.  VER.  WHAT'S NEW IN THIS VERSION
  31. ------ ------------------------------------------------------------------------
  32.  
  33. 3.97C  Text changes to reflect our new office location
  34.  
  35. 3.97B  Minor change to allow creation of special 500-field DBF version
  36.          Copies of the special version (POMBIGDB) are available on request
  37.  
  38. 3.97A  New PEELX command makes it easier to strip words from an input line
  39.        New INC and DEC commands make it easier to increment/decrement counters
  40.        New $LASTFLINE variable contains value of the last $FLINE
  41.  
  42. ------ ------------------------------------------------------------------------
  43.  VER.  ENHANCEMENTS IN PREVIOUS VERSIONS
  44. ------ ------------------------------------------------------------------------
  45.  
  46. 3.96A  Increased maximum number of fields for DBF files from 100 to 200
  47.        Corrected action of DELETED variable in DBF processing
  48.          This was not always indicating deleted records correctly
  49.  
  50. 3.95B  Modified the SEE program to recognize Alt-F4 (Windows exit)
  51.  
  52. 3.95A  Corrected problem with rounding of negative real numbers
  53.  
  54. 3.94B  Cosmetic changes only
  55.  
  56. 3.94A  New commands
  57.          PEEK lets you look ahead to the next line in a simple text file
  58.          SETERROR sets program return code but does not terminate like HALT
  59.        New comparators
  60.          SAMEAS
  61.            Compares two strings regardless of case and surrounding whitespace
  62.              Example:  " Cheshire Cat " SAMEAS "CHESHIRE CAT"
  63.          String-length comparators
  64.            These save you an extra step (e.g. SETLEN then a comparison)
  65.            You can now compare the length of a string against a number
  66.              Example:  IF $FLINE LEN= "0" THEN NullLine = "YES" ELSE "NO"
  67.        Enhancements
  68.          The RANDOM command no longer generates the same random sequences
  69.            Previously, different runs of a POM file obtained the same sequence
  70.          The processing display is updated about once per second
  71.            Previously, the display changed for each pass through the POM file
  72.            This new approach slightly improves processing speed
  73.        New utility
  74.          WINUTIL lets you use certain Windows functions in a DOS window
  75.            Its main purpose is to give you access to the Windows clipboard
  76.        Processing log (POMLOG.TXT) now reports the number of files processed
  77.          This is only done if more than one file is processed (i.e. wildcards)
  78.        Changed START.BAT to INFO.BAT
  79.          This avoids any confusion with the Windows START command
  80.  
  81. 3.93A  Applied a patch to the language (Turbo Pascal) underlying Parse-O-Matic
  82.          An initialization error could affect the newer, faster processors
  83.          This could cause a "Runtime Error 200" on machines of 200 Mhz or more
  84.            This would happen immediately when the program started
  85.              In other words, if you didn't see the error, it doesn't affect you
  86.        Added negative indices to the COPY, DELETE and EXTRACT commands
  87.          These allow you to reference from the right edge of a variable
  88.            e.g. COPY x "ABCD" "-2" "-1" sets x to "CD"
  89.          The old way to get "the last character" involved SETLEN and COPY
  90.  
  91. 3.92A  Enhanced SET command
  92.          Added trimming and default settings to SET command
  93.          This turned out to be so useful that it alone warranted a new release!
  94.        Minor changes to documentation
  95.        Renamed several files to use proper .TXT extension
  96.          This is in deference to Windows users
  97.  
  98. 3.91A  New Features
  99.          Job (POJ) files contain the parameters for a POM command
  100.            Job files allow you to prompt for the input and output file names
  101.              See "Parse-O-Matic Job (POJ) Files" in the manual
  102.            Job files are a handy way to run POM from Windows
  103.        New Command
  104.          FILESIZE var value
  105.            Returns size of file, or null if file does not exist
  106.            See "The FILESIZE Command" in the manual
  107.        Enhanced Commands
  108.          OFILE can now deduce an output file name, based on the input file name
  109.            See "The OFILE Command" in the manual
  110.          TRIM now has "multiple" option
  111.            TRIM $FLINE "M" " " removes multiple spaces, leaving only singles
  112.            See "The TRIM Command" in the manual
  113.        POM-File Encryption
  114.          New SCRAMBLE utility discourages users from tampering with a POM file
  115.            The POM file is rendered unreadable -- except to Parse-O-Matic
  116.            See "Encrypted (Scrambled) POM Files" in the manual
  117.        Other Enhancements
  118.          The code for trimming has been rewritten for faster performance
  119.            This improvement should be noticeable when converting large files
  120.          The SHOWNUM utility now converts characters as well as numbers
  121.            See "The SHOWNUM Utility" in the manual
  122.  
  123. 3.90A  New Features
  124.          Deduced, array and eponymous variables
  125.            This is an extremely powerful feature of Parse-O-Matic
  126.            Supports 1, 2 and 3 dimensional arrays
  127.            Supports eponymous variables
  128.              You can name a variable after a piece of input data
  129.              You can not do this kind of thing in most standard languages
  130.          User-specified command-line parameters
  131.            /X /Y /Z set $CMDLINEX $CMDLINEY $CMDLINEZ
  132.          New SCANPOSN command compares a string against a list of items
  133.          New RANDOM command generates a random number
  134.        Enhancements
  135.          POM now runs in protected mode for improved performance
  136.            POM will no longer run on 8088 and 8086-class machines
  137.            A custom 8088/8086 copy of 3.90 can be made for you, if necessary
  138.          Improved capacity for variables and literals
  139.            Increased maximum number of variables and literals from 1000 to 2000
  140.              This can get used up quickly by arrays (each entry is a variable)
  141.          Optimized storage of literals
  142.            Identical literals only take up one variable/literal slot
  143.          Vastly improved file viewer (SEE.EXE)
  144.            No limits to file length; views lines up to 255 chars wide
  145.            Many helpful search commands; built-in help and customization
  146.            This version is to support POM -- not for distribution
  147.        Problems Fixed
  148.          Corrected unexpected page eject when using OFILE then PAGELEN
  149.            This only mattered if PAGELEN was set for the previous file
  150.          Corrected occasional spurious character "found" at end of SPLIT files
  151.  
  152.        ----------------
  153.        UPGRADE ADVISORY
  154.        ----------------
  155.  
  156.        Any variable names that contain parentheses "(" or ")" should be renamed
  157.        Any variable names that contain commas should be renamed
  158.          In general, use only A to Z, 1 to 9 and underscore in variable names
  159.  
  160.        Debugging notice
  161.          The OUT and OUTEND commands work slightly differently
  162.            They no longer report if they encounter a non-existent variable
  163.            If they can't find a variable, they simply put nothing at that spot
  164.              This is closer to the general theory of variables of POM
  165.              This also allows for simpler code with scattered array variables
  166.  
  167. 3.81C  Corrected leap-year interaction between DATE, MAKEDATA and MAKETEXT
  168.          This occured when converting both date serials and text dates
  169.  
  170. 3.81B  Corrected typographical error in the user manual
  171.  
  172. 3.81A  New commands
  173.          OVERLAY  lets you extend or overwrite portions of a variable
  174.          REWIND   lets you back up in a SPLIT or CHOPped file
  175.          ROUNDING controls rounding by CALCREAL (see Upgrade Advisory)
  176.          SHOWNOTE displays a short progress message on the processing screen
  177.        Enhancements
  178.          The GET command
  179.            GET can now be used in SPLIT files, not just CHOPped files
  180.            GET x "EOF" returns "Y" or "N" for End-of-File condition
  181.            LOOSE parameter (STRICT is default)
  182.              Permits processing to continue despite unexpected end-of-file
  183.          Manual reading (CHOP 0) now runs slightly faster
  184.        Problems fixed
  185.          ERASE did not work if the file name had a plus ("append") in front
  186.          Quiet Mode (/Q) is better behaved when POM is called by a DOS program
  187.            Minor changes sometimes appeared on the screen if it was not redrawn
  188.  
  189.        ----------------
  190.        UPGRADE ADVISORY
  191.        ----------------
  192.  
  193.        This notice concerns you if you use the CALCREAL command.
  194.  
  195.        Due to the way that real numbers (as opposed to integers) are
  196.        calculated in binary, CALCREAL would sometimes return unexpected
  197.        results.  For example:
  198.  
  199.        CALCREAL x = "400.00" "-" "390.60" "2"
  200.  
  201.        produces the answer "9.39" rather than the expected answer of "9.40".
  202.  
  203.        This is because, in real-mode binary calculations, the answer ends up as
  204.        9.3999999, which is very close indeed to the correct answer.  However,
  205.        when you specify "two digits of precision" (the "2" in the command), the
  206.        answer is simply truncated after two digits, yielding the answer "9.39".
  207.  
  208.        This issue is now resolved.  When appropriate, answers are rounded up,
  209.        if you have explicitly specified a fixed number of digits of precision.
  210.        Floating calculations are not rounded.
  211.  
  212.        This means that existing POM files may work slightly differently than
  213.        before.  To make your existing POM files continue to work the way they
  214.        used to (i.e. simply truncating answers when you specify the number of
  215.        digits of precision), place the following command at the beginning of
  216.        your POM file (typically in the PROLOGUE):
  217.  
  218.        ROUNDING "N"
  219.  
  220.        This will disable the rounding feature, which is, by default, enabled.
  221.  
  222.        See "The ROUNDING Command" (in the user manual) for full details.
  223.  
  224. 3.80A  New KEEP command performs a conditional page eject to keep text together
  225.        New CODE and CALL commands allow you to define subroutines
  226.        New predefined value $LINECOUNTER
  227.        Color control for menus (see Upgrade Advisory)
  228.        Changes to user manual
  229.          Reformatted for easier reference
  230.          Manual file has been renamed from POM.DOC to MANUAL.DOC
  231.        Please note that our phone numbers for credit card orders has changed
  232.          See the text file ORDER.FRM for the new numbers
  233.  
  234.        ----------------
  235.        UPGRADE ADVISORY
  236.        ----------------
  237.  
  238.        This notice concerns you if:
  239.  
  240.        - You use the old menu program MENU.EXE in your own batch files, or...
  241.        - You placed the old DEVELOP.BAT file in another directory, or..
  242.        - You are using a modified copy of the old DEVELOP.BAT
  243.  
  244.        The old menu program (MENU.EXE) has been replaced by a slightly improved
  245.        version, named PSMENU_D.EXE.  The name was changed to avoid confusion
  246.        with the numerous menu programs that are also called MENU.EXE.  (Some
  247.        users experienced problems when using the DEVELOP.BAT batch file because
  248.        they had more than one MENU.EXE on their system.)
  249.  
  250.        Please do not rename PSMENU_D.EXE to something else; we will be
  251.        upgrading our multi-platform support soon, and the menuing system will
  252.        expect the DOS menu program to have that name.
  253.  
  254.        PSMENU_D lets you control the color of the menus.  For details, print or
  255.        view the comments in the file POM.MNU.
  256.  
  257.        You may use PSMENU_D in your other applications.  Enter  PSMENU_D  at the
  258.        DOS prompt for an explanation of the distribution (legal) conditions.
  259.  
  260. 3.71A  Fixed: Some data might be lost if OUT generated exactly 254 characters
  261.        and then additional data was added with another OUT or OUTEND command
  262.  
  263. 3.70A  New commands
  264.          CVTCASE converts a variable to uppercase or lowercase
  265.          GETENV  obtains a system environment variable (e.g. PATH)
  266.          MSGWAIT controls the behaviour of error messages
  267.          REMAP   transforms sub-strings into other strings
  268.          MAPFILE reads a file containing data transformations for REMAP
  269.        Enhancements to PARSE, PEEL and FINDPOSN
  270.          Search strings (e.g. "2*,") are now known as decapsulators
  271.          Overlapping decapsulators now behave more gracefully
  272.            PARSE and PEEL return an empty string; FINDPOSN returns "0"
  273.              This situation used to generate an error message
  274.                i.e. "From" value exceeds "To" value
  275.                Most users found this unhelpful or confusing
  276.                For details, see "Overlapping Decapsulators" in the manual
  277.          New search parameter looks for "last occurence" or "first occurence"
  278.            Example of  "last occurence":  PARSE xyz $FLINE ">*$" ">*.00"
  279.            Example of "first occurence":  PARSE xyz $FLINE "<*$" "<*.00"
  280.        Documentation
  281.          Improved quick-reference section
  282.            The "importable" version has moved from EXAMPL04.POM to QUICKREF.POM
  283.  
  284.        ----------------
  285.        UPGRADE ADVISORY
  286.        ----------------
  287.  
  288.        This notice concerns you if:
  289.  
  290.        - You have created POM applications that are run unattended
  291.        - You use the HALT command
  292.  
  293.        (See "Unattended Operation" and "The HALT Command" in the manual)
  294.  
  295.        Since version 3.20, error messages would "time out" after sixty seconds
  296.        (or when a key was pressed), whereupon Parse-O-Matic would terminate.
  297.  
  298.        Parse-O-Matic now waits for permission to continue if an error occurs.
  299.        You can control this behaviour with the new MSGWAIT command (see "The
  300.        MSGWAIT Command" in the manual).
  301.  
  302.        To make Parse-O-Matic behave as it did before (i.e. timing out sixty
  303.        seconds), add this line to your POM file:  MSGWAIT "60"
  304.  
  305.        If you simply want to make your HALT commands work the same way (i.e.
  306.        allowing them to time out after about a minute), insert MSGWAIT "60"
  307.        prior to each HALT command.
  308.  
  309. 3.61A  Added inline decrement (e.g. SET y = x-)
  310.        LOG command now allows two additional (optional) values
  311.        Rationalized null specs and empty fields in Parse, Peel and FindPosn
  312.          Customers were using these in creative ways that we had not foreseen
  313.          We have taken these into account and fully documented the behaviour
  314.          See "The Null Decapsulator", "Left-Peeling" and "Insoluble Searches"
  315.        Minor improvements to the processing display
  316.  
  317. 3.60A  New commands
  318.          MAKEDATA converts text data to binary
  319.          MAKETEXT converts binary data to text
  320.          ZERODATE initializes the date for serialized date format
  321.          GET      reads variable-length records and delimiter-terminated data
  322.          GETTEXT  combines functions of GET and MAKETEXT commands
  323.          AGAIN    allows you to return to an earlier BEGIN comparison
  324.        Enhancements
  325.          CHOP now allows manually-controlled reading (via the GET command)
  326.          Read-only files are opened as such, avoiding sharing problems on LANs
  327.          Improved appearance of trace logs
  328.          Hexadecimal literals (e.g. $39$34 means "94")
  329.        Utilities
  330.          SHOWNUM.EXE: reference tool converts decimal to hex and vice-versa
  331.          DEVELOP.BAT: simple interactive development environment (IDE)
  332.        Documentation
  333.          New material added for the READNEXT and LOOKUP commands
  334.          Several new sections about techniques and operational planning
  335.          Additional material about running Parse-O-Matic under Windows
  336.        Improved file-handling
  337.          OFILE now adds the default extension, if necessary
  338.            In 3.50, OFILE "XYZ" would not automatically add the .TXT extension
  339.          The default extension routine is no longer "fooled" by ..\ or .\
  340.            Earlier, a file name like ..\XYZ would not get the default extension
  341.        Problems fixed
  342.          Fixed "FRAME-UUI" problem affecting Quiet mode
  343.          Fixed routine to search through DOS PATH for "missing" files
  344.  
  345. 3.50A  Corrected a bug in the LOOKCOLS command (affected Parse-O-Matic v3.4x)
  346.          It would set the "Key-End" value to the last number listed in LOOKCOLS
  347.          It would set the "Data-Start" and "Data-End" to defaults (12 and 255)
  348.        New commands
  349.          ERASE   deletes a file
  350.          OUTPAGE sends a page eject to the output file (or device)
  351.          PAUSE   delays the specified number of milliseconds
  352.          OFILE   switches between output files
  353.            You can overwrite a file or append (add to the end)
  354.              See "How Parse-O-Matic Opens an Output File" in the manual
  355.              The append feature is also available at the command-line level
  356.        Enhancements
  357.          Processing display now shows input and output in appropriate units
  358.            Input units  (Bytes or Records)
  359.            Output units (Bytes or Lines)
  360.          Additional information in "processing completed" line in POMLOG.TXT
  361.            It now specifies the amount of output (in bytes or lines)
  362.          Output can now be sent to a generic device (e.g. COMx or LPTx)
  363.            See "Sending Output to a Device" in the manual
  364.        Documentation
  365.          New "File Handling" section in the manual
  366.  
  367.        ----------------
  368.        UPGRADE ADVISORY
  369.        ----------------
  370.  
  371.        POM now creates the output file ONLY when it first receives output
  372.        See "How Parse-O-Matic Opens an Output File" in the manual for details
  373.        If the output file does not receive any output...
  374.          If it did not previously exist, it will not be created
  375.          If it already existed, it will contain the old data
  376.            To ensure old data is gone...
  377.              Delete the output file before running Parse-O-Matic, or ...
  378.              Use the ERASE command in the PROLOGUE
  379.  
  380. 3.41B  PEEL reports precise nature of certain impossible parsing situations
  381. 3.41A  Fixed trimming problem affecting PEEL when using "null" delimiter
  382.  
  383. 3.40   New commands
  384.          DATE and TODAY provide date formatting, in any language
  385.          MONTHNUM converts text month to numeric month, in any language
  386.          COPY copies a variable from one character position to another
  387.          DELETE removes selected characters positions from a variable
  388.          EXTRACT moves selected characters from one variable to another
  389.          FINDPOSN locates the position of a string in another
  390.        Enhancements
  391.          All control files (including POM) are searched for, if necessary
  392.            If a directory is explicitly specified, POM looks there only
  393.            Otherwise, POM searches logged dir, POM's dir, then the DOS PATH
  394.            This makes it easier to build a library of standard files
  395.          INSERT now allows "insert to left" and "insert to right"
  396.          Automatic numeric comparators
  397.            The old method used text comparisons, which required pre-padding
  398.            Comparisons automatically determine if number is real or integer
  399.          CALC and CALCREAL now explicitly report "divide by zero" attempts
  400.          User manual reformatted for easier reference
  401.            Explanations of commands are preceded by an improved overview
  402.        Problems fixed
  403.          There were no problems reported in the last release
  404.  
  405. 3.31A  Numeric command parameters are now more forgiving
  406.          Spaces, tabs and commas are removed
  407.  
  408. 3.30A  New commands
  409.          LOG command writes a message to the log file POMLOG.TXT
  410.          HALT command allows termination with a DOS errorlevel
  411.          CALC command performs integer arithmetic functions
  412.          CALCREAL command performs decimal arithmetic functions
  413.          EPILOGUE command defines code to be run before input is processed
  414.          PROLOGUE command defines code to be run after  input is processed
  415.        Enhancements
  416.          Optional MINLEN setting controls the READNEXT command
  417.          Tracing no longer shows code inside skipped BEGIN/ELSE/END blocks
  418.          Increased variable name length from 8 to 12
  419.          Increased number of DBF fields from 50 to 100
  420.          Increased maximum line length in look-up files from 80 to 255
  421.          Increased maximum number of POM lines from 500 to 750
  422.            This does not include comment lines
  423.          Lookup file (LOOKFILE) is now searched for in various directories
  424.            If a directory is explicitly specified, POM looks there only
  425.            Otherwise, POM searches logged dir, POM's dir, then the DOS PATH
  426.          Restructured tutorial for easier reference
  427.          New deluxe registration provides 6 years of new version registration
  428.            Three times the standard benefit, but only twice the price
  429.        Problems fixed
  430.          Clustered ACCEPTs inside "false" code blocks were sometimes executed
  431.          Some error reporting caused problems on extremely large POM files
  432.          Ran out of file handles if you had a large number of input files
  433.          Incomplete trimming of multiple character delimiters in PEEL
  434.  
  435. 3.21A  Custom version; not released to public
  436.  
  437. 3.20A  Parsing of multiple input files into one output file
  438.          DOS wildcards are now permitted in POM command for input file name
  439.            For example:  POM XYZ.POM *.TXT OUTPUT.TXT
  440.          New NEXTFILE command skips to next input file
  441.          New predefined variable $COMMAND, showing current POM command
  442.        New PEEL command
  443.          Works like PARSE, but removes parsed text from source variable
  444.        New SOUND command
  445.          Sets error-message sound or generates a sound
  446.        The DONE and READNEXT commands now have optional comparisons
  447.          For example:  DONE x = y
  448.        Restructured example files as an interactive tutorial
  449.        Enhancements for unattended operation
  450.          Log file (POMLOG.TXT) records processing, and any errors
  451.          Error and warning messages pause for a minute, then the program ends
  452.        Fixed problem with ELSE statements nested two deep
  453.  
  454. 3.11A  DBF file enhancements
  455.          Improved reporting of DbF fields when tracing
  456.          Corrected data alignment error that affected some DbF files
  457.  
  458. 3.10A  New ELSE command
  459.          Allows BEGIN/ELSE/END blocks
  460.        New READNEXT command
  461.          Reads next line from input file, maintaining current place in POM file
  462.        New SETLEN command
  463.          Sets a variable to the length of a value (e.g. "XYZ" is length "3")
  464.        New DONE command (useful only in BEGIN/ELSE/END blocks)
  465.          Jumps to the end of the POM file; equivalent to IGNORE "X" = "Y"
  466.        New ~ comparator ("does not contain")
  467.        PARSE returns a null value if given impossible parsing task
  468.          Example: PARSE x "FRED/MARY" "1*/" "2*/" (problem: no second slash)
  469.        Maximum number of variables and literals increased to 1000 (was 225)
  470.  
  471. 3.00A  New PARSE command
  472.          You can now parse free-form data (including comma-delimited files)
  473.        New APPEND command
  474.          Allows you to concatenate up to four values
  475.        Data in output buffer (via OUT) is now flushed at end of input file
  476.          You can now use POM to create binary and fixed-record-length files
  477.        Varied comparators (equals, not equals, less than, contains, etc.)
  478.          Affects the commands IF, IGNORE, ACCEPT, BEGIN, OUT[END]
  479.          For example:  IF x > y THEN z = "YES"
  480.  
  481.        -------------------------------------------
  482.        CHANGES REQUIRED IN YOUR EXISTING POM FILES
  483.        -------------------------------------------
  484.  
  485.        This notice involves a change in the behaviour of IGNORE and ACCEPT.
  486.  
  487.        With the addition of varied comparators, you may have to change some of
  488.        your old POM files.  The IGNORE and ACCEPT commands were considered
  489.        "true if the string contains the specified text".  In other words, they
  490.        performed a "contains" comparison rather than an "equals" comparison.
  491.        (IF, BEGIN and OUT[END] used an "equals" comparison.)  IGNORE and ACCEPT
  492.        now default to an "equals" comparison.
  493.  
  494.        There are two situations in which you must modify an IGNORE or ACCEPT:
  495.  
  496.        (1)  If you padded the line with "=" (for clarity or aesthetics), yet
  497.             you meant "contains", the line should be changed.  For example:
  498.  
  499.             IGNORE $FLINE[1 10] = "YES"    (old style, using "=" for clarity)
  500.             IGNORE $FLINE[1 10] ^ "YES"    (new style, using "contains" symbol)
  501.  
  502.        (2)  If you omitted the "=" character, and you want to do a "contains"
  503.             comparison, you must insert the "contains" symbol:
  504.  
  505.             IGNORE $FLINE[1 10] "YES"      (old style, stated tersely)
  506.             IGNORE $FLINE[1 10] ^ "YES"    (new style, using "contains" symbol)
  507.  
  508.        If you are comparing two strings of equal length, there is no need to
  509.        modify an IGNORE or ACCEPT.  For example:  IGNORE $FLINE[1 3] "YES"
  510.        will continue to work properly, since either a "contains" or "equals"
  511.        comparison will produce the same result.
  512.  
  513. 2.71B  Fixed SPLIT bug
  514.          POM quit early if file length was an exact multiple of 32767
  515.  
  516. 2.71A  Added PROPER command
  517.        Updated manual to explain licensing options
  518.  
  519. 2.70C  Minor fix to unregistered (trial copy) reminder
  520.  
  521. 2.70A  POM can now read DBF (DBase) files directly
  522.        New ASCII literals (using the # character)
  523.        New TRACE, OUTHDG and PAGELEN commands
  524.        Documented the /Q command-line switch
  525.        User manual expanded to 30 pages; new examples (walk-throughs) provided
  526.  
  527. 2.60   New BEGIN and END commands (blocked "IF" operations)
  528.          Command lines may now be indented for clarity
  529.        New predefined variable $SPLIT
  530.          This indicates which CHOP or SPLIT segment you are on (1, 2, 3 etc.)
  531.        New look-up processing
  532.          New LOOKUP, LOOKSPEC, LOOKCOLS, LOOKFILE commands
  533.          New /L start-up option
  534.        Improved error detection and reporting
  535.        Comparison operation is now optional for OUT and OUTEND
  536.  
  537. 2.52   Added new symbol $TAB; fixed operation of $BRR and $BRL
  538.        New provisions for international registration
  539.  
  540. 2.51   Fixed Program Error MV-P-2 caused by padding with tabs instead of spaces
  541.  
  542. 2.50   CHOP command breaks up fixed-length (non-text) files
  543.        User manual restructured and partially rewritten
  544.  
  545. 2.40   SPLIT command breaks up long (over 255 characters) input lines
  546.  
  547. 2.33   New /Q (quiet) function:  type POM /? for explanation
  548.        Fixed bug: long output lines (>255) occasionally would lose some text
  549.  
  550. 2.32   Fix to CHANGE to correct lock-up when matching single-character string
  551.        Added registration via credit card
  552.        Added new version of SEE to allow full browsing of wide documents
  553.        While tracing, processing display now shows precise line number
  554.  
  555. 2.31   MINLEN now supports zero-length lines
  556.          Default MINLEN is, however, still "1"
  557.  
  558. 2.30   Output (via OUT and OUTEND) can now be more than 255 characters
  559.          However, no individual OUT or OUTEND can output a line longer than 255
  560.        New commands:  PAD, INSERT
  561.        Ease-of-use changes
  562.          More informative processing display
  563.          Variable names are no longer case sensitive
  564.          Improved error checking
  565.          Added another example to documentation
  566.  
  567. 2.20   Provided 2-year self-registration for registered users
  568.        Increased number of variables and literals from 100 to 225
  569.        Allowed "=", "THEN" and "ELSE" to improve readability
  570.        New commands:  SET, ACCEPT
  571.        Now possible to trace variables by name (SET POM=var/var/var...)
  572.          SET POM=T (older versions) is now specified as SET POM=ALL
  573.        Improved documentation (more examples)
  574.  
  575. 2.10   First public release
  576.  
  577. 2.00   Custom version; not released to public
  578.  
  579. 1.00   Custom version; not released to public
  580.  
  581.