FileCarver ReadMe

FileCarver is a powerful program for editing binary files stored in
arbitrary formats. Specifically, users can define various binary file
formats using XML definition files, which are loaded and parsed by
FileCarver when it starts. FileCarver then allows the user to open
existing files and to create new files in those formats.

FileCarver expects the 'definitions' directory to contain any file
format definitions that will be used. A few example definitions have
been included in that directory for your convenience. You can look at
these (they can be opened with any text editor), and modify them or
create new ones, in order to become familiar with how to use them. For
comprehensive information on everything there is to know about creating
file format definitions for FileCarver, please refer to the included
file, "Guide to Defining File Types".

Some example binary files have been included in the 'example files'
folder. There is one example binary file for each sample file format
definition that is included in the 'definitions' directory. You can
use FileCarver to open and edit these files, to get a feel for how
the application works.

For information on the latest version of FileCarver, please visit
http://fizzysoft.net/filecarver/. Additionally, if you would like
to contact the author with any inquiries, bug reports, feature
requests, or for any other reason, you may do so by emailing
alexei.svitkine@gmail.com.

Please note that FileCarver requires Java 1.5 or later installed
to function properly.


Purchasing FileCarver

When you first launch FileCarver, you are granted a 30-day free
trial license of the software. When the license expires, you may
decide to purchase FileCarver, which can be done online at:

  http://fizzysoft.net/filecarver/purchase/

After purchasing FileCarver, you will be automatically e-mailed
a receipt of your transaction. After we process your purchase,
you will receive a second email containing your registration
information, including a registration code.

To register FileCarver, enter your name and registration code
exactly as you received them into the registration dialog and
click Register. The registration dialog is presented immediately
when you open FileCarver if your trial has expired, but may also
be brought up from FileCarver's About Box. You must be connected
to the Internet to successfully register FileCarver.


Release Notes

Changes in FileCarver 1.5.3:
- Fixed bug with hidden string fields and newlines
- Fixed bug with activating minimized windows
- Fixed bug with flag-long fields
- Fixed bug with ascii-int combo fields
- Block fields will now preserve data past their end
- Added alert() / prompt() JavaScript functions
- Searching now starts from current focus
- Miscellaneous bug fixes and other improvements

Changes in FileCarver 1.5.2:
- Corrected another issue with array rowname evaluation
- Pasting into the data field hex editor is now faster
- Two new field types: zoned-decimal and packed-decimal
- Minor improvements to UI spacing and layout

Changes in FileCarver 1.5.1:

- Corrected issue with rowname evaluation on some arrays
- Fixed a bug with setting date and time field values
- Fixed an issue with JavaScript handling of large numbers
- Added ability to access field options with JavaScript
- Several minor user interface enhancements

New in FileCarver 1.5:

- Smaller memory footprint and better performance
- Numerous user interface refinements
- New hex editor control sporting many improvements
- Added an "Open Recent" menu listing recent documents
- Added display="text-area-monospaced" for string fields
- Ability to include XML from external files
- Ability to define re-usable types
- Support for a global script on the format definition
- Support for specifying custom input and output filters
- UTF-16 encoding removed in favor of UTF-16LE or UTF-16BE
- Added EBCDIC character encodings: Cp1047, Cp1140
- Various improvements to the JavaScript support
- Improved platform-specific integration
- Miscellaneous bug fixes and other improvements

Changes in FileCarver v1.4.3:

- Corrected an issue with non-selectable field options
- Fixed bug in maximum value validation on integer fields
- Onupdate events will no longer fire on non-existent fields
- Added ability to automate the registration process
- Better platform-specific integration

Changes in FileCarver v1.4.2:

- Added new field type, 'block'
- Some memory usage improvements
- Array length changes now fire an 'onupdate' event
- Improved speed of accessing JS array elements by index
- Reloading definitions will keep the previous selection
- Improved reliability of JavaScript-based array row names
- Fixed undo/redo bug with certain types of array elements
- Corrected a bug with list options for fixed integer fields
- Fixed spacing for the ascii-int text field control

Fixes in FileCarver v1.4.1:

- Wait cursor is now displayed during the save operation
- "Save As..." will use the same directory as the old file
- Undos and Redos on text areas preserve scrollbar position
- Bugfix to JavaScript evaluation inside 'termwhen' arrays
- Better validation of variable length array definitions

New in FileCarver v1.4:

- Substantial performance improvements when opening files
- Added extensive undo and redo functionality
- Ability to search and replaces values in the file
- Integer fields can now have 'min' and 'max' values
- Added calculated field type 'time'
- Added calculated field type 'date'
- Added mnemonics to buttons and menu items
- Ability to select and delete multiple sequential array elements
- Ability to reference length fields hierarchically, using the
  dot notation that was already available via JavaScript
- Command-line arguments to open a given file immediately
- Miscellaneous bug fixes and other improvements

Fixes in FileCarver v1.3.1:

- Several bug fixes related to field onupdate events
- Fixed reading variable-length, terminated strings at EOF
- More robust reading of fixed integer fields from file
- Improved validation of file format definitions

New in FileCarver v1.3:

- Support for "onupdate" JavaScript events on fields
- Calculated fields that are not stored in the file
- New "Revert to Saved" item in the File menu
- Ability to reload definitions while FileCarver is running
- Array row names that are evaluated from a JavaScript expression
- Added display="spinner" for integer fields
- Added display="horizontal" for field groups
- Added calculated field type 'color'
- Added environment variable for definitions directory location
- Added environment variable for default save and open location
- Now packaged as .exe on Windows and .app on Mac OS X
- Numerous bug fixes as well as additional validation

Fixes in FileCarver v1.2.1:

- Fixed evaluation of existif conditions on fields inside arrays
- Corrected a synchronization issue with nested parrallel arrays

New in FileCarver v1.2:

- Added 30-day free trial
- Conditional existence for fields
- Arrays terminated by a condition that is true for the last element
- Support for UTF-16 character encoding for string fields
- Arrays of fixed length that also specify the 'effective' length
- Values of numeric fields can now be set in hexadecimal
- Added new group display types, 'collapsed' and 'collapsable'
- Added new field type, 'label'
- Added 'hidden' and 'editable' attributes to the <group> tag
- Ability to set endianness on a per-file basis
- Improved platform-specific integration

New in FileCarver v1.1:

- Support for parallel arrays
- New types: long, unsigned-long, fixed-long, and flags-long
- Added "combo" list display type
- Support for string encodings
- Ability to define a custom string terminating character
- Support for tabbed interfaces using the tab-group tag
- Multiple files can now be open simultaneously
- Miscellaneous bug fixes and improvements


Legal

The FileCarver program and related materials (the "Software") is owned by
Alexei Svitkine (the "Author") and is protected by international copyright
laws. With the exception of files found in the 'definitions' directory at
the time when the Software is obtained, no part of the Software may be
modified and/or re-distributed without explicit permission from the Author
to do so. With the exception of the initial trial period, the use of the
Software by an individual (the "User") is permitted only in the case when
an explicit agreement with the Author has been made to allow for this, for
example, through the process of purchasing a license for the Software from
the Author.

The Software is provided by the Author "AS IS" and any warranties,
express or implied, including, but not limited to, the warranties of
merchantability and fitness for a particular purpose are disclaimed.
In no event shall the Author be liable for any direct, indirect,
incidental, special, exemplary, consequential, or any other type of
damages arising from the use of this Software, or as a result of any
other action performed in relation to this Software, even if the
Author had been notified of the possibility of such damage.

