=========================================================================
//
//      THE MOST RECENT NEWS ABOUT IDA
//      ------------------------------
//
//              Created 17-July-91       by Ilfak Guilfanov
//
//  Now I'm working on the next versions of IDA. My plans for the near
//  future:
//    - Support for other processors like 8051,48 etc.
//    - Support for UNIX format files, namely XCOFF.
//    - Support for Power PC.
//
//  If you want to support my efforts, please register! The more registered
//  users - the faster release of new versions.
//
=========================================================================

	CHANGES AFTER VERSION 3.04
	--------------------------

- Pascal overlays/programs are disassembled properly.

- When IDA is started w/o parameters:
       -if the current directory contains only one *.ID? file then
	load it immediately;
       -if the current directory contains many *.ID? files then
	show list of *.ID? files
       -otherwise show list of all files in the current directory

- The search direction is displayed on the screen near the indicator of
  background analysis.

- On the dialog box appearing by Ctrl-N the cursor is initially in the second
  field (containing the new name)

- Now IDA uses C++ system-independent version of Btree database library.
  (at last get rid of assembler inlines, segments and other MS DOS heritage)
  Moving toward OS/2 version - now I'll try to port TVision under OS/2 :)
  Oh yes, the new database may (must?:) have bugs - please report them as soon
  as possible, those bugs are very dangerous. Of course the new version
  of database is fully compatible with the old version.

- make ascii: if a name is already in use, IDA tries to build another name
  name..._0,name..._1 etc. If all such names (up to name..._98) are used,
  IDA gives names like asc_...

- When displaying ASCII strings IDA tries to start a new line between
  words (so that words are not cut)

- Added Intel 8051 processor.

- New operand types: OCTAL & BINARY.

- TVision is ported to OS/2. Now OS/2 version is very easy...

- IDA did not pack renamed databases. Fixed.

- Too long predefined comments would crash IDA. Fixed. Thanks to Dimka Kozlov.

- The "About.." dialog is displayed only at the first start of IDA.
  (start w/o parameters, load a new file)

- A new file BIOSDATA.IDC: creates a segment with BIOS variables.

- The switch USE_SEGMENT_NAMES in the IDA.CFG file didn't work. Fixed.
  Also, added a new switch SHOW_SEGMENTS. Thanks to Vadim Bogdanov.

- Imported names are displayed as 
		extrn <name>

- For each processor type - own DLL containing the disassembler itself.

- All processors have a Virtual Data Segment Register (DS).
  It points to the data segment. For Intel 80x86 the value of this register
  is monitored at each address of the program, for other processors
  the value is specified for each segment.
  Also base of a segment is meaningful for all processors.
  For example, you can define more than one segment mapped to the
  same addresses of Z80 (The linear addresses displayed at the left conner
  of a window will be different, but offsets within segments may be the same
  for different segments).

- The maximal array size proposed by IDA (key *) is limited also
  by the nearest named byte (so you won't loose names creating a big array)

- Search Text: line prefixes are ignored now.

- COFF files support (not finished! relocation data is ignored)

- IDA itself places PROC directives, but it doesn't place ENDP directives yet.

- Useful limitation: when IDA calculates the segment boundaries, it
  may move the segment start/end only to 1 paragraph (16 bytes).

- A new configuration variable: SCREEN_MODE. Defines a screen mode to use.
  Please don't use graphic modes - it won't work.
  Also SCREEN_PALETTE configuration variable is added:
  	black/white
	monochrome
	color
	auto

  Max number of lines on the screen is 100.

- The following instructions were disassembled incorrectly:
	OUT	DX, EAX
	IN	EAX, DX

- When calculating length of ASCII string IDA didn't take into account
  the segment boundaries. Fixed. Thanks to Yury Haron.

- VxD files support added.

- ASCII string was shorter to one character is its length was specified
  by Alt-L. Fixed.

- Byte '\0' was displayed as a character constant ''. Fixed.

- First beta version for OS/2. 

----------  	----------
         Vacancies
----------  	----------

- If the user manually changes an operand of an instruction, all
  cross-references are recalculated.

- The user can enter an empty string as a value of a segment register.
  The empty string means undefined value.

- The limitation on the length of names is in effect only when
  the name is entered from the keyboard.

- The command 'make undefined' undefines bytes only from the selected area.

- Now it is possible to load NE files with many segments (more than 200)
  by filling gaps between segments so that they constitute one big chunk of
  memory (IDA has a limitation on the number of contiguous chunks ~170)

- When loading a new file IDA look for .DLL extension too.

- The following instructions were disassembled incorrectly:

	push large 0
	push small 0

  IDA never used LARGE and SMALL modificators for them.

- Two new configuration variables:
	WINDIR, OS2DIR
  point to MS Windows and OS/2 directories.

- You can specify predefined comments in the IDS files:

32	PrfQueryProfileInt	; This is a comment: LONG (HINI,PSZ app,PSZ key,LONG deflt)
33	PrfQueryProfileString	; Comment: PULONG (HINI,PSZ app,PSZ key,PSZ deflt, PVOID buf ULONG bufsize)
	
  i.e. everything after semicolon ';'.

- New functions in IDC:
	GetMnem		- get instruction mnemonics
	GetOpnd		- get operand of instruction
	GetOpType	- get type of operand
  The Name() function is described in documentation now.

- Processor Z80, assembler X-M-80: at the start of a segment
  IDA generates
		cseg / aseg

- Many bug fixes for Intel 8051.

- A new format of names:  seg_off (w/o prefix)

========== Time passed... ===============

- At last IDA runs under DOS4GW: 32bit mode.

- And at last IDA supports MS Windows 96, MS Windows NT executable files (PE)
  Somewhat lousy code, but it works... I personally dislike this format.
  Many people sent me documentation on this format, but ALL of them
  were incorrect. So, if you know that you have a good version of documentation,
  I'm interested, just to know whether I investigated it correctly.

- IDA killed bad IDB files w/o any warnings. Now it refuses to work with them.

- Bug fixes in the internal editor, now it properly processes Enter,Ins,Del keys.
  I think this bug was introduced in some beta version. Also, the menu items
  are disabled/enabled when the user switches between windows.

- The MUL,IMUL instructions generated bad cross-reference type (W). Fixed.
  Thanks to Vladimir Ibatullin, 2:5030/82.11.

  IDA 3.05.13
  -----------

- OS/2 version: if the cureent address has no segment, IDA crashed.
  Fixed.

- Several bugs in TVision fixed. Now TVision File Dialog works on HPFS too.

- OS/2: fixed bug with keyboard macros.

- If IDA finds 2 databases on the disk (packed and unpacked), it clearly
  prompts user:
  	repair unpacked version
	unpack old database from IDB
	exit to system

- When the user presses Enter in the window with
	names
	segments
	segment registers
  then an IDAView-window will be positioned to the address of the
  	name,
	segment
	segment register change point

- OS/2: IDA would hang loading NE,LX,LE files.

- Now IDA can check a manually entered operand (Alt-F1,Alt-F2) and if it
  differs from its original value, IDA warns the user. Thanks to Yury Haron
  who kindly presented the procedure of operand validation.

  IDA 3.05.14
  -----------

- Al last I found and fixed a bug with mouse handler (dos32).
  I think this bug may hang 32-bit IDA.

- IDA database is always created in the current directory (not in
  the directory with the file being disassembled).

- Fixed: bug in PE files loading.

- Maximal length of names is 127.

- Fixed: Under plain DOS IDA couldn't find DLL files when loading NE files.

- For the registered users: now it is enough to place IDA.KEY file in
  the IDA directory.

  IDA 3.05.15
  -----------

- Fixed a bug in 32bit IDA. If it was started w/o command line arguments,
  it would crash sometime. Thanks to Andrew Krukov 2:5020/156 & Vadim
  Bogdanov 2:5020/245.

- NE files: IDA properly loads self-loading files.

- Now IDA thinks that

	mov eax, cr0 

  and all other instructions working with CRx registers are allowed in
  real (not protected) processor mode.

- If the input file is not given in the command line, IDA always asks
  for the file name.

- New processor: 6502. Not included in the shareware version.

- Fixed bug with scrollbar: the window is not redrawn when
  the scrollbar moves. This bug was introduced in some beta version.
  Thanks to Alexey Kulentsov, 2:5020/216.6

- Now IDA tries to fix database if it founds inconsistencies.
  Obviously, sometimes it fails...

- PLEASE NOTE that only 16-bit version of IDA can unpack compressed
  databases.

- FOR REGISTERED USERS: Now it is enough to place your key file into
  the IDA directory under name IDA.KEY

  IDA 3.05
  --------
