home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / misc / what_is.new < prev    next >
Text File  |  1994-12-26  |  39KB  |  858 lines

  1. =========================================================================
  2. //
  3. //      THE MOST RECENT NEWS ABOUT IDA
  4. //      ------------------------------
  5. //
  6. //              Created 17-Jul-91       by Guilfanov I.
  7. //
  8. //  *** - bug fixes
  9. //  +++ - enhancements and new features
  10. //
  11. //  Now I'm working on the next versions of IDA. My plans for the near
  12. //  future:
  13. //    - Support for other processors like 8051,48 etc.
  14. //    - Support for UNIX format files, namely XCOFF.
  15. //    - Support for PowerPC.
  16. //    - May be, IDA will live in protected mode (I didn't decide it yet)
  17. //
  18. //  If you want to support my efforts, please register! The more registered
  19. //  users - the faster release of new versions.
  20. //
  21. =========================================================================
  22.  
  23.     ╔══════════════╗
  24.     ║ Version 3.01 ║
  25.     ╚══════════════╝
  26. --------------------------------------------------------------------------
  27. 25.12.94
  28. --------------------------------------------------------------------------
  29. +++ IDA automatically comments OS/2 DLLs. I didn't have full information
  30.     about these DLLs, so I put the comments into text files. You
  31.     can modify the comments as you want. The comments reside in *.IDS
  32.     files, format of these files is very simple. See DOSCALLS.IDS
  33.     Don't forget that IDA itself extracts entry point names from DLL files
  34.     if it finds them on the disk.
  35.  
  36. +++ LX/LE files: if an object has 'Alias 16:16' flag, IDA tries to load it
  37.     into low memory (first Mbyte).
  38.  
  39. *** LX/LE files: IDA didn't display entry points correctly. Fixed.
  40.  
  41. +++ Z80 for ANTA A80: IDA displays uninitialized bytes as 'equ' directives.
  42.  
  43. --------------------------------------------------------------------------
  44. 21.12.94
  45. --------------------------------------------------------------------------
  46. +++ Now IDA is capable to disassemble several files in one directory.
  47.     IDA database file names are changed. Also, IDA packs its database
  48.     into one file.
  49.     IDA asks file name to disassemble if started without parameters.
  50.     Also, IDA asks file name if you specify a file mask.
  51.  
  52. --------------------------------------------------------------------------
  53. 12.12.94
  54. --------------------------------------------------------------------------
  55. +++ Under multitasking systems IDA gives timeslices when idle.
  56.  
  57.     ╔══════════════╗
  58.     ║ Version 3.00 ║
  59.     ╚══════════════╝
  60. --------------------------------------------------------------------------
  61. 08.11.94
  62. --------------------------------------------------------------------------
  63. +++ LE files can be disassembled.
  64.  
  65. +++ Borland C++ overlay files can be disassembled.
  66.  
  67. --------------------------------------------------------------------------
  68. 07.11.94
  69. --------------------------------------------------------------------------
  70. *** Fixed a bug in 'delete segment' command. It is difficult to explain,
  71.     and sometimes occured when a small (<2kb) segment is deleted.
  72.  
  73. +++ You can get all information from messages window on the disk if you
  74.     set environment variable IDALOG:
  75.  
  76.         set idalog=log-filename
  77.  
  78. *** Fixed a bug: sometimes IDA would prematurely stop to analyse the
  79.     program and pretend that the program is fully disassembled.
  80.  
  81. --------------------------------------------------------------------------
  82. 30.10.94
  83. --------------------------------------------------------------------------
  84. *** Fixed a bug in 'indirect jumps' command. It didn't work :(
  85.  
  86.     ╔══════════════╗
  87.     ║ Version 2.09 ║
  88.     ╚══════════════╝
  89. --------------------------------------------------------------------------
  90. 20.09.94
  91. --------------------------------------------------------------------------
  92. +++ IDA has a small built-in text file editor.
  93. +++ many tiny improvements.
  94.  
  95. --------------------------------------------------------------------------
  96. 19.09.94
  97. --------------------------------------------------------------------------
  98. +++ LX files loader is rewritten. Now it should work.
  99.  
  100. +++ If the user selects an area (using Alt-L) and presses C (convert to
  101.     instructions), IDA will analyse the selected area more deeply:
  102.       - it will guess indirect table jumps
  103.       - it will convert to data zero bytes
  104.       - it will convert to instructons all other bytes.
  105.     I understand that this is not enough, wait and I'll do more in this
  106.     direction.
  107.  
  108. --------------------------------------------------------------------------
  109. 18.09.94
  110. --------------------------------------------------------------------------
  111. +++ Now IDA knows about segment selectors, so you can create segments
  112.     beyond 1mb. You create a segment beyond first Mb, it can't accessed
  113.     using 16-bit segment & 16-bit offset. So, IDA creates a virtual
  114.     selector which points to such segment. Now you can use almost all
  115.     32-bit address space, up to 0xFF000000. Addresses higher than this
  116.     address are used by IDA for auxillary things.
  117.     IDA maintains virtual selectors automatically. When a segment is
  118.     created, IDA creates a virtual selector if nessesary, and deletes it
  119.     when the segment is being killed. Max number of selectors - 64.
  120.  
  121. +++ ALT-J (make jumps table) works for 32-bit segments.
  122.  
  123. --- I recompled IDA to use 386 instruction, so it won't run on 286 anymore.
  124.     Sorry.
  125.  
  126. --------------------------------------------------------------------------
  127. 17.09.94
  128. --------------------------------------------------------------------------
  129. +++ Now IDA knows about short and long displacements and marks unnessarily
  130.     long instructions with <BAD> marks. For example:
  131.     8B840000      mov     ax, [si+0]
  132.     8B850000      mov     ax, [di+0]
  133.     will be converted by TASM to
  134.     8B04          mov     ax, [si]
  135.     8B05          mov     ax, [di]
  136.     so these instructions are <BAD>. Don't forget that <BAD> marks are
  137.     turned off by default.
  138.     Thanks to Vadim Belman, 2:464/15 who pointed out this fact.
  139.  
  140. +++ Now you can look at the dump of the program being disassembled.
  141.     You simply press Shift-F3 and see a dump of the program bytes
  142.     (with ASCII representation). Again press Shift-F3 - and you see normal
  143.     view of the program. You can freely use navigation commands in the
  144.     dump mode.
  145.  
  146. --------------------------------------------------------------------------
  147. 16.09.94
  148. --------------------------------------------------------------------------
  149. *** Fixed many bugs in disassembling 32-bit mode instructions.
  150.  
  151. +++ Added 387 processor instructions.
  152.  
  153. +++ Now IDA knows about 'large' & 'small' keywords for Intel 80x86.
  154.  
  155. +++ Added 486,Pentium instructions.
  156.  
  157. +++ Escape character (0x1B) is allowed in ASCII strings.
  158.  
  159. +++ The instruction
  160.     imul r,r,num
  161.     is showed as
  162.         imul r,num
  163.     (asked by Grisha Rusanov)
  164.  
  165. +++ Two important changes: when you use 'convert to instruction' and
  166.     'convert to unexplored' commands and have an area highlighted using
  167.     the anchor, all bytes in the highlighted area will be affected by
  168.     these commands. For example, if you drop anchor at the start of the
  169.     file, go to the end of file and press 'C', IDA  will try to convert all
  170.     bytes of the program into instructions.
  171.  
  172. --- -R switch meaning is reversed: it means 'load MS Windows resources'
  173.  
  174. +++ IDA doesn't try to fix relocations of self-loading MS Windows
  175.     programs. It fixes relocations only for the first segment. If I/O error
  176.     occur during loading the file, IDA simply warns you about it and
  177.     continues to load. The I/O errors may occur because of bad input file
  178.     structure.
  179.  
  180. +++ 2 new commands added (menu Options|Toggle display):
  181.     - Display segment part of addresses on/off
  182.     - Display <BAD> instructions on/off
  183.     Please read about <BAD> instruction in the online help (An instruction
  184.     is marked as <BAD> if it is undocumented or it will change its length
  185.     after compilation). I didn't change IDA database format number, so
  186.     for the old bases they will not be displayed. But you can switch them
  187.     on.
  188.  
  189. *** Fixed a bug: you wasn't able to create segments sized about 64kb or more.
  190.     IDA would not move other segments properly.
  191.     Thanks to Dimka Kozlov (2:5020/246) for the detailed bug report.
  192.  
  193. --------------------------------------------------------------------------
  194. 01-Sep-94
  195. --------------------------------------------------------------------------
  196. *** Fixed a bug with segment registers emulation.
  197.  
  198. *** Fixed a bug: you couldn't start "IDA -c file" from the root directory!
  199.  
  200. *** Fixed a bug with segments.
  201.  
  202. +++ The NE files loader is rewritten
  203.  
  204.     ╔══════════════════╗
  205.     ║ Version 2.08beta ║
  206.     ╚══════════════════╝
  207. --------------------------------------------------------------------------
  208. 04-Jul-94
  209. --------------------------------------------------------------------------
  210. +++ LX support added. Not complete, namely:
  211.     - no support for jump tables (hotkey Alt-J)
  212.     - no support for imported modules (IDA doesn't even looks them up)
  213.     - problems with segment registers and segment bases
  214.     - not all offset & segment selectors supported
  215.     - max address avialable to disassebled program - 0x0F000000
  216.     Despite of these limitations, I hope that you can try to use it.
  217.     Sorry, I have no time for fix them all. Please note that this is
  218.     a BETA version. I appreciate any reports about bugs,features, etc.
  219.  
  220. +++ Now  you can change represenation of automatically generated names.
  221.     See 'Options' menu.
  222.  
  223. +++ Several tiny modifications.
  224.  
  225. --------------------------------------------------------------------------
  226. 02-Jul-94
  227. --------------------------------------------------------------------------
  228. *** Fixed a bug with zero length segments in NE format files. IDA would
  229.     report silly disk read error and exit, because it couldn't read past
  230.     end of file.
  231.     Thanks to: Trigub Serge.
  232.  
  233. *** Fixed a bug with 32-bit form of movsX,cmpsX... etc instructions. If these
  234.     instruction have a segment override prefix, IDA would disassemble them
  235.     uncorrectly. The same was with 'xlat' instruction.
  236.     Thanks to: Trigub Serge.
  237.  
  238. *** Now IDA knows all about NE format files (I hope ;-). Namely the following
  239.     flags/features are recognized now:
  240.     - Application types (compatible,incompatible,uses PM API)
  241.     - Processor types (by default IDA sets i80286 real)
  242.     - Long file names support
  243.     - 32-bit segments
  244.     - Iterated segments
  245.     - Conforming segments
  246.     - 286 DPL bits
  247.     Among these flags IDA uses only processor type and 32-bit segments flags.
  248.     All other flags are simply copied to the output text with appropriate
  249.     comments.
  250.     Thanks to: Trigub Serge.
  251.  
  252.     ╔══════════════╗
  253.     ║ Version 2.07 ║
  254.     ╚══════════════╝
  255. --------------------------------------------------------------------------
  256. 21-Jun-94
  257. --------------------------------------------------------------------------
  258. *** I fixed a bug which may cause IDA to hang at startup. Sorry :-(
  259.     Today I release a new version because of this bug.
  260.  
  261. +++ Comments are inserted using a text dialog box. You can use a built-in
  262.     clipboard.
  263.  
  264. *** I threw out the 'Shell' command - it doesn't work and makes no sense
  265.     because there is little memory.
  266.  
  267. --------------------------------------------------------------------------
  268. 19-Jun-94
  269. --------------------------------------------------------------------------
  270. +++ 'Make Jump Table' command (hotkey Alt-J) is more intelligent  now.  It
  271.     itself tries to find  out  the  table  address  and  size.  If  you've
  272.     specified the table address  using  'Make  Offset'  command,  it  will
  273.     simply present this address. If the table address it  not  valid,  IDA
  274.     will beep.
  275.  
  276. +++ Pascal strings: the string length byte is decimal by default.
  277.  
  278. +++ 'Enter alternative operand' commands proposes the current representation
  279.     as the default string. Many people asked me to do so, it works this way
  280.     now.
  281.  
  282. --------------------------------------------------------------------------
  283. 18-Jun-94
  284. --------------------------------------------------------------------------
  285. +++  Support  for  Intel  860  XP,  Intel  860  XR  processors  is  added.
  286.     Unfortunately, IDA doesn't support COFF format files - now I'm  forced
  287.     to implement it... ;-) This is not test!!! I don't have an  assembler,
  288.     nor a computer, nor even an executable file for these processors!
  289.  
  290. +++ Now IDA loads IBM PC files into 1000:0 by default.
  291.  
  292. +++ NE format files: I have only Borland documentation on NE format files.
  293.     I didn't find all relocation types in this documentation. For example,
  294.     when I tried to disassemble BCC.EXE, there was relocation type 0x4.  I
  295.     think  that  bit  2  of  the  relocation  type  designates   'additive
  296.     relocation'  (anology  with  LX  file  format).  When  IDA  encounters
  297.     relocation  type  with  bit  2  set,  it  interprets  it  as  additive
  298.     relocation. PLEASE, if you have full documentation on NE  file  format
  299.     and I'm wrong with 'additive relocation', let me know!  FYI:  now  IDA
  300.     knows about relocation types 0,1,2,3 and bit 2(additive).
  301.  
  302. --------------------------------------------------------------------------
  303. 13-Jun-94
  304. --------------------------------------------------------------------------
  305. +++ Repeatable comments!
  306.         All items that refer to the current item will have this comment by
  307.         default. This type of comments may be used to describe subroutines,
  308.         data items etc., because all calls to the subroutine will have the
  309.         repeatable comment.
  310.         2 new things:
  311.           - MakeRptCmt,ToggleRptCmt added to 'ida.cfg'.
  312.           - MakeRptCmt(),RptCmt() functions added to IDC.
  313.    Hot keys:
  314.         ; - make repeatable comment
  315.         : - make regular comment
  316.  
  317. --------------------------------------------------------------------------
  318. 05-Jun-94
  319. --------------------------------------------------------------------------
  320. +++ Added a new assembler for the Intel 8080 processor:
  321.         - assembler X-M-80 by Leo Sandy (only 6 chars in names)
  322. +++ Added a new assembler for the Z80 processor:
  323.         - ASxxxx by Alan R. Baldwin v1.5
  324.           (this assembler produces incorrect code for SUB instruction)
  325.         - assembler X-M-80 by Leo Sandy (only 6 chars in names)
  326.         - A80 by ANTA electronics
  327.           (as far as I know, this assembler is used to program Automatic
  328.            Caller Identification devices in Russia)
  329. +++ Added a new assembler for the HD64180 processor:
  330.         - ASxxxx by Alan R. Baldwin v1.5
  331.           (this assembler produces incorrect code for SUB instruction)
  332. *** Work with undocumented registers of the Z80 processor like xl,etc.
  333.     is changed.
  334. +++ 3 changes in IBM PC analyser:
  335.         - Now IDA knows about AAD,AAM <n> instructions where n != 10
  336.           It displays them as data bytes.
  337.         - Now IDA distinguishes jmp and jmp short.
  338.         - Now IDA knows about the tiny and long OR,XOR,AND,CMP,ADD,ADC,SUB,SBB
  339.           instructions and displayes the large instructions that may be
  340.           coded as tiny instructions as data bytes, because TASM will produce
  341.           tiny code. Now we can get output text that produces exactly the
  342.           same code as the input code.
  343.  
  344. --------------------------------------------------------------------------
  345. 04-Jun-94
  346. --------------------------------------------------------------------------
  347. +++ I forgot to describe several changes, they exist in v2.06:
  348.         - 'MakeVariable' command works as a trigger. When you mark a byte
  349.           as variable, all xrefs to it will disappear and will be
  350.           recalculated. Don't be afraid.
  351.         - If IDA v2.06 detects IDA database from version v2.05 it will
  352.           ask your permission to convert to into newer format.
  353.         - You can select any processor type within the current processors
  354.           line.
  355.         - There was a small bug in PC emulator: IDA thought that 'int N'
  356.           command passes execution to 0:4*N. Fixed.
  357. +++ File Name Dialog box added. Now it is possible to browse directories
  358.     and search for the file names.
  359.  
  360.     ╔══════════════╗
  361.     ║ Version 2.06 ║
  362.     ╚══════════════╝
  363. --------------------------------------------------------------------------
  364. 31-May-94
  365. --------------------------------------------------------------------------
  366. *** Fixed a bug in bTree: if memory is not enough, it could display a  bad
  367.     error message or even could crash.
  368.  
  369. +++ Intel 8080/8085 support is enhanced. Now IDA knows about various
  370.     assemblers and can generate the output text for them. For the moment IDA
  371.     knows the following 8085 assemblers:
  372.       - PseudoSam by PseudoCode
  373.       - Table Driven Assembler (TASM) by Speech Technology Inc.
  374.       - Cross-16 by Universal Cross-Assemblers
  375.         (doesn't know about 'cz' instruction)
  376.       - A80 by ANTA electronics
  377. +++ Z80 support (including undocumented instructions):
  378.       - Avocet Macro Preprocessor v1.0 by Avocet Systems, Inc.
  379.         (doesn't like long lines >80 in the input file, IDA doesn't check this)
  380.       - PseudoSam by PseudoCode
  381.         (doesn't understand add ix,ix; uses only 8 chars in the names!!)
  382.       - Table Driven Assembler (TASM) by Speech Technology Inc.
  383.         (doesn't understand 'rst 0', needs 'rst 00h',has bugs, see help)
  384.       - Cross-16 by Universal Cross-Assemblers
  385.         (doesn't understand 'set' instruction,has bugs)
  386. +++ Binary line prefixes are added. They are displayed by default.
  387.     The binary line prefix is:
  388.  
  389.     seg000:1234 55        push bp
  390.                 ^^^^^^^
  391.     i.e. assembled code. You can show/hide them using
  392.     {Options|Toggle display} menu. IDA shows 8 bytes per line, you can't
  393.     change this.
  394.  
  395. --------------------------------------------------------------------------
  396. 15-May-94
  397. --------------------------------------------------------------------------
  398. +++ Snow check is disabled in Tvision. Faster several times!!! Tvision  is
  399.     shipped with snow detection by default :-(((. Today I learned about it
  400.     and disabled it. Blazing speed!!! Also, several bugs  in  TVision  are
  401.     fixed (I don't think that they affected IDA performance).
  402.  
  403. +++ When you try to open a new IDAView  window,  sometimes  IDA  hangs.  I
  404.     inserted a debugging code into IDA. If you see that IDA hangs, you may
  405.     try to push Alt-Space key, a coredump will be created.
  406.  
  407.     ╔══════════════╗
  408.     ║ Version 2.05 ║
  409.     ╚══════════════╝
  410. --------------------------------------------------------------------------
  411. 16-Mar-94
  412. --------------------------------------------------------------------------
  413. +++ When the user types in the string in the list  viewer,  (like  in  the
  414.     Norton Commander using Alt-keys), IDA tries to find the matching  line
  415.     not only below the current position, but in the whole list.  The  same
  416.     is when the user searches for the substring (using '?').
  417.  
  418. +++ 'Open names window' command added. See 'View' submenu.
  419.  
  420. +++ Histories for different types of input are separated from each other.
  421.  
  422. +++ You can scroll horizontally list viewer windows.
  423.  
  424. +++ In the list viewers the  'refresh  window'  command  (Ctrl-U)  is  not
  425.     needed because IDA automatically refreshes a list viewer  window  when
  426.     you select it.
  427.  
  428. --------------------------------------------------------------------------
  429. 14-Mar-94
  430. --------------------------------------------------------------------------
  431. *** Several bugs fixeds, many small changes
  432.  
  433. *** Alt-R (any offset) command works as before now  (proposes  a  list  of
  434.     segments you can select from).
  435.  
  436. --------------------------------------------------------------------------
  437. 11-Mar-94
  438. --------------------------------------------------------------------------
  439. *** I've got tired of the bugs in the Tvision int 21h handler. Another bug
  440.     is fixed there.
  441.  
  442. --------------------------------------------------------------------------
  443. 06-Mar-94
  444. --------------------------------------------------------------------------
  445. +++ New: Produce ASM file, Produce LST file commands.
  446.  
  447. +++ Indirect jumps table size is proposed by IDA. It  proposes  a  maximal
  448.     possible value. Be careful!
  449.  
  450. +++ MS Windows entry points are searched and marked as instructions at the
  451.     loading time.
  452.  
  453.     ╔══════════════╗
  454.     ║ Version 2.04 ║
  455.     ╚══════════════╝
  456. --------------------------------------------------------------------------
  457. 05-Mar-94
  458. --------------------------------------------------------------------------
  459. +++ Now  you  can  open  windows  with  program  segmentation  or  segment
  460.     registers. See 'View' submenu for details.
  461.  
  462. --------------------------------------------------------------------------
  463. 03-Mar-94
  464. --------------------------------------------------------------------------
  465. *** Fixed a bug with help system in the menus: if the user presses F1,  he
  466.     can't escape help system till he quits menuing system.
  467.  
  468. --------------------------------------------------------------------------
  469. 02-Mar-94
  470. --------------------------------------------------------------------------
  471. *** Fixed a bug in  error  messages  display.  IDA  didn't  report  memory
  472.     allocation errors properly: it reported any other error. IDA  requires
  473.     about 500K memory!
  474.  
  475. *** Fixed a bug: very small files (less  than  MS  DOS  exe  file  header)
  476.     couldn't be disassembled.
  477.  
  478.     ╔══════════════╗
  479.     ║ Version 2.03 ║
  480.     ╚══════════════╝
  481. --------------------------------------------------------------------------
  482. 26-Feb-94
  483. --------------------------------------------------------------------------
  484. *** Fixed a bug in plain exe-file loading. The previous version of IDA was
  485.     not able to load plain exe-files.
  486.  
  487. +++ map2idc.exe utility is enchanced.
  488.  
  489. *** References beyond segment boundaries are displayed correctly now.
  490.  
  491.     ╔══════════════╗
  492.     ║ Version 2.02 ║
  493.     ╚══════════════╝
  494. --------------------------------------------------------------------------
  495. 25-Feb-94
  496. --------------------------------------------------------------------------
  497. *** Fixed a bug in IDC engine
  498.  
  499. +++ 4 new switches added:
  500.         -R - don't load MS Windows resources.
  501.                 IDA doesn't analyse the resources (see file 'resource.idc'
  502.                 for the example), so you may want to skip resources.
  503.         -W### specify MS Windows directory.
  504.                 Default Windows directory is c:\windows. If you have installed
  505.                 Windows in another directory, specify this switch. IDA will
  506.                 lookup DLLs in this directory.
  507.         -x - don't create initial segmentation
  508.                 This is useful if you want to upgrade your database using
  509.                 an IDC file created by 'Unload' command. The 'Unload'
  510.                 command is used when you want to switch to a new version
  511.                 of IDA. Usually each new version of IDA has its own database
  512.                 format. To create a new format database, you need:
  513.                         - to issue the  'Unload' command for the old
  514.                           database (using old version of IDA). You will
  515.                           receive an IDC file containing all information
  516.                           from your old database.
  517.                         - to reload your database using new IDA with switch
  518.                           -x.
  519.                         - to compile and execute the IDC file with command
  520.                           'Execute IDC file' (usually F2)
  521.                 IDA with -x switch doesn't create segmentation, thus the
  522.                 loading goes faster. This is the only benefit of this switch.
  523.                 This switch doesn't affect NE format files.
  524.         -n - don't load New Executable Format.
  525.                 Even if MS Windows executable found, it will be loaded as
  526.                 an ordinary EXE file.
  527.  
  528. +++ 2 IDC example files are created:
  529.         kernel.idc
  530.                 How to insert user-defined comments for DLL entry points
  531.                 You can add your comments too.
  532.         resource.idc
  533.                 How to analyse MW Windows resources using IDC.
  534.  
  535. +++ Now IDA regularly checks disk space and if it is less than 100k,
  536.     it warns the user. It is not recommended to work with IDA if the disk
  537.     space is low!
  538.  
  539. *** Fixed 2 bugs in TVision (help subsystem)
  540.  
  541. +++ Help index created. Press Shift-F1 to get help index.
  542.  
  543. --------------------------------------------------------------------------
  544. 24-Feb-94
  545. --------------------------------------------------------------------------
  546. +++ New Executable Format files can be disassembled now. IDA displays
  547.     resources as byte arrays for the moment. In order to give symbolic
  548.     names to the external references IDA looks for the MS Windows files
  549.     in the:
  550.       - current directory
  551.       - C:\WINDOWS
  552.       - C:\WINDOWS\SYSTEM
  553.  
  554.     In the future there will be a way to specify Windows directory.
  555.  
  556. +++ Display of offsets is changed. Now IDA tries to display an offset even
  557.     if the target address is beyond segment bounds. The 'EOS_...'  symbols
  558.     are not generated anymore.
  559.  
  560. +++ There was a limit on the number of contigious chunks in  the  program.
  561.     You was able to create up to 51 distinct, non adjacent  segments.  Now
  562.     you can create up to ~ 170 such segments.
  563.  
  564. --- Register values are not saved into the disk anymore.
  565.     As experience showed, this is not so useful and wastes disk space.
  566.  
  567. +++ Now IDA leaves a file names 'ida.idl' after its work. You  can  simply
  568.     delete this file, it is left for debugging purposes. It  contains  the
  569.     compiled form of IDC programs.
  570.  
  571.     ╔══════════════╗
  572.     ║ Version 2.01 ║
  573.     ╚══════════════╝
  574. --------------------------------------------------------------------------
  575. 16-Feb-94
  576. --------------------------------------------------------------------------
  577. +++ Offset bases are kept as 32-bit effective addresses.  This  allows  to
  578.     have offsets from any point of  the  program.  For  example,  you  can
  579.     create an expression:
  580.  
  581.       offset A - (offset B)
  582.  
  583.     specifying 'B' as a base the offset. The 'offset by any base' command
  584.     is changed. Now it asks to enter an address.
  585.  
  586. +++ Many small changes and enchancements.
  587.  
  588. +++ 'Unload' command added. This command creates an IDC file. The IDC file
  589.     can be executed at any time later to recreate IDA  database  from  the
  590.     scratch. This command provides a way to upgrade to newer IDA  versions
  591.     when IDA database format is changed. Another point is that  this  file
  592.     can be used as a safety measure (from IDA database crashes).
  593.  
  594. +++ The 'Execute IDC command' is splitted into 2 commands:
  595.       - execute an IDC command
  596.       - execute an IDC file (that means to execute 'main' function)
  597.  
  598. --------------------------------------------------------------------------
  599. 12-Feb-94
  600. --------------------------------------------------------------------------
  601. +++  IDC  language  is  completely  rewritten.  Now  there  are  2  steps:
  602.     compilation and execution. All C execution flow control structures are
  603.     supported, except the following:
  604.       - labels
  605.       - switch statement
  606.     See file 'idc.doc' for details.
  607.  
  608.     ╔════════════════════╗
  609.     ║ Version 2.01 beta0 ║
  610.     ╚════════════════════╝
  611. --------------------------------------------------------------------------
  612. 25-Jan-94
  613. --------------------------------------------------------------------------
  614. +++ New commands:
  615.         - delete a segment
  616.         - change segment bounds
  617.  
  618. --------------------------------------------------------------------------
  619. 09-Jan-94
  620. --------------------------------------------------------------------------
  621. *** Fixed a bug in TurboVision. It appeared only on machines with 1 floppy
  622.     drive. In this case TurboVision tries to check that the  floppy  drive
  623.     emulates the needed disk (A for real,B  for  fantom).  The  code  that
  624.     implements this check is lousy. I completely rewrote this code.
  625.  
  626. *** Bug fixed: If the user leaves IDA when  the  cursor  is  at  the  line
  627.     number 30 (for example) and next time he runs IDA with 25 lines on the
  628.     screen, the cursor is not on the screen. (sometimes IDA hangs)
  629.  
  630.  
  631.     ╔═══════════════════╗
  632.     ║ Version 2.0       ║
  633.     ╚═══════════════════╝
  634. --------------------------------------------------------------------------
  635. 07-Jan-94
  636. --------------------------------------------------------------------------
  637. +++ 'Forms' are created. They allow the  user  to  enter  multiply  inputs
  638.     simultaneously. The user interface will be rewritten to use the forms.
  639.  
  640. *** Small bug is fixed with  names.  It  existed  only  in  ida2.0  beta2.
  641.     references to the second (or third...) bytes of an item would  display
  642.     incorrectly.
  643.  
  644. --------------------------------------------------------------------------
  645. 03-Jan-94
  646. --------------------------------------------------------------------------
  647. *** Fixed a tiny bug in void marks. This bug exists only in IDA2.0 beta2.
  648.  
  649. +++ Now IDA checks all near jumps and  calls  that  they  are  within  one
  650.     segment. If not, it tries to move the segment.
  651.  
  652. +++ 'MakeArray' command proposes maximal size of  array  considering  file
  653.     segmentation.
  654.  
  655. +++ Now it is impossible to define an item  (instruction  or  data)  which
  656.     crosses segment boundaries.
  657.  
  658. +++ By default line prefixes are shown.
  659.  
  660. +++ Extended/expanded memory swapping options are moved into configuration
  661.     file. Only overlayed code will be swapped. By default IDA will use 256
  662.     kb ext and 256 kb exp memory. However, IDA needs  only  ~200kb  memory
  663.     for swapping.
  664.  
  665. *** Fixed a bug in auto-analysis toggler. It was impossible  to  turn  the
  666.     analysis off.
  667.  
  668. +++ IDA doesn't disassemble instructions after overlay interrupt (3Fh).
  669.  
  670. +++ 'Repaint'  command  is  added.  See  menu  File...  IDA  automatically
  671.     repaints the desktop after database repairing.
  672.  
  673. +++ Now 'Shell' command works again. (it invokes  DOS  shell  temporaryly)
  674.     Not so much memory is left (~60Kb).
  675.  
  676. +++ Help subsystem improved: F5-zoom help  window,  Backspace  -  previous
  677.     help screen.
  678.  
  679. --------------------------------------------------------------------------
  680. 29-Dec-93
  681. --------------------------------------------------------------------------
  682. *** Fixed a tiny bug in automatic analysis queue.
  683.  
  684. +++ Now IDA searches for 'Borland C++ - Copyright 1991 Borland  Intl.'  in
  685.     the loaded file, and if finds, it assumes this segment to  be  default
  686.     data segment. It sets default DS value for all segments  to  point  to
  687.     this segment.
  688.  
  689. +++ Memory allocation is changed: now bTree gets less memory.
  690.  
  691. +++ If segment register doesn't change its value at the change  point,  it
  692.     is not displayed in the 'segment registers list'.
  693.  
  694. +++  'set  default  segment  register  value'  command  added.  See   menu
  695.     Edit|Registers...
  696.  
  697. --------------------------------------------------------------------------
  698. 26-Dec-93
  699. --------------------------------------------------------------------------
  700. *** Fixed a bug in keyboard macros. It was impossible to redefine a macro.
  701.  
  702. +++ Each segment has default segment register values.  Generally,  segment
  703.     definitions are cleaned, now IDA supports all  segment  features.  (at
  704.     least from intel specification of SEGDEF's):
  705.        - alignment
  706.        - combination
  707.        - use16/use32
  708.        - Phar Lap extensions (are not displayed, for the future)
  709.        - class names
  710.        - overlay names (are not displayed, can't be changed yet)
  711.     Class names are not deleted. Once defined, they exist forever, even if
  712.     the user chooses another class name for a segment. Segment  names  are
  713.     checked to be a unique name in the program. Phar  Lap  extensions  and
  714.     overlay names are defined; the intention is to  display  them  if  OBJ
  715.     file is being disassembled.
  716.  
  717.     ╔═══════════════════╗
  718.     ║ Version 2.0 beta2 ║
  719.     ╚═══════════════════╝
  720. --------------------------------------------------------------------------
  721. 19-Dec-93
  722. --------------------------------------------------------------------------
  723. +++ Huge arrays (more than 64K) can be displayed fast.
  724.  
  725. +++ File core.ida is merged into file 1.ida. It works faster and  we  have
  726.     more memory.
  727.  
  728. +++ 'Toggle line prefixes display'  command  added.  It  shows/hides  line
  729.     prefixes. Now 'GenAsm' command creates a file  with  or  without  line
  730.     prefixes depending on this switch value. By default, prefixes are  not
  731.     shown.
  732.  
  733. +++ Now it is  possible  to  view  many  files  of  umlimited  size  using
  734.     'ViewFile' command.
  735.  
  736.  
  737. --------------------------------------------------------------------------
  738. 18-Dec-93
  739. --------------------------------------------------------------------------
  740. *** Fixed a bug in keyboard macros.
  741.  
  742. +++ File  1.ida  (feature  flags)  can  keep  features  of  non-contigious
  743.     addresses.
  744.  
  745. +++ IDC command "view" can be  accessed  from  main  IDA  menu.  And  this
  746.     command adds a new window to the screen, allowing the user to continue
  747.     his work.
  748.  
  749. +++ Immediate arguments of instructions  can  be  displayed  as  character
  750.     constants. Before it was possible only for special cases of arguments.
  751.  
  752. --------------------------------------------------------------------------
  753. 12-Dec-93
  754. --------------------------------------------------------------------------
  755. +++ Data values can be displayed as character constants. For example,
  756.         dw 41h,42h,43h
  757.     may be converted (using 'MakeChar' command) to
  758.         dw 'A','B','C'
  759.  
  760. +++ Segment registers use less disk space now. This  should  lead  to  the
  761.     smaller IDA database (file 0.ida).
  762.  
  763. *** There were some problems with processor types. Now this is fixed.
  764.  
  765. --------------------------------------------------------------------------
  766. 11-Dec-93
  767. --------------------------------------------------------------------------
  768.  
  769. *** If during IDA database compression we run out of the disk  space,  the
  770.     disk compression program would fall into an  infinite  loop,  printing
  771.     error messages on the screen. This is fixed.
  772.  
  773. +++ Virtual Arrays format is changed. Now they can have multiply chunks of
  774.     contigious subarrays. This will  be  used  for  virtual  segments  and
  775.     structures. They will come soon!
  776.  
  777. *** DOS critical errors would lead to program hanging if the user  selects
  778.     to retry. Now this is fixed. The problem was with  Tscreen  module  of
  779.     Turbo Vision. This module can't reside in the overlay  because  it  is
  780.     called from the DOS error handler.
  781.  
  782. --------------------------------------------------------------------------
  783. 06-Dec-93
  784. --------------------------------------------------------------------------
  785.  
  786. *** Fixed a bug in bTree. This bug leaded to the database corruption  with
  787.     fatal error message. Nobody reported me about it, I hope  that  nobody
  788.     has encountered it. I've found it after modifications from 04.12.93.
  789.  
  790. --------------------------------------------------------------------------
  791. 04-Dec-93
  792. --------------------------------------------------------------------------
  793.  
  794. +++ Some changes to the database format were made. Now IDA  analyses  code
  795.     sequ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 beta0
  796.     didn't create segments properly. Now it works.
  797.  
  798. +++  Now  IDA  recognizes  and  marks  some  typical  byte  sequences   as
  799.     instructions.
  800.  
  801.     ╔═══════════════════╗
  802.     ║ Version 2.0 beta  ║
  803.     ╚═══════════════════╝
  804. --------------------------------------------------------------------------
  805. 08-Nov-93
  806. --------------------------------------------------------------------------
  807.  
  808. +++ Binary search input line string format is changed.
  809.     Now you can specify any sequence of bytes including zeroes etc.
  810.     Examples:
  811.       0xD, 0xa, "Test"   - will search for the CR,LF
  812.                            followed by the word "Test".
  813.       7 8 9 10           - will search for numbers
  814.       027                - will search for ESC code.
  815.  
  816. --------------------------------------------------------------------------
  817. 02-Nov-93
  818. --------------------------------------------------------------------------
  819.  
  820. *** Some bugs fixed, help system improved.  Preparing  to  distribute  the
  821.     beta version.
  822.  
  823. --------------------------------------------------------------------------
  824. 16-Sep-93
  825. --------------------------------------------------------------------------
  826.  
  827. +++ TVision interface
  828.     IDA searches its files in the ida.exe directory and PATH.
  829.  
  830.     ╔═══════════════════╗
  831.     ║ Version 1.8a beta ║
  832.     ╚═══════════════════╝
  833.  
  834. --------------------------------------------------------------------------
  835. 17-Feb-93
  836. --------------------------------------------------------------------------
  837.  
  838. *** Btree class opens files in readonly mode if  Btree  will  not  change.
  839.     (the previous version of Btree did it, but I was forced to modify  the
  840.     new one for this). I need this for IDA.INT file.
  841.  
  842. --------------------------------------------------------------------------
  843. 18-Dec-92
  844. --------------------------------------------------------------------------
  845.  
  846. *** New Btree (in C++,written by Pol Rousnak) is used. Althrough  I  tried
  847.     to test it myself, bugs are  very  possible.  Again,  version  1.8  is
  848.     incompatible with previous  versions.  For  future  versions,  I  will
  849.     maintain compatibility (or will write a  special  utility  to  upgrade
  850.     your databases). Again, IDA is much faster now.
  851.  
  852.     ╔═════════════╗
  853.     ║ Version 1.7 ║
  854.     ╚═════════════╝
  855.  
  856.  
  857.     The history is deleted.
  858.