Biodiff
=======

Compare binary files using alignment algorithms.

Keys:
 * left/right/up/down arrow: Move Cursor
 * 'h', 'j', 'k', 'l', Page Up/Down: Move view without moving cursor
 * 'a', 's', 'd': Choose active cursor
                  primary/both/secondary view
 * 'o' (Unaligned View): set offset between unaligned files
 * shift+down arrow/'j' or space: Jump to the next difference
 * shift+up arrow/'k': Jump to the previous difference
 * ctrl+down arrow/'j': Jump to the next inserted/deleted byte
 * ctrl+up arrow/'k': Jump to the previous inserted/deleted byte
 * F1 or 1: View Help
 * F2 or 2: View Unaligned
 * F3 or 3: View Aligned
 * F4 or 4: Alignment Algorithm Settings
 * F5 or 5: Reload files (only in unaligned view)
 * F6 or 6: Go to address
 * F7 or 7: Search
 * 'n': Jump to next search result
 * 'N': Jump to previous search result
 * Home: Jump to first address
 * End: Jump to last address
 * 'v': Start selection at cursor(s)
 * 'c': Clear selection at cursor(s)
 * '[' and ']': Remove or add a hex column
 * '0': Set columns to fit screen
 * '=': Attempt to align column number to the repetitions of bytes
        currently visible (or if selected, the selected range)
        by doing an autocorrelation

Unaligned View
--------------

This is the binary diff view that just shows both files contiguously
and is the mode that the viewer starts in. You can align at the
cursor by pressing F3 (or 3) and go into the Aligned View.

The primary view is the one on the left or top side (depending on
display settings), and the secondary view is the one on the right
or bottom side.

The primary view and secondary view can by moved independently by first
choosing active views with pressing the 'a'/'s'/'d' for
primary/both/secondary respectively.

By choosing one active view and then marking a selection with 'v',
pressing F3 will search for a glocal alignment with the pattern
being the selection in the active view and the text being the
whole other view. After finding the initial alignment, it will
be extended in both directions.

Aligned View
------------

This view attempts to show the bytes of the file such that same bytes
of one file are aligned to the same bytes of another file.

In the standard blockwise mode, the alignment will be calculated
starting from the cursor in both directions, so it is advisable to
do this once at least one aligned part has been found in the unaligned
view (although it might also work without doing this).

When entering this view, it will be blank for a short while alignment
is calculated. In blockwise mode (see the algorithm settings window
help for more information on this), the blocks will be dynamically
added at the front and end.

The unaligned view can be entered again by pressing F2, or alignment
with different settings can be applied by again pressing F3.

Alignment Algorithm Settings
----------------------------

It is possible to change various parameters, and for smaller files
align them as a whole without first having to search for an alignment.
Do note that this will result in significant RAM usage for larger files
(> 32k) which could grind your computer to a halt.
