Ver 0 Rev 01  (09.01.1998)
    first alpha version showing just the API for testing... (3 months)

Ver 0 Rev 02  (03.04.1998)
- IMPORTANT: CreateIDC tags added: IDC_APPNAME, IDC_APPNAMEVERSION, IDC_APPICSVERSION
- IMPORTANT:Do not prompt errors reported by ICSErr() with ID <= ICS_ERRMSGLIMIT
- ICSStatusWin() added
- CreateIDCTransform() does support most ICSStatusWin() tags
- ICSStatusWin and SetupIDCColorMatching accept NULL as default public
  screen pointer.
- TLC function added
- gamma function added
- RGB->CIE Lab conversion function added. Note you must have a valid
  scanner profile in ENV: or this function will most likely prompt an error.
  Use the provided ENV:ScanData file.
- ICS_ScanTLCGray, ICS_ScanTLCRed, ICS_ScanTLCGreen, ICS_ScanTLCBlue tags
  added to CreateIDCTransform().

Ver 0 Rev 03  (18.04.1998)
- Tag values have changed requiring you to recompile your app!
- SetupIDCColorMatching now returns uint32_t instead of BOOL as indicator
  of what the user changed in the prefs window. You may now keep your
  transfer function during SetupIDCColorMatching and only free the
  transfer function handle if the user did alter the settings.
- It's your responsibility to not use the
  returned LUT tables by CreateIDCTransform() if ICS is switched
  off by you later on. Use SetIDCMode()
  to check if the ICS mode is off.
  So only use the tables if ICS is enabled during
  the TranslateColors() call.
- All IDC_APP* Tags for CreateIDC() have been renamed to ICS_APP*.
- ICS_TextAttr and ICS_Screen tag added to CreateIDCTransform(),
  SetupIDCColorMatching(), ICSStatusWin().
- ICS_StatusActivate tag added.
- SetupIDCColorMatching() is now 99.9999% functional...
- Profiles are now located in the ICS_PROFILE: drawer...

Ver 0 Rev 04  (21.04.1998)
- bug in library V0.03: Fixed crash/enforcer hits when calling
  SetupIDCColorMatching() twice (bad locale menu routine).
  (Andreas)
- bug in ics.doc V0.03:: CreateIDC() tags have been renamed to ICS_APP*.
  (Me+Andreas)
- bug in debug library V0.03: sorry, shipped V0.02 of the debug version with V0.03
  (Andreas)
- bug in SetupIDCColorMatching(): settings were saved to ENV:/ENVARC:
  but not copied to internal ICD struct for use by program.
  (Me)
- ICS_OFF now works and no TLC table will be provided.
  (Me+Andreas)

Ver 0 Rev 05  (01.05.1998)
- Important changes to TranslateColors(!). Requires changes in source
  (see below on what has to be changed in your source).

  - COLOR_UGRAY and not COLOR_GRAY is supported (my fault).
    Wrong ics.doc... just change COLOR_GRAY to COLOR_UGRAY in your source.
    Example source code was correct (I never checked grayscale calls so it was undetected).
  - Each element of the array pointed to by paInoutColors and
    paOutputColors is of the size specified by the ctInpout and
    ctOutput type. So when converting an COLOR_URGB array of 6 elements,
    the size of the array is assumed sizeof(struct URGBCOLOR)*6 and
    NOT sizeof(struct COLOR)*6.
    So, if you used nColors>1 in your source to translate multiple colors
    with a single call, you will need to change your source.
  - paInoutColors and paOutputColors may point to the same color(s).
    So you only need a single buffer if wanted.

Ver 0 Rev 06 Internal Version - not released

Ver 0 Rev 07  (07.02.1999)

-  BUG: Developer example code load.c called ICSStatusWin without TAG_DONE!!!!!!!!!!
        DEVELOPERS: Please check you do have TAG_DONE in your ICSStatusWin calls!  (10 hours)
       
-  BUG: Fixed a bug causing the setup gadgets to stay disabled after an error requester (2 hours)
-  BUG: Fixed a bug in the ICSConvert program (blue channel was overwritting green channel).  (10 hours)
-  BUG: ics.library: Enforcer hit fixed caused by checking if user
        aborted statuswindow with no status window open.  (10 hours)
-  BUG: Fixed a bug in the graybalance function (only affected
        the linearization table delivered by ICS if asked by the
        application).  (10 hours)
-  BUG: Fixed a bug causing small illegal memory access reading/writting user specified
        color data during TranslateColors() call. (14 hours)
-  Added: scanner data is now converted to PCS (XYZ or Lab) based on the IT target calibration
          (missing ICS_Profiles: assign) appeared during selection of a display. (150 hours)
-  BUG:   Fixed a bug in the Rev 06 regression routine (4/11/14/20 terms). (20 hours)
-  Added: Improved internal structure so ICC profile support can be added easily later on... (40 hours)
-  Added: Creation of gamma LUT for display is now checked for special gamma cases (1.0,...) 
          in order to increase speed during initialization until
          the routine can be optimized for more speed. (8 hours)
-  Added: CIE TC1-34 CIECAM 97s JCh/Jab color space/appearance routines added. (80 hours)
-  Added: RGB<->XYZ and XYZ<->Lab device depending conversion routines added. (10 hours)
-  Added: absolut colors are now converted to relativ colors
          until real gamut mapping is finished.  (200 hours)
-  Added: Cache with hash function added so that it only requires
          minutes instead of hours to convert a small(!) image. 3D LUTs are required
          in the final version for acceptable speed on any system. (10 hours)
-  Added: support for Kodak/Fuji IT 8.7 Targets (5 hours)
-  Added: new GUI/locale/startup code to ICSConvert and ScanTarget (100 hours)
-  Added: I have starting to write the user docs. Currently text based.
          (images/formating/style will be added later...).  (4 hours)
-  Added: Improved DPI support for PNG/IFF DEEP. (4 hours)
-  Added: Multiple transformation handles can now be created
          from a single IDC. Note: SetIDCMode() does currently
          not return an error anymore if you try to enable ICS with
          transformations linked to the IDC handle
          wich were created with ICS disabled. (8 hours)
-  Added: 3D/1D LUT routines are now used for faster color correction.
          The LUTs are only generated once for a settting and than
          stored on HD in the ICS_Profiles:ICS_CACHE drawer. (50 hours).
-  Testing: Basic functions and early performance testing (100 hours)

Ver 0 Rev 08  (04.03.1999)

-  BUG: An old LUT cache was used if scanner profile was overwritten.
        ICS did not detect the change of scanner profile and thus
        used the old LUT with the wrong color correction until user
        changed prefs causing the LUT to be recreated. (2 hours)
-  Added: Fine controls for monitor are now working.
          I would like to use CIECAM 97s Lightness/hue/chroma sliders
          but adding the user interface costs too much work currently
          on the Amiga for 5-10 users. Will add this feature in case
          there are more Amiga users. Not really important function
          as all color sliders should be set to 0 with correct ICS
          setup/environment. (2 hours)
-  Added: Support for CorelDraw 5 target added (shipped with
          some HP scanners) (3 hours)
- Testing: Further tests of calculated RGB->Lab function based on reports from KWLee (Primax).

Ver 1 Rev 00  (11.03.1999)

-  Added: Improved Installer script (now with ICS "Remove" option). (4 hours)
-  Added: New icons and software now generates icons. (12 hours)
-  Added: Improved error messages if no ref/target file was specified by user in ScanTarget. (1 hour)
-  Added: ShowManual program added with ICS user documentation (20 hours).
-  Added: Add Epson Color Ref Chart V1.0 calibration target support after measuring
          Martin Sprengers Epson Target shipped with GT 8500 (and shipped with GT 5xxx/6xxx?) (10 hours)

Ver 1 Rev 01  (17.04.1999)

-  Minor bug: SAVE flag might got set in ScanTarget filerequester. Fixed (1 hour)
-  BUG:  Kodak Dmin/Dmax values in references files were not read correctly
         by ScanTarget causing color faults in the final correction. Fixed.
         Thanks goes to KWLee (Primax) for finding this bug in the scanner profile. (8 hours)
-  Added: ICS now checks for scanner profile to be version >=2 (just to make
          sure everybody only uses profiles generated by the fixed ScanTarget V1.01). (2 hours)
-  Minor bug: NUMBER_OF_FIELDS was set to 9 instead of 4 in example IT 8,7 reference file. (1 min)
-  BUG:  A bug in the used AsyncIO library causes the GIF reading routines to crash.
         Switched to normal file IO until asyncio library got fixed by author.
         The bug mainly showed up with interlaced GIF images causing
         multiple SeekAsync calls (wich cause the crash in ASyncIO). (10 hours)
-  Added: GIF module now does much less Seek() calls causing a speedup. (3 hours)
-  Added: manual updated. (2 hours)
-  Added: Generation of the Scanner RGB->CIE Lab approximation now offers higher precission.
          The mean CIE Lab dE color fault is now below usualy below dE 1(!) and
          thus out of visible range. Maximum fault and standard deviation also
          got greatly reduced. ICS should now get close to other high end Mac/PC solutions
          as far as scanner characterization goes. (13 hours)
-  Added: The new Scanner RGB->CIE Lab function also offers more speed beside
          increased quality. There is even a speedup in the final generation
          of the RGB LUT during initialization of ICS. (6 hours)
-  Minor bug: Selecting a wrong file as reference file in ScanTarget could
          cause a large amount of requesters being displayed. Now
          a single warning with a final abort requester will appear. (1 hour).
-  Change: Now expires on 31-Aug-1999

Ver 1 Rev 02  (13.05.1999)

-  BUG:  The fix done for Kodak targets in ScanTarget V1.01 caused
         a crash when saving profiles for Epson targets (endless
         recursive loop until crash...).  (3 hours)
-  Minor Bug:  Fixed ICSConvert/ICSScan problems with IFF images
         that are roughly >30% larger than uncompressed causing
         the IFF loader to prompt an error 48 because of buffer
         underrun. (So far, the only program I know that seems
         to save such ugly files: Candy Factory Pro). (8 hours)
-  Minor Bug: flag field in bitmap header saved by ICSConvert may
         contain a non-zero value. Shouldn't cause troubles in
         this case. Anyway, now set to 0. (30 minutes)
-  Minor Bug: Error requester in ScanTarget showed wrong color names
         and order (ie. "GS22 darker than GS21" instead of "GS21
         darker than GS22"). (30 minutes)
-  Added: RGB->Lab function during creation of LUT now uses more fixed
         integer math wich should speed up creation of LUT especialy
         on non-FPU systems. (5 hours)
-  Change: Now expires on 31-Sep-1999

Ver 1 Rev 03  (23.05.1999)

-  BUG:  Non-FPU versions of ICS generated "white images" because of
         possible division by zero fault in XYZ->JCh/Jab color space
         conversion. Fixed. (5 hours)

Ver 1 Rev 04  (12.06.1999)

-  Minor Bug: ScanTarget and ICSConvert may used the wrong drawer
         for the preference file when starting from shell from a different
         drawer. As a result, the user does not get his
         last settings as default when using these tools from shell.
         (1 hour)
-  Added: Older ScanQuix V4 scanner drivers do request an unsupported
         color space (signed gray) when scanning in b/w mode.
         ICS now detects these older drivers and automaticly
         alters the color space from signed to the supported
         unsigned gray color space. This problem was and will
         be fixed by newer ScanQuix drivers. Check the RBM www site
         for ScanQuix updates. (1 hour)
-  Added: Older ScanQuix V4 drivers do request the 16 Bit grayscale
         linearization table from ICS for download to the scanner.
         However, the table is than not downloaded to the scanner
         nor applied by the ScanQuix driver. ICS now does not forward
         the linearization table to these old ScanQuix drivers.
         This problem was and will be fixed by newer ScanQuix drivers.
         Check the RBM www site for ScanQuix updates. (1 hour)
-  Changed: SAS/C Compiler settings changed for higher speed
         (~15% faster) and smaller files.
-  Changed: Now expires on 30-Dec-1999

Ver 1 Rev 05  (30.06.1999)

-  Added: Now available: cheap calibration targets offer for everybody!
          (30 hours)
-  Added: Support for CorelDraw 6 calibration targets added (4 hours)
          Warning: Some users did use Corel 6 targets with ICS <= V1.04.
                   This won't work, though there are no error requester
-  Change: Example target image removed because users without reading
          the manual used it for their scanner.  RTFM! (1 Minute ;-)
-  Added: Minor enhancements to the manual (3 hours)
-  Added: Support for Epson Calibration Chart Version 2.0 added
-  Added: ScanTarget now detects if user tries to calibrate
          with CorelDraw 5 mode and a CorelDraw 6 target.
          A warning is yelled in this case.  (2 hours)
-  Minor bug: a typo in the fax number listed in the registration form
          (my correct fax number as listed in other files is
          ++49-69-95409598)
-  Added: New monitor settings for Adobe RGB 1998, Apple RGB, CIE RGB,
          P22-EBU (=ColorMatchRGB), ColorMatchRGB, Wide Gamut RGB.
          These new settings are also typical PhotoShop RGB working
          spaces.

Ver 1 Rev 06  (04.09.1999)
- Changed: Mainly I rewrote some stuff in order to make the ICS source
          more portable:
          -  internal error structures changed
          -  ICS_StatusClose can now be called twice
- Minor bug: Fixed a bug with TIFF RGB files with more than
          1 additional alpha channel (saved by PhotoShop
          for instance).
- Added:  Support for TIFF LogLuv compression codec added.
- Added:  Support for images saved by Hemera products
          (NetGraphics and ClipArt CDROMs) added..
- Added:  Docs updated for ImageFX and Camera calibration
- Changed: Now expires on 01-Apr-2000



(End)
