Version 55
----------

 - the history file is started

 - get_name() and similar functions have two additional parameters:
        char *buf, size_t bufsize
   i.e. they return their answers in the specified buffer, not in
   a static buffer anymore

 - all processor modules should call invoke_callbacks() from their
   ph.notify function. See the sample file, reg.cpp.

 - sel_t type is 32-bit now (before it was defined as ushort)

 - plugin init/term() functions are called only once for each plugin.
   before they we being called for each menu entry

 - a plugin can return PLUGIN_KEEP from his init() function. In this
   case the plugin will stay in the memory. otherwise it is unloaded
   and loaded again only when the user invokes it.

 - notification callback functions are added

 - enumerations can have several constants with the same value
   to distinguish them we use "serial" numbers. Each constant in the
   enumeration has a serial number. Usually the serial number is equal
   to zero. If there are 2 constans with the same value, their serial
   numbers will differ. The serial numbers are allocated by the kernel
   when a symbolic constant is created. The kernel allocates the serial
   numbers starting from zero (0,1,2,3...) The maximum value for a serial
   number is 255.
   The interface to the enum oriented functions have been changed to
   include the serial numbers.

 - user-defined line prefixes are supported. see get_user_defined_line_prefix()
   and the sample plugin (vcsample).

 - The following functions have been renamed (the list is not exhaustive):
   itemEnd() -> get_item_end()
   getSize() -> get_item_size()
   doUnknown() -> do_unknown(), do_unknown_range()
   add_segm -> add_segm_ex
   set_refinfo -> set_refinfo_ex
   set_ti -> set_op_ti
   get_ti -> get_op_ti
   add_func -> add_func_ex
   apply_idasgn -> apply_idasgn_to
   autoMark -> auto_mark_range
   set_name -> set_name_ex
   set_name -> set_dummy_name
   doData -> do_data_ex
   QueueGet -> QueueGetType
   chsize -> echsize
   btoa -> btoa32, btoa64, btoa128
   b2a -> b2a32, b2a64
   atob -> atob32, atob64
   get_const -> get_const_by_name

 - The Visual C++ compiler can be used to write plugins.
   See the samples in the SDK.

 - A plugin can extend the processor module capabilites by intercepting
   custom_... callbacks. See the sample (procext).

 - CBuilder VCL components can be used in the plugins. See plugins\chart.


Version 56
----------

- is_spec_ea() doesn't pay attention to inf.s_specsegs

- AskUsingForm() with buttons was broken

- segment translation functions don't work with the segment selectors
  anymore. In order to break the old code using them, these functions
  are renamed: anyway the code should be revised.

- new processor_t.flag bits (please check your modules and add these
  bits if you need them):
#define PR_BINMEM     0x10000   // the processor module provides correct
                                // segmentation for binary files
                                // (i.e. it creates additional segments)
                                // The kernel will not ask the user
                                // to specify the RAM/ROM sizes
#define PR_SEGTRANS   0x20000   // the processor module supports
                                // the segment translation feature
                                // (it means it calculates the code
                                // addresses using the codeSeg() function)

- choose2() function has one more additional optional parameter

Version 4.18
------------

- PR_BINMEM is not used anymore


Version 4.20
------------

- ieee_realcvt() function is added

- AS2_STRINV is added

- choose_ioport_device() has 2 parameters

- better handling of inf.wide_high_byte_first

- OutValue(..., OOF_ADDR) accepts dt_code as dtyp.

- 0x80, 0x8000, 0x80000000 are considered as signed by default in OutValue()

Version 4.21
------------

- set_dummy_name has 2 parameters

Version 4.3
-----------

- search.hpp is included
