History file

All dates in this project are in Dutch (European Continental) format,
dd-mm-yy.

Changes to main units/projects are prefixed by some code
 EWin =EWindow;         EStr =EStrings;
 EDir =EDirTree;        EDat =EDate;
 ELib =ELib;            EPas =EPasStr, Pascal STRING version of EStrings
 EFIO =EFIO             Docs =HTML documentation
 ECRC =ECRC32           LZH  =Some LZW unit picked from Swag, being
                                optimized for FPC.

Type indicators:

 + Minor change
 - Major change
 # Evaluation, personal notes, everything else
 * Bugfix
 / Manual
 % about the demo-files/main programs
 ! Bug detected


Date     Cat. Type. Descr
  |        |  |      |

20-07-98      - Initial release to webpage, and FPK maintainer (Florian)
                After 3 days of FPK programming.

                Designated as version 0.00 from now on. Next will be 0.01

                Version 0.01 was also sent to FPK maintainer.


21-07-98 EWin + Tried to get EWindow BP compatible. It compiles, but
                doesn't work right (Getkey problems?)
         EStr + New ELib procedure, a REAL one (PChar, ATT assembler
                LTrim
              # Found a CHARSET testing construct in set.inc, could try
                 to do Killchar right away. Glup!
         EStr + Done, not even that difficult. KillPChar is the name.
                (KillChar already used for STRING variant required for DFree
                 or Dict)
         EStr + StrStr (Pchar), fills a string with a number of characters.
                 Mere a typed FillChar, but who cares.
         EStr + Decided to move all PChar routines to EStrings. New module
                created....
         EStr + Added RTrim and AddBackSlash.

22-07-98 EStr + Added KillBPChar
         EDir # Started porting DirTree (FPK name: EDirTree), dilemma and
                 problem are the stringish types. What to do, convert to
                 PChar, or keep non pointer based strings
                 Decided to ask help in the pascal area. Problem is making
                 sure that all strings are properly disposed. I don't know
                 PChars (and FPK's implementation of it) that good.
         EDat + Created. Ported LeapYr, DayNr

23-07-98 EDat + Added ToUnix and FromUnix

------------
Packaging. version 0.01 for a friend, who is also interested in FPK, I've
no copy of this one I believe.
------------

         EDat + New procedure,DayNrBack
         EDat + new procedure,WeekNr. Problem in recursion though, main
                 routine working.
         EStr + ReplaceChar (1 minute, incl testing. My personal record.)

25-07-98 EStr + new procedure, RGrow
         EStr + new procedure, LGrow
         EStr + new procedure, StripChar
         EStr + new procedure, KillChrTot
         EStr + new procedure, CharPos
         EStr + new procedure, NextCharPos
         EStr + new procedure, StripDoubleChar
         EStr + new procedure, SetCharPos.
                    (Average programming time, except LGrow: 4 minutes)

              # 3 downloads up till now.
         EDir # Decided to keep internal stringtype STRING, and a
                conversion from String to PChar in the conversion routine.
                A total conversion to fully string is very simple, and done
                in a minute. PChar's in the recursion routines is asking for
                trouble.
              + Got some parts of EDirTree working.

         EDat # Can't get Easter working. Code seems to be right.
              + Copied a translated Easter to PASASM, a unit meant for porting
                purposes.
2?-07-98
         EStr + RCharPos
         EStr + NextRCharPos.  ( 1 1/2 minute, close, but not good enough)

              # Decided to create a EPasStr routine, with the same procedures
                 as EStrings.  Experience with DirTree convinced me. Low
                 priority. Translate ELIb string procedures to Asm, and moving
                 them to Pasasm.
         EDir # Very weird bug in EDir code. Gonna try and see what BP says, but
                 I don't have BP here. I haven't used FPK specific code I think.

27-07-98 EDir # Problem pops NOT up in BP. NOT a problem in the source. Source
                 added to problems archive.
         EDir + Tree building part completed in BP. {$M} directive required
                 though.
         EStr + All procedures in EStrings renamed to P<procedure name> to avoid
                 clashes.
         EPas + LTrim.
         EPas + KillChar
         EPas + StrStr

----------
Release version 0.02, mainly to publish a source which shows a possible bug
                        in the compiler on the net. (DirTest/EDirTree)
----------

         EPas + RTrim
         EPas + ReplaceChar
         EPas + KilLBChar
         EDir + FileScan compiles (under BP), but is still untested.
                 I tried to port Indexer, but since it won't work on
                 VFat drives (without some Dos7 support)
         EPas + StripChar
         EPas + KillChrTot.
         EPas + StripDoubleChar
         EPas + CharPos
         EPas + RCharPos
         ELib # Cleaned ELib. Removed procedures made in assembler, moved
                 ELib.Item to EPas.
         EPas + Item (Moved from ELib) for charsets.
                New Item (overloaded) for only one char.
         EPas # Make a ItemS version?
              + Done, ItemS version.

              + New file FileFind.pp, demonstrates EDirTree.FileScan procedure
         EDir - EDirTree operational. But still doesn't compile under FPK, only
                    BP.

--- Version to Michael van Canneyt, zipped with bugreports.

         EPas + ItemS to CHARSET-Item.
         EPas + RGrow
         EPas + NextCharPos
         EPas + CharPosSet.
         EPas + NextRCharPos
         EPas + LGrow
         EPas - Initial EPas ready (all EStrings procedure translated)
         EStr + PCopy. Like copy for passtrings, copy a number of characters
                    starting at a certain position to another string.
                  Should be done in assembler.
         EStr + Item procedures for PChar, name PItem and PItemS
         EStr + PCopy redone in ASM.
         EDat + DaTiToStr. Very flexible dateformatting. Pascal Version
         EStr + GetBetween ported
         EPas + GetBetween ported

              # All major string routines ported except the various VAL and STR
                 primitives (numbers to strings or vice versa)


----------
Released version 0.03, contributed package to FPC contrib. units list.
----------

31-07-98
         EDir * Bug in EDirTree fixed.
         EPas,EStr and EDat + Busy changing procedures to full assembler
                              procedures (tighter, cause compiler generates
                              extra leave and ret). Compiler still generates
                              ret. Removed the rets from the procedures and
                              let the compiler handle it.
              / Started writing a manual in HTML. Ugh.
              / Initial page for EDate finished.
              / Started making a EWindow page. Copied some text from
                 xtdlib.txt.
              * EWindow.WinClose was faulty declared. It should be a VAR
                parameter, corrected.
              / Initial page for EWindows finished.
              / Started making a EDirTree page.
              # Annoyed that there was no possibility to include an element
                in a set, I implemented INCL and EXCL.
                However, two kinds of sets exist, smaller than 33 bits, and
                33-256 bits. The first occupies a dword, the second 8 dwords.
                Made 4 procedures (INCL and EXCL for both situations)
              + ELib new procedures INCL32,EXCL32  INCL256, EXCL256
              / EDirTree page finished. Phiew, bigger than entire previous
                 (xtdlib.txt) documentation.
              % Dict was sometimes, sometimes not included with package. Now
                 it's default included.
              % Removed Pascal string and ELib procedures from Dict. Recompiled
                Dict. Didn't work. Weird bug, but the bug is BP compatible.
                CharPosSet returns now a word. A word was compared to -1 which
                failed. Corrected to 65535. Made it a constant in epasstr and
                estrings.

01-08-98
              % Fixed bug in DirTest. Probably caused by using pathstr as much
                as possible in the definitions.
              / Started and finished EStrings page.
              / Made a small EPasStr helppage. References to EStringspage, since
                 most procedures are the same, except for the differences between
                 PChar and Strings (1..x instead of 0..x-1, terminating zerochar)
              # Compiled all library-units with -va and removed all unused local
                 variables
              + More advanced detection in EWindow.pp. Will try EWindow on
                 monochrome screen tonight.
              # According to Michael FPK supports these operations via INCLUDE AND
                 EXCLUDE. Would be easiercause own procedures often need ORD or such things.

              + CHARSET is now only defined in ELib, but imported into the
                definition of EPasStr and EStrings
              # Compiled with -Ratt. Tons of errors (over 140). Will try to
                 remove these, but won't compromise the code.
              * BugFix EPasStr.Replacechar, test for empty string.
              * BugFix EPasStr.KillChrTot. Length was badly updated and
                 early out (jecxz) pointed to label in stripchar.
                 Change to ATT syntax would solve these kind of problems.
              + Rearranged all local labels in EPasStr to .Llocal labels,
                 suitable for ATT syntax. No more bugs found.
              % Played with Dict a bit. (mainly the charsets that control
                 extracting words from textfiles) Commented out neat deletion
                 of tree. Was very slow for huge trees, and useless.

-----------
Version 0.04 released
-----------

              # Updated version number in xtdlib.txt
              # Added pics(HTML manual) to distribution


-----------
Version 0.04b released
-----------
              +  new procedure epasstr.compare.
              *? New snapshot won't understand definition of addaddr
              *? New snapshot won't compile anything -Ox, removed it from
                  compile.bat
         EPas - Pascal versions of all EPasStr routines, with some conditionals.
                 Compile ASM=i386 (global) AND UseAsm(per unit)
         EDir,
         EPas,
         EStr * Appendbackslash and other procedures use / under linux.
All assembler
       units: * All new snapshots have a different way of handling ASSEMBLER
                 procedures; some equates are needed now, see unit headers
                 and syseq.inc
         EPas # Rough concept of Compare procedure working for pas-strings.
         EStr # Fixed EStrings to be more AT&T (-Ratt) compatible.
         EStr + Initial version of StrDelete. It worked right the first time.
                 I can't believe that, since it's quite complex. Tested 10
                 minutes with all kinds of weird strings, but couldn't get it to
                 fail. But you will probably get a failure the first time you
                  run it:-)
         EStr - All pascal equivalents for EStrings, including EString only
                 procedures PCopy and StrDelete implemented.
         EStr + PUpperCase and PLowerCase
         EPas + UpperCase and LowerCase
         EPas * Appendbackslash had a bug in the Linux-conditional code, a
                backslash was still appended.
         EDat * Fixed bug in ToUnix. ToUnix heavily tested and OK. FromUnix
                still bugged. (one day off, except round newyear, and the 29th
                of februarty)
              # general : fixed some small things (case-sensitive filenames) to
                 be able to compile the routines for Linux.
         EDat * FromUnix fixed, DayNrBack fixed.
----------------
Version 0.05 released
----------------

         ELib + WrHex and WrLngHex. With F : Text overloading.
         Othr + ECrc32 created, and working for assembler.
         Othr + ECrc32 Pas-CreateCRC32Table
         Othr + Ecrc32 other pascal routines working, except calccrc, problems
                 with open array parameters.
              + FrameStack variable now autoset by compiler-version-test
         ECRC - ECRC32 finished (help written, with tested example.
                Several problems, only assembler version works, only with
                the old (may) release, not with snapshots. Two problems with
                open array parameters.
         ECRC - ECRC32 completely finished. Stupid, asked Michael the same
                question twice. (Pascal working)
         EDir * Implemented Findclose, only for Linux, compiles and works under
                 Linux.
         ELIb + Some conditionals to ease compiling under Linux. (around uses
                 go32 etc)
         ELIB # ELib is partially intel-only. I should remove all doubtfull
                 procedures to a different module, and keep ELib clean, since
                 it's imported by a lot of other units.
              # Complib doesn't try to compile EWindow under linux.
              + ArchiveMethod implemented, most common filetypes except
                ARC ARC+ HYP and PAK.

12-08-98 EFIO,
         ELib - Moved all filehandling routines in ELib (WrHex,FileExists and
                 ArchiveMethod) to newly created EFIO.
         EFIO + Extension procedures.
         Docs + Help made for EFIO
         EFIO + DelDir command (DelTree Dos-command, RM -RF), based on
                EDirTree.FileScan, but standalone.
         Docs + Help made for DelDir
----------------
Version (snapshot) 0.06 released
-----------------
         Docs + Internet link didn't work. Fixed.
         EFIO + Small bug in EFIO.DelDir, backslash appended to path troubled
                 removal root-dir (the parameter of Deldir). Grr, found the bug
                 before the release, but forgot to copy it from the work to the
                 archive directory.
              # Libraries are getting BIG (33k with -O7a). Hope that smartlinking
                 will be implemented soon, or I'll be generating 200+ kb exe's
                 in a few months.
         EPas + New procedure, CommaStr
         EStr + New procedure, StrInsert
         EStr + New procedure, PCommaStr
         EStr + updated help for StrInsert and PCommaStr.
         EDat # Downloaded Brad's Dos101p.zip. Contains Julian routines.
                Interesting.
         EWin + More work done on Linux-implementation
         EWin - COMPILES UNDER LINUX!!!!!!!! (with slightly modified CRT)
         EWin % Windtest compiles (after commenting cursoroff section)
                 Shows a lot of garbadge. Frame is not intact (other charset
                 probably) Don't know where garbadge comes from. Window
                 command seems to work.
         EWin - Compilation under BP succeeded, the title-pointer problems
                 (runtime error 204) start a bit earlier now, but this is
                 probably the result of different memory lay-out.
                 All it took was a simple unit with alternatives for Go32
                 procedures. and a bit conditional code in syseq.inc and around
                 uses statements. Also things like A:=ReadKey(); had to be
                 changed to A:=readkey;            Only real problem was that
                 GetKey doesn't seem to work under BP, as I already noticed
                 before. Keypressed doesn't seem to work.
         EWin * Fixed some of the PChar bugs. BP runs without problem, FPC
                 keeps runtime error'ing (204)
         EWin # Bug in FPC has probably nothing to do with the title PChar.
                 If one comments out SetTitle, it still happens, but at a
                 different location. Some dynamic variable is allocated to
                 small, or to much data is written to it.
         EStr,
         EPas + ExpandTabs implemented. +Help.
         EPas * Fixed small bug in Expandtabs.
              * And LTrim. Maybe I should check all early routines for empty
                strings.
-----------------
Version 0.07
------------------
         ELIB + Removed set procedures from ELib. Moved them to obsolete.pp.
         EPas,
         EStr + New procedures(p)BinaryToString. Brads routines gave me the idea.
                My own are a bit more generic. Brad only implements 8 bits
                numbers, and combines several ones to a sting.
                I've one generic procedure, which does 0..32 bits.
         EPas,
         EStr + New procedures StrToBinary. Exact opposite of BinaryToStr.
        SYSEQ + Conditional which turns off assembler automatically under BP

         ECrc32
         EStr,
         EPas + Added some conditionals (overloading), and defined
                  CARDINAL=LONGINT (in syseq if turbopascal is detected)
                 All three compile under BP!
                  Haven't had a chance to test them.
         EWIN * New shapshot showes weird bug in WindTest (round hide/unhide
                 proc)
                Also BP version runs without problems
              # Removed TYPE CARDINAL=LONGINT from syseq.inc. Gave problems
                 with some modules USE statements.
         EPas,
         EStr + HexToStr,StrToHex, OctToStr and StrToOct.
                    EStrings reaches 1900 lines now.
              + Added BPgo32 to the package.
         EFIO + Fixed bug in extensionpos
              + DayNrBack pascal equivalent.
              + WrOct/WrLngOct WrBinary/WrLngBinary.
              + Changed frame to window.
         EPas * RTrim fixed.
         EPas * Bugs in LTrim, Item (char variant) and StripChar fixed
         EFIO + Added GIF, LBM, PCX and WAV formats to archivemethod.
         EFIO + Added BMP.
         EStr # Probably ItemC is bugged in EStrings too.

-------------
Version 0.08 released
-------------
         Docs + Added filelist to HTML docs, and cleaned up xtdlib.txt
         ELib + New procedure ScanR, pascal equivalent for FillCard created.
         Docs + Changed FPK to FPC in some HTML's and in GIF logo.
         Ecrc + Problem with Crctab solved by putting back the -Rdirect syntax
                 Mailed Carl Codere about it.
       syseq/
       EdirTree
       EFIO   + Extra conditional CloseFind, TRUE under Win32 and Linux. When
                 True, each FindFirst is countered by a findclose.
                 Maybe should be always true except under BP? (In future, maybe
                 the LFN system will require FindClose under Dos)
       License+ Added a slightly modified version of the FPC-copyright rules.
       EDate  + Fixed a bug in asm-Easter. Easter now works better than the
                 Pascal version, which suffers from a bug in -O2 optimalisations
       ECrc32 + now works under newer snapshots. Requires uppercase labels now?
       EStr   + PCompressTabs
       ELib/
       demos  + Quickly ported KeyTest, program to easy find GetKey constants.

              + Updated some batchfiles with new smartlinking, tested compiling
                the lib.

-------------
Version 0.09 released
-------------
        LZH   + Replaced all Pred and Succ commands with x+1 and x-1 in LZH.PAS.
                 Now it seems to work. Played a bit with the assembler version.
                 Tested for big-program problem. Lzhtest hung itself. Picked
                 other version for swag, redid the SUCC fix, now it works.
        LZH   # Working on asm version is a bit useless, since of the assembler
                 problems of FPC. Assigned low priority. Wanna see a profiling
                 first anyway. Workarounds suggested for ECrc32 are useless or
                 contra-productive for LZH.
        Demo  # Retested FindArch on windows directory. No problems with
                 swap-file anymore. LFN FindFirst probably solved this problem.
        EDate * Fixed asm-WeekNr, Carl-Eric Codere fixed it while looking at
                 one instruction only. Thanks!
        EFIO  + WrStrAdj
        Demo  + New demo, Indexer. Rough core stands. Requires some
                 modularisation(multiple input and output sources) and options
                 (like everything in LFN format, include/exclude options and the
                 possibility to put the generate index on a different path/drive
                 (for indexing CDROMS))
        EDir  # Edirtree now severly needs expansion. The expansion I planned
                a long time. An extra typeless pointer in DirTreePoint and
                FilePtr, which can point to a custom record, and support to
                fill it, and to match it (ScanTree).
                Maybe implemted via Select? Select returning a pointer to
                the record?
        EDir/
        syseq + Findclose turned on for go32v2.
        BP
         compability + EPasStr, EFIO and ELib compile under BP again.

21-9-98
              # Played with Cookie. Phew, hard!
              # Evaluated Michael's/ Marco Schmidts documentation unit PASDOC
                Has a good system, but needs some work to become usable for big
                 projects. (Read: more than one unit).
      EWIN    * Added a ANSI code to EWindow, which should select the IBM charset
                 under Linux.

05-10-98      + Added some files (including an example Linux Crt.pp file) to
                rtldevel directory.
              # renamed rtldevel to devel
              # Tried to prepare a release. Can't compile EDATE.pp because of
                imul problem.

  !!!!!!!!    # I was poking around under Linux with a new snapshot, and the bug
                 in EWindow has disappeared! Both in the Dos as the Linux
                 version. Now fix the linux version, and another real lib is
                 working:-)

         EWIN + Initial EWindow.WrapWrite and EWindow.WrapWriteLn.
                 Roughly implemented, sometimes a word should have fitted on
                 the last line, but is wrapped anyway.
         EWIN + WrapWrite(Ln) always writes to topwindow (no wintype as
                 parameter anymore), slightly improved behaviour.
         EWIN + Decreased Multiplyer for Dos.
         EDAT # EDate assembler has still problems with asmmode.
                 Problems are again in calling other functions or constants.
                 Reverted to pascal for now. People don't even react anymore
                 when I ask questions about it in the maillists.

-------------
Version 0.10 released
-------------
          EWIN # Thought about a new EWindow system. Two possibilities,
                  1  current method, but only for a part of the screen.
                  2  Smarter but more difficult approach which using a
                      top to bottom WindowList.

                I'll implement 1, and when that's stable I'll make a copy of
                ewindow.pp (as reserve, and stable intermediate), and try to
                implement 2. In the docs I brainstormed about 2.

          EWIN * Small bugfix. Temporary redrawscreen
                  doesn't crash anymore but still trashes screen.
          EWIN * Again bugfix. Temporary redrawscreen still isn't
                  100%, but now at least it's 90% :-)
          EWIN * Again some bugfixes. WindTest works.

          EWIN + New optimalisation for Linux version. Impressive speed now.
                 Seems not slower than Dos-version, except when animating with
                  winmove.

          EWIN + Small optimalisations and clean up. Threw 150 lines old code
                  out of the unit. Only 1 1/2 os-dependant procedure now.
                  (WinFrame is os-independant now, frame is set up in buffer,
                  and winbuftowindow is deleted, and replaced by redraw)
               + Linux version no longer needs ttycol moved to interface
          EWIN # Beta to Peter Vreman for Linux-Crt development
          EWIN + Expansion of WindTest.
          EWIN + Small fixes in BP-compatiblity.
          EWIN + Patched EWindow for a beta version of the Linux Crt, sent to
                 me by Peter.
          EWIN # Expanded WindTest, and Run-time error 204 is back :-)
          EWIN * Started looking for a problemspot, and found the bug!
                  Runtime error disappeared again, and I think forever!
                  (Spare was added twice to a freemem)
          EWIN + Windtest expanded to create 100 windows. Worked fine, 1 1/2
                  second or so.
          EWIN + Blended old and new version of EWindow (old and new Linux Crt)
                  using a new conditional oldlinuxwin, which is automatically
                  set for 0.99.8 and older, and cleared for 0.99.9
          EWIN + More comments, and retested under BP.
          EWIN + Combi overlap implemented (when a procedure has to redraw
                  two rectangles which overlap, the overlap is only written
                  once)
          EWIN + Windtest, patched it to have three digits in the title
          EWIN + 500 windows windows tested with windtest in delay-off mode
                  works fine, takes 5 seconds or so, but flickers a lot.
          EFIO + Fixed Append problem with EFIO procedure. The alternative was
                  too long to be inlined.
          EWIN + Implemented first rough coordinates checking.
          EWIN #! WindTest dumps core under linux, in WinOpen?
          EWIN * Fixed core-dump.  Made a mistake while blending both working
                  Crt examples.
          EWIN + WinType and coordinates checking now governed by conditional
                   WindowCheck.
          EWIN * Bug/limitation with Linux. Terminal drivven IO doesn't allow
                 write to position Width,Height. I expected it, but it was
                 never crucial since my terminal runs in 80x50, while the
                 old Crt only supported 80x25. With the new Linux Crt however,
                 things are a bit more problematic. I fixed Windtest random-
                 screen routine so that the problem doesn't show, update
                 the docs, and ask for help in maillist.
          EWIN + Windef checking in Change().
          EWIN # Linux retest. Without ANSI codes it works fine. If I turn
                  ANSI codes on, EWindow exits with errorcode 4 (corrupt
                  window-descriptor).
          EWIN + Updated manual.
          EWIN + The default errorhandler returns a errorcode 64+Winerror.
               # Making the XtdFpk smartlinking on my PC (Cyrix P166+) : 20.3
                  sec.
          EWIN + Buffering implemented for Dos. UpdateScreen contains less
                  conditional code now. Flickering is only slightly less,
                  the "problem" is probably the Use command when closing the
                  window(forcing the window to be redrawn) and the large
                  average size of the random windows. (redraw 5 windows, and
                  the entire screen is redrawn). Nothing can be done, except
                  putting a delay or so between Use and WinClose. Is also
                  only visible when opening,using, closing a lot (>50-100)
                  windows without any delay.
          EFIO + New procedure MkFullDir. (Create directories at once)
          EWIN # Windtest works with (-O3).
               # Complib.bat changed to create one PP.
               # Batchfile makedemo doesn't work right after upgrade.
                  Most exe-files have the same size, when executing
                  nothing happens.,
         EFIO  + New procedure Touch.
         ELib  + Dummy procedures MAX for standard integer types.
         EPas  + Problems with standard procedure Insert. Added a character
                 variant to EPas temporarily. Not in help.
         Keys  + Fixed some keyconstants. Had to be renamed due to import
                  behaviour pascal (everything imported visible everywhere) and
                  case-insensitivity.
         WPr   #! WinProc compiles. (Generic unit using windows, pop up window
                   with array-editting and selection)
         WPr   #! QuoLocal compiler (part of QuoSetup, a simple application
                   using WinProc and EWindow)
         WPr   #! QuoSetup compiles. Some parts work. Have to make a converter
                   for Quo.Cfg first.
         WPr   #  Quosetup size (smartlinked) is about 30k. Only 6k more than
                    TopSpeed variant.
         WPr   *  Debugged InputStr. Only "text disappears on first key" doesn't
                  work
         WPr   *  Debugged Selector and QuoSetups loading/saving of the array.
                   Now only the array-editting.
         EPas  #  Bug in Insert in RTL fixed (+/- 20 oct). Keep EPas version
                   for 0.99.8 compability.
         WPr   #  QuoSetup works. Not perfect (specially the fact that
                  write (a:X); for negative X doesn't work as in M2), but those
                  things are more cosmetic, and not in WinProc but in QuoSetup.
         WPr   +*# Problem fixed. Textual constants couldn't get bigger than
                    255 chars. Only workaround is using a resourcefile compiler.                    I changed the RTL's (rtl/util) msg2inc a bit (allowed
                    \oct binary codes), and these changes will be committed by
                    Peter. For 0.99.8 compability, I will add modified msg2inc
                    to the devel/ directory.
         WPr   #  EditRecord should get a ElseProc.
         WPr   *  Several small bugs fixed.
         WPr   +  Created help, added all types to the help, and some procedures.
         WPr   +  Added {$IFNDEF Linux} conditionals around SetCursorSize in
                   WinProc.

-------------
Version 0.11 released
-------------
         WPr   # fixed for Linux
         Edate + Seems to work for new compiler. Runtime error 204 (division
                  by zero) though.
         EFIO  + MkFullDir seems to work now. Only things FExpand can't handle
                  are problematic.
         EDate # Msg from Peter. New snapshot should fix AT&T problems.
                  Compiler GPF's if I try fixed source with current snapshot.
               # Decided to create a release branch for next full release,
                  currently 0.11 compiles on 0.99.8. Works also I think for 99%.
         WPr   / Worked on WinProc Help, finished.
         WPr   # Simple waitfor retrace inserted in WinProc.
               / XTDLIB.TXT documentation discontinued.
         Batch # Batchfiles were 4Dos only. Fixed.
         Batch + Makefile system. Still buggy, but has the future (system-independant)
                 Problem except some buggyness is how to implement compiling of
                 the redirection files. Cat?
         EDos  - New unit EDos. For Dos specific calls.
               + EDos.GetSerial, EDos.GetVolume, EDos.GetFileSystem.
               + EDos.GetVolume now also works for CDs.
               + EDos.GetDriveType
               % Removed EDos procedure from DFree
         EDos  / Wrote a helppage.
         EDos  + Enhanced DriveType to handle all drive-detection. Pretty safe
                  now.
         DFree + Put above change into DFree. DFree is now more flexible, and
                  smaller.
         EDos  + Implemented TRUENAME
         DFree + Uses truename to detect substed path.
         EDos  + GetShortName, GetLongName, SubstExpand.
               # Recompiled to test BP-compatness.
         EDos  + GenerateShortName,WinVer,GetSwapData

------------- 10-11-98
Version 0.12 released.
------------- Downloaded 11 times in 13 days online.

         EDat  # Problems seem to be fixed with newer snapshots. Assembler seems
                  stable and is activated for 0.99.9.
         EDos  + EDos.GetCMOS.
         Sys   % Create Sysinfo. Should demonstrate all sysinfo'ish information,
                  including FPC RTL's owns
         EDos  / EDos.GetCMOS
         EDos  + Installed
         EDos  + TestUART
         Sys   % Sysinfo updated with EDos.Installed and EDos.TestUART
                  demonstrations
         Lzh,
         DFree # Removed some -S2 incompabilities.
         EDos  + NrFixedDisks
         EDos  + LastDrv
         EDos +/ NrDrives, but this one always returns 32 under Win95m and all last three
                 in eDos help.
               # Recompiled everything with hints, and removed all unused local variables.
               # $Mode FPC in syseq.inc to avoid problems with people having default -S2 in their ppc386.cfg
         Cdsiz % new demo, cdsize. Also the most used util. Used to estimate
                  size of directory(or more than one) on harddisk, with a user
                  defined clustersize. Handy to get cd's as full as possible.
         FileF % GetOpts working. Works nice. Removed myopt.pp from distr.
         DFree % Small bugfix, Z: wasn't scanned.
         Sysnf % Drivelist added.
         CDsiz % Updated CdSize. More robust and more functionality than
                  M2-original. Requires fixed FExpand to be stable.
         DFree # Doesn't require -RIntel anymore since assembler has been moved
                  to EDos.
         Estr  / Fixed bug in EString manual.

------------- 23-11-98
Version 0.13 released. (Release for friend)
------------- Downloaded 13 times in 15 days.

        BPGO32 + added outportx and inportx procedures.
         Voxel % Working under both FPC as BP.
       EPasStr - Got a Ansistrings test-system working. Implemented a lot
                  routines overloaded in EPasStr. In fact all procedures
                  except itemx and Compress/ExpandTabs.
               * Made small adjustments due to further explanation of
                  AnsiStrings (by Michael van Canneyt)
               + Ansistring versions of ExpandTabs (posted to Devel list), and
                  Item and ItemS. Everything is implemented except compresstabs
                  (Both Pascal AND ANSI) and Item(char)
               / Finished EPasStr help.
               * Fixed edate with NOATTCDQ
          EDos + IsDevice.
          Docs / Renamed all occurances of FPK to FPC.
          EPas *+ Ansistring ItemC is still buggy. Don't know why. The program
                  is stable with a writeln in it, unstable without it.
          EPas + Pascalstring CompressTabs
          EPas + AnsiString CompressTabs.
          EPas + Asm versions for all AnsiString Pos versions except NextCharPosSet
          EPas + PascalString NextCharPosSet.
               # EPasStr needs severe updates/modernisation. It is still written
                  for direct assembler instead of ATT. Removal of framestack
                  (readability) and replacing parameter references with x(%ebp)
                  (readability and better aligning.
               + Removed all framestacks. File got 4k smaller. 0.99.5 compability
                  is now entirely killed. They'll have to Undef UseAsm.

------------- 9-12-98 downloaded about 78 times in about 30 days. Probably
                       higher because of Christmas holiday and 0.99.10 release.
Version 0.15 released. (Please don't ask what happened to 0.14)
-------------
               # Completed subsituting varnames for %ebp parameters in EPasStr.
               + Worked on the makefiles some more. Adapted the batchfiles which
                  roughly prepare a release to auto-hardtab and crlf2lf
                  makefiles, so that I don't have to patch the makefile by hand
                  under Linux.
               # Removing framestack and substituting of varnames for EStrings.
               #/ Playing with Tex documentation. Plans are getting shape, but
                  there's still a lot work to do.
               *% Fixed stupid bug in Sysinfo, updated sysinfo with some PCI-info
                   I got from Alexander Stohr
               % Extended PCI info in sysinfo with names of PCI boards, copied
                  from Linux kernel source.
               # Edate removing Framestack and subst of varnames for EDate
               ! Asm version EPasStr.CommaStr doesn't work.
               / EPasStr TEX docs ready.
               + Lists.pas, from Brad Williams TLDOS. I'll spent more time on
                  TLDOS now I understand OOP.
          EPas + EPasStr.RPos, pos from back of string
          EPas + EPasStr.Inverse. Inverse (first character becomes last ch)
                  string + ASM version.
               # 0.15 download rates very high. 70 downloads in half a month,
                   people are even sending me contributions?!
          EPas + EPasStr.ReplaceLast. Replace starting from the back of the string.
          EPas + Updated Replacelast. Removed Delete/Insert procedure, replaced
                  with faster combination.
          EPas + Added Replace. Simply replacing RPos with Pos :-)
          EPas + CenterString based on LGrow and RGrow.
          EPas + Assembler RPos$ShortString, temporarily with mangled name.
          EPas + Added optimized RTL procedures Insert and Pos to EPasStr.
         (Epas # commented own Insert procedure because of overloading problems)

------------- 10-01-99  downloaded 57 times in 25 days.
Version 0.16 released.
-------------

          EPas + Added simple basicprocedure MidStr,LeftStr and RightStr.
          EPas + Added Slice.
               # New dirstructure. Demos moved to directory demo, simplifies
                  package batchfile, and makefile-system
          EDir # EDirTree seems not to work anymore under Linux.
          EWin # Garbadge when used smartlinking. (Fixed after cleanup except
                                            for shared lib)
          EDir + Fixed EDirTree problem. FPK switch is depreciated, changed
                  to FPC.
               # Added shellscript which cleans linux makefiles with CrToLf.
                  (including depend and makefile.fpc).
               # Removed fexpand.inc and speccrt from the distr.
               % New demo Simcrypt.
               / Added a links page to the docs. 15k links.
          EDir # After a message in FPC-Devel, I found out why I have problems
                  with FileFind. Wildcards have to be quoted under linux,
                  otherwise they will be expanded by the shell.
               %* FileFind patched for above problem, and fixed a small bug
                   which appended a '5' after the number of files. Also redid
                the Usage part a bit. (no "short" filenames option under linux)
               # High downloads 37 times in 16 days.
               + Fixed SimCrypt to untyped file to get some speed-increase.
               % updated devel/pcidata.txt from kernel linux-2.2.0pre7
               + Created EDirGlob (though not added to the package yet), mainly
                  because some problems. Sent to Michael, he has more linux
                  expertise.
      EDirTree * Added some Assigned statements here and there in EDirTree.
               + Create fixmake, because crtolf doesn't work (tabs everywhere,
                 not only first spaces).
               * Some bugfixes to CrToLf. Seems to work now. Also changed
                  /T behaviour, now tabbing is default off, and /t turns it on.
               # Find4dos works now (NO GPF anymore). So it had to be a bug in
                  the assembler or so?! Now only the point problem ( *ll.txt
                  doesn't match oo.ll.txt)
     EPasStr   + EPasStr.Match. Finally a string matching procedure.
               # Find4dos has a severe bug (probaly in the algoritm).
                  1a2a3 doesn't match *a3,  1b2a3 does. Canceled.
               # Movement on the docs part. A new Latex2Html compiler compiles
                  some of the docs. Now I'm waiting for Michael who will fix the
                  styles for this version, and then we can REALLY start generating
                  tex docs. (Maybe I'll fix a epasstr version by hand, since it's
                  readable).
               # Changed license to LGPL to match Thomas' license
               - Added some of Thomas' units. Fixed the manual main page for it.
               + Fixmake working. Made also batchfile for Dos.
               # Makefile running again (with Thomas units addition), both Go32V2
                   and Linux. Under Linux however, none of Thomas' units are
                   compiled. Also no error under Linux in demo dir.
                   (Voxel,sysinfo). Disadvantage : manipulated makefile.fpc.
               + Old dos compile batchfiles deleted.
               # Tried to emergency patch the TEX manual, but it failed, old
                    manual included

------------ 4-2-99     downloaded 57 times or so
Version 0.17 released
------------
               + Data2inc, a simple binary to ARRAY OF CHAR converter.
                  Working with Data2Inc is slightly simpler. Also allows binary
                  objects to be translated to ARRAY of CHAR or ARRAY OF BYTE.
               # Removed msg2inc from the distribution.
               + Updated Data2Inc with a DATA basicish statement. Translated
                 Quodata.txt to new format as newquo.txt. Sent a copy to Peter.
               # Cleaned /xtdfpc/devel/ directory a bit, tried to update Thomas'
                  routines, but his page was unreachable.
               # Updated Toms units from site.
               # Added Brad Williams TLCACHE.PAS as cache.pp (replaced all
                  integers and words with longints)
               # *.A size : 463k..... (RTL: 800k; FV :1600k)
               + EWindows uses ErrHndle.
               # Ran EWindows with Heaptrc. No memory leak.
               # Ran EDirTree (plain variant, not treebuilder) with Heaptrc.
                   No memory leak.
               * I think I found a definite and specific patch for the
                  rootdirectory problem of EDirTree. Indexer now works nicely
                  on CDs (or in roots of hds) too. Trick is non-existance of
                  "." directory in roots. Fixed by returning an empty searchrec
                  IF target='.' and '.' doesn't exist in this directory.
                  The nice part is that the patch is hardly triggered. Only when
                  target is "." like Indexer does. Will have to retest on Linux
                  since this is a bit specific for Dos.
               # Still problems with CONSTant AnsiStrings and move commando.
                  Posted source to fpc-devel. Backuped source and removed
                  CONST from some AnsiString procedures.
               ! Data2inc still buggy without writeln's with new snapshot.
               * EDirTree; '*.' as filespec replaced by '*'
               - ODirTree; MFWOOPP (My First Working OOP Program).
               % New demo OIndexer :-)
               % New demo odirtest. OOP dirtest program.

      ?-3-99   - Simple MP3 detection and TAG read/write unit.
               * Fixed bug in NextCharposSet. Main problem(hangers) of
                  Data2Inc now solved.
               * Fixed other problem Data2inc. Last argument data line was
                 sometimes ignored.
               # started packaging 0.18
               # Updated Tom's stuff. Still same version (early februari)
               * (small) removed some debug writeln's from data2inc
               ! Snapshots no longer compile. The last snapshots that compiled
                 GPF'ed when compiling odirtest or oindexer. Release postponed.

------------ 13-3-99
Version 0.18 released.
------------
               / First PDF manual created. EPasStr and EFIO.
                  Some small problems(linking to reference manual procedures),
                  and one main (where are the indexes?)
               * Fixed problem with ODirTree, with help of Peter,
                  recent compiler-snapshot also don't have the problem.
               # Updated Thomas' routines.
               / Fixed some manual problems. Tables are still ugly, but it looks
                  better, put them on web as 0.18b
               # First linux test in months. Seems ok, everything compiles.
               % Tag2File, opposite of File2tag. Only semiautomatic (does not
                  rename itself, but outputs batchfile). Also handy because of
                  the fact that there is no good solution for the songnumber.
                  Mosttimes it will require a column copy from the old names to
                  the new.
               % Odirtree demos moved from nonlinux to generic part in makefile.
               # Applied small update for Thomas' routines.
               / Huge advances in manual. Linked it with units.pdf. zipped 1.2 MB ;-)
               + Translated CHRLIB to FPC, and mailed it to Thomas. Thomas wanted to
                  merge it into VGA4. I allowed that, since the unit doesn't fit in with
                  the rest of XTDFPC. I got permission to distribute VGA4 with XTDFPC
                  anyway.
               # Small fixes to odirtree. Cdsize still doesn't work on root dirs?
----
Long 3-4 months break, bugfixes and (quite large) 0.99.12 adaptations not logged.

Some of the things done:
- Ecrc32 got some adaptations to be usable with PasZlib. Definition is the same I believe

----
      24-07-99 # Thinking about repackaging and releasing a fixed 0.18 as 0.19.
                  Fixed as in working with 0.99.12b. Most units are already
                  fixed.
          EPAS + The often used(by me) procedure Item isn't usable anymore in a
                  lot of cases because spaces are often both separator and
                  inside the items (in quotes), due to e.g. LFN.
                  Started to create another procedure in the "Item" series to solve
                  this. QItem (quoted Item) seemed a good name. QItem works, but
                  requires separators between the items. "AAA""bbb" and aaa"bbb"
                  aren't possible, or insecure.

