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