home *** CD-ROM | disk | FTP | other *** search
/ Guide To Cracking 2002 / Guide_to_Cracking_2002.iso / Programming / biew520.arj / BIEW_EN.TXT < prev    next >
Encoding:
Text File  |  2000-10-29  |  43.2 KB  |  851 lines

  1. ██████████████████████████████████████████████████████████████████████████
  2. █▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█
  3. █▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓█
  4. █▓▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▓█
  5. █▓▒░                ▄▄▄▄▄▄  ▄▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄   ▄▄▄▄                   ░▒▓█
  6. █▓▒░                 ▄▄  ▄▄  ▄▄   ▄▄  ▄  ▄▄     ▄▄                    ░▒▓█
  7. █▓▒░                 ▄▄  ▄▄  ▄▄   ▄▄     ▄▄     ▄▄                    ░▒▓█
  8. █▓▒░                 ▄▄▄▄▄   ▄▄   ▄▄▄    ▄▄     ▄▄                    ░▒▓█
  9. █▓▒░                 ▄▄  ▄▄  ▄▄   ▄▄     ▄▄  ▄  ▄▄                    ░▒▓█
  10. █▓▒░                 ▄▄  ▄▄  ▄▄   ▄▄  ▄   ▄ ▄ ▄ ▄                     ░▒▓█
  11. █▓▒░                ▄▄▄▄▄▄  ▄▄▄▄ ▄▄▄▄▄▄    ▄   ▄                      ░▒▓█
  12. █▓▒░                                                                  ░▒▓█
  13. █▓▒░                           Ver 5.2.0                              ░▒▓█
  14. █▓▒░                          29 oct 2000.                            ░▒▓█
  15. █▓▒░                                                                  ░▒▓█
  16. █▓▒░    Made in Kazan.Tatarstan.Russia. Written By Nick Kurshev.      ░▒▓█
  17. █▓▒░                                                                  ░▒▓█
  18. █▓▒░         WWW:  http://biew.sourceforge.net                        ░▒▓█
  19. █▓▒░         FTP:  ftp://biew.sourceforge.net/pub/biew/               ░▒▓█
  20. █▓▒░        FIDO:  BIEW.SUPPORT                                       ░▒▓█
  21. █▓▒░      E-mail:  nickols_k@users.sourceforge.net                    ░▒▓█
  22. █▓▒░               nickols_k@mail.ru                                  ░▒▓█
  23. █▓▒░               konst@linuxassembly.org (Unix ports)               ░▒▓█
  24. █▓▒░                                                                  ░▒▓█
  25. █▓▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▓█
  26. █▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓█
  27. █▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█
  28. ██████████████████████████████████████████████████████████████████████████
  29.  
  30.                                      Dedicated to documentation readers!!!
  31.  
  32.     This manual documents how to install, setup and use BIEW. Also  it
  33. contains history of the program with the list of fixed  bugs  in  each
  34. release.
  35.  
  36. Table of Contents
  37. =================
  38.  
  39. 0.-      Preamble
  40. 1.-      BIEW history
  41. 2.-      Installation and setup
  42. 2.1.-      Under DOS, OS2, Win32 following files are needed
  43. 2.2.-      For *NIX systems
  44. 2.3.-      For all systems
  45. 3.-      Program startup
  46. 4.-      Short keyboard guide
  47. 4.1.-      Basic keys
  48. 4.2.-      SHIFT - common utilities and setup
  49. 4.3.-      ALT - key binding to NEW-exe
  50. 4.4.-      CTRL - key binding to view mode
  51. 4.5.-      Functional keys, that are not displayed in prompt string
  52. 5.-      CodeGuider
  53. 6.-      Invisible features ( dark secrets )
  54. 7.-      Undocumented features
  55. 8.-      Program versions.
  56. 9.-      History
  57. 9.1.-      Old history
  58. 9.2.-      New history
  59.  
  60. 0.- Preamble
  61. ============
  62.  
  63.     Biew  is  Binary  vIEWer  with   built-in   editor   for   binary,
  64. hexadecimal and disassembler modes. The program also has  text  viewer
  65. with different  Russia  codepages  support  (Windows-1251,  MSDOS-866,
  66. etc.). Run the program with  -?  or  without  arguments  for  help  on
  67. program switches.
  68.     This program is Free and can be redistributed on any computers
  69. without any limits. For details see license through
  70.  [F1]-[F3] key.
  71.  
  72. 1.- BIEW history
  73. ================
  74.  
  75.    Why did I write BIEW? As for me, I  was  always  looking  for  some
  76. powerful viewer of binary files. All viewers that I had in  1995  year
  77. did not satisfy me. Neither famous HIEW, neither  QVIEW  or  something
  78. else did not contain more than 50% of needed features.
  79.    And so, tired to wait when their  authors  would  write  a  viewer,
  80. which can display  any  information  without  any  problem  about  any
  81. executable file, I wrote BIEW. Though  it  looks  like  those  viewers
  82. that I've already had (of course: I borrowed some ideas), but I  think
  83. that it's easier and more modeless,  besides  I  tried  to  make  easy
  84. access  to  different  information  stored  in  file.  Nowdays,   BIEW
  85. conjoins PIII disassembler, TDUMP (  without  possibility  of  viewing
  86. .obj as OMF ), EXEHDR, DUMPEXE, NewExe Disasm,  and  also  quite  good
  87. text viewer with Russian codepage converter, and so on.
  88.    However I do not want to  compete  with  any  other  authors.  More
  89. over, I'm thankful to them, their programs pushed me  on  this  heroic
  90. step - to carry out my own ideas. Basically, I wrote BIEW  for  myself
  91. and my friends, and if somebody else appreciates it - good luck.
  92.  
  93. 2.- Installation and setup
  94. ==========================
  95.  
  96.    Today BIEW is ported under  several  operating  systems.  For  each
  97. operating system there are own nuances of adjusting  the  program.  If
  98. your operating system does not support security or if you always  work
  99. as a Administrator, then the placing of files on the disk is a  matter
  100. of your taste. Otherwise  you  can  place  program  in  your  personal
  101. subfolder (where You have write access). As a rule, you can place  all
  102. files of distribution in the same subfolder.
  103.  
  104. 2.1.- Under DOS, OS2, Win32 following files are needed:
  105. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  106.    biew.exe - executable module ;-)
  107.    biew.ini - file of initializing and keeping variables between sessions.
  108.               (is created automatically at first launch).
  109.    biew.hlp - a file containing help system. BIEW will search these files 
  110.               in startup folder.
  111. standard.skn- a file containing color skin. BIEW will search these files 
  112.               in startup folder.
  113. 2.2.- For *NIX systems:
  114. ~~~~~~~~~~~~~~~~~~~~~~~
  115.    biew     - executable module ;-)
  116.    .biewrc  - file of initializing and keeping variables between sessions.
  117.               (is created automatically at first launch).
  118.               BIEW will search for (or try to create) it in the home 
  119.               directory; if attempt will fail, then in  /tmp,  if you don't 
  120.               have access rights to /tmp, then BIEW will work without it.
  121.    biew.hlp - file containing help system. BIEW will try to open it
  122.               as /usr/lib/biew/biew.hlp and in case of failure will
  123.               work without it.
  124. standard.skn- file containing color skin. BIEW will try to open it in
  125.               same subfolder as biew.hlp and in case of failure will
  126.               work without it.
  127.  
  128. For more information see unix.txt
  129.  
  130. 2.3.- For all systems:
  131. ~~~~~~~~~~~~~~~~~~~~~~
  132. Anyway, if you do not agree with default  placing  of  files  you  can
  133. create BIEW_INI environment  variable  that  will  indicate  where  to
  134. search a file of initializing a project, through  which  you  will  be
  135. able to define all other adjustment of program.
  136.  
  137. 3.- Program startup.
  138. ====================
  139.  
  140. Why this subject appeared in documentation?
  141. Many people ask me: "How to start a program ?-("
  142. And I considered necessary to  add  this  material,  though  for  many
  143. users it may seem primitive (they can skip this subject).
  144.  
  145. I skip start the program from the  command  line  of  console  as  not
  146. requiring additional comments.
  147.  
  148. Main goal of program interface is  working  under  some  shells  (like
  149. Norton Commander, Far, Midnight and etc), to be launched  as  external
  150. viewer by F3 key. In this case adjusting  of  program  is  reduced  to
  151. adjustment of respective file manager. For major  number  of  managers
  152. an adjustment is reduced to instruction - what  external  viewer  will
  153. launched for F3 key. Name of viewed  file  will  be  sent  to  program
  154. through generally accepted in this case '!' symbols.
  155.  
  156. Example of adjusting calling BIEW for Norton Commander:
  157. `C:\biew\biew.exe !.!'
  158.  
  159. Example of adjusting calling BIEW for Far Commander:
  160. `"C:\Program Files\biew\biew.exe" !.!'
  161.  
  162. If You use Volkov Commander, then best edit vcview.ext file:
  163.  
  164. com: biew.exe !.!
  165. exe: biew.exe !.!
  166. dll: biew.exe !.!
  167. *:   your default viewer
  168.  
  169. If you are not admirer of different  commanders  and  prefer  to  work
  170. only with GUI shells (like explorer, PM/2 or KDE),  but  herewith  you
  171. even so have decided to use BIEW, the best decision is to create  BIEW
  172. icons  on  your  "desktop",  adjust  its  properties  (such  as   size
  173. consoles, font size etc) and use  drag-and-drop  technology  to  start
  174. the program. (I.e. catch by "mouse" icon of any file and drop it  over
  175. BIEW icon, herewith OS will automatically start BIEW with the name  of
  176. dropped file as an argument). I think, today major number of  desktops
  177. supporting drag-and-drop technology have such  feature  (at  least  it
  178. checked  in  WinNT,  OS/2.  Not  checked,  but  hopefully   works   on
  179. Unix-Gnome, KDE).
  180.  
  181. 4.- Short keyboard guide
  182. ========================
  183.  
  184.    Starting from version 5.00 there is following concept of keyboard
  185. usage:
  186.  
  187. F1-F10   - Basic functions of BIEW, basically for switching modes.
  188.  
  189. ShiftF1- - Help functions of BIEW, for calling service utilities.
  190. ShiftF10   
  191.  
  192. AltF1-   - Defined by executable module fragment of BIEW.
  193. AltF10     (PE, NE, ELF, etc.)
  194.  
  195. CtrlF1-  - Defined by current view mode
  196. CtrlF10    (bin, text, hex, disasm).
  197.  
  198. 4.1.- Basic keys:
  199. -----------------
  200.  
  201.   F1 - Displayed window "Intro" (About)
  202.   F2 - Mode switch:
  203.                 Binary - Binary mode. All characters displayed as is.
  204.                          ( Very quick )
  205.                 Text - Text mode. In this mode characters 0AH and  0DH
  206.                        are  string  terminators.   The   program   has
  207.                        several modes of text  view  available  through
  208.                        Ctrl-F2.
  209.                 Hex - Hexadecimal mode. In this  mode  information  is
  210.                       displayed in form of hexadecimal digits:
  211.                            Byte - as 8-bit byte,
  212.                            Word - as 16-bit word,
  213.                            DoubleWord - as 32-bit double word,
  214.                            Binary - as bits.
  215.                 Disasm - Disassembler mode. Information  is  displayed
  216.                          as   assembly   instructions   of    CPU/FPU.
  217.                          Disassembler contain full instruction set for
  218.                          PentiumIII/K7 Athlon/Cyrix-M2 microchips.
  219.                          Instructions   for   different   chips    are
  220.                          displayed  with   different   colors.   Press
  221.                          [ShiftF1] for color set legend, [CtrlF1]  for
  222.                          known instruction sets.
  223.   F3 - Select other file to view from file list in command line
  224.   F4 - Modification mode. ( Not  available  in  text  mode  ).  Allows
  225.        modifying information in binary, hexadecimal  and  disassembler
  226.        modes. Also it is possible to put the  mask  [F3]  and  execute
  227.        logical operation ( OR, XOR, AND, PUT ) for  input  information
  228.        stream  and  mask.  Current  value   of   mask   displayed   in
  229.        upper-right corner of screen [F2] - save changes to disk.  [F9]
  230.        and [CtrlBkSpace] - restore original values of  modified  byte.
  231.        In text mode this key (F4) switches Wrap/Unwrap modes.
  232.   F5 - Goto. Moves current file pointer on given offset:
  233.         - from start of file (ABSOLUTE mode).
  234.         - from current position (RELATIVE mode).
  235.         - to virtual address (VIRTUAL mode).
  236.   F6 - Reread file.
  237.   F7 - Search. Offers to  input  sequence  up  to  20  characters  and
  238.        searches  for  it.  If  given  sequence  exists  then   program
  239.        highlights it  during  all  lifetime,  or  until  other  search
  240.        sequence, or file rereading.
  241.   F8 - If viewing file is  DOS-driver,  DOS-exe  or  NEW-exe  displays
  242.        "old" "MZ" DOS header. [Enter] - jump on entry point.
  243.   F9 - Setup.
  244.   F10 - Quit function or program. [Escape] - alternative way.
  245.  
  246. 4.2.- SHIFT - common utilities and setup:
  247. -----------------------------------------
  248.  
  249.   ShiftF1 - Help for current mode.
  250.   ShiftF5 - Where - Display information about current file position.
  251.   ShiftF6 - System information:
  252.             - ASCII table of character generator.
  253.             - ...
  254.   ShiftF7 - Continues search without query for new sequence.
  255.   ShiftF8 - Auxiliary utilities:
  256.             - Digital converter. Convert numbers from one base to other:
  257.               16, +-10, 8, 2
  258.             - Calculator
  259.             - ...
  260.   ShiftF10- File utilities. Utilities that allow  to  change  contents
  261.             and size of current file.
  262.               - ChSize. Change file size.
  263.               - FStore. Write  dump  of  current  file  to  the  given
  264.                 filename  of  choice.  It   is   possible   to   write
  265.                 disassembler block of information in selected  bitness
  266.                 (USE16 or USE32). Not allowed out of range of file.
  267.               - FRestore.  Restores  already  stored  before  dump  of
  268.                 information starting from given  position  and  length
  269.                 in  file.  Not  allowed   out   of   range   of   file
  270.                 (Autotruncation).
  271.               - Insert/delete  -  Inserts  empty  block  or    deletes
  272.                 existing block of information with resizing.
  273.               - Crypt block - crypt/decrypt block with user password.
  274.                 This feature used non standard algorithm of encryption.
  275.  
  276. 4.3.- ALT - key binding to NEW-exe:
  277. -----------------------------------
  278.  
  279. Usage of these keys is not hard limited, and  generally  follows  this
  280. conception:
  281.  
  282. (function is applied only if given feature exists in current format)
  283.  
  284.   AltF1 - Help for current format.
  285.   AltF2 -  Displays  list  of  external  modules  (dynamic  or  shared
  286.           libraries) referenced by the current module (dynamic  link).
  287.           In  many  modes  by  pressing  [Enter]  list  of  referenced
  288.           external (imported) names (functions) from  required  module
  289.           needed for external link resolving will be displayed.
  290.   AltF3 - Displays list of exported names.
  291.   AltF8 - Displays native (non MZ) header of module.
  292.   AltF9 - Displays list of pages contained in the objects of module.
  293.   AltF10 - Displays object (segment) list of module.
  294.  
  295. All other keys have function defined by internal structure of module.
  296.  
  297. 4.4.- CTRL - key binding to view mode:
  298. --------------------------------------
  299.  
  300.   CtrlF1 - Additional mode help.
  301.   CtrlF2 - Select "submode" of view
  302.   CtrlF6 -  Address  Resolution  (Resolving)  -  in  hex/disasm  modes
  303.            controls details of address in left  column.  Will  display
  304.            absolute  file  offset  from  beginning  of  the  file   or
  305.            relative offset from  beginning  of  the  block/segment  of
  306.            current binary format with the name of  block/segment.  All
  307.            other keys are defined by selected mode.
  308.  
  309.   Note: you can jump on points  in  tables  or  lists  highlighted  by
  310.         black background by pressing [ENTER].
  311.  
  312. 4.5.- Functional keys, that are not displayed in prompt string
  313. --------------------------------------------------------------
  314.  
  315. Ctrl-O - Review the last screen. This allows  you  to  see  again  the
  316.          output produced by the last program executed.
  317.  
  318. 5.- CodeGuider
  319. ==============
  320.  (available only in disassembler mode)
  321.  
  322. Codeguider is mechanism of moving within code of program.  For  moving
  323. within code following keys are used:
  324.  
  325.   [0],[1],[2],...[9],[A]([a]),[B]([b]),...[Z]([z]), [BackSpace]
  326.  
  327.   If there's a pointer in the right position of  disassembler  string:
  328. =>[X] then after pressing key [X] you move to  address  referenced  by
  329. instruction.  To  return  back  press  [BackSpace].  Stack  of  return
  330. addresses is 256 cells.
  331.  
  332. 6.- Invisible features ( dark secrets )
  333. =======================================
  334.  
  335.    In any program there's number of possibilities which obviously  are
  336. not seen through menu items and prompt, but which influence  upon  the
  337. behaviour or result of program performance, and on them  is  necessary
  338. know all.
  339.    All these functional possibilities with time will be  described  in
  340. the help system, on the measure that, as it will develop.
  341.    Below brought on the whole visibility their incomplete list:
  342.  
  343. - Help System, if it exists, it is available through  [F1]  key,  even
  344.   though in  the  help  this  obviously  not  specified.  (In  greater
  345.   degrees this concerns windows of dialogues).
  346.  
  347. - Transition  on  [F5]  saves   in  the  stack  CodeGuider'á   current
  348.   position, as an address of return.
  349.  
  350. - Code page convertion:
  351.   Code page convertion of the document occurs automatically  when
  352.   calling the functions [ShiftF10] => "Save block as...",  if  program
  353.   bases  in  the  "Text  mode"  and   chosen   coding   "CodPag",   is
  354.   distinguished   from   "Current".   Herewith   save   block     will
  355.   automatically be transformed to  the  code  operating  system  page.
  356.   This  fair  for  all  modes  having  not  trivial   realization   of
  357.   convert_cp function (today it is only beside TextMode).
  358.  
  359. 7.- Undocumented features
  360. =========================
  361.  
  362. Why undocumented if it is placed into documentation?
  363. Because these features were not programmed specially and exist not  in
  364. all ports of project. I do not know all of them, but think  that  this
  365. material will grow.
  366.  
  367.    For 32-bit version of project on Win32 & DOS32 there's next feature:
  368.  
  369.    If program runs with wildcard as argument, then automatic  globbing
  370. of wildcard to full name of files occures. Example:
  371.  
  372.    biew *.c
  373.  
  374. will equivalent to run of biew with  enumeration  of  all  files  that
  375. have .c extension in the current folder. (I.e. all names  will  exists
  376. in list 'more' through F3  key).  Unfortunately  this  feature  exists
  377. only in libraries of DJGPP and Cygwin, but port for OS2 has  emx-glibc
  378. and proper to rsxnt (for it project does not oriented) does  not  have
  379. such feature. In contrast, such behaviour of project is,  by  default,
  380. documented for all *NIX system.
  381.  
  382. 8.- Program versions
  383. =====================
  384.  
  385. I'm choose following concepts of appropriation of version  numbers  to
  386. program:
  387.  
  388.     V.S.E-R.T-C.O
  389.  
  390. V - VERSION.   Basic   program  version.  Changes   in   case   global
  391.     (strategical) changes in philosophy of program or  when  principle
  392.     new features appear.
  393. S - SUBVERSION. Changes in case serious changes of code or appear  new
  394.     tactical possibilities or features.
  395. E - EXTRAVERSION. Changes at each new immediate stable release and  as
  396.     rule related with bug fixing or adding a little innovations.
  397. R - REVISION.   When   version  is  stable   then   R.T   is   omited.
  398.     Traditionally can to contain approximately following values:
  399.     pre    - PREVIEW VERSION: recommend for preview purposes only
  400.     devel  - DEVELOPMENT: version, intended  for  developers  and  beta
  401.              testers.
  402.     hotfix - extraordinary bug fixing in already released version.
  403.     fp     - fix package
  404. T - TESTLEVEL. revision level of program.
  405. æ - CPU. Indicated for which platform build the program.
  406. O - OS. Indicated for which OS build the program.
  407.  
  408.  
  409. 9.- History
  410. ===========
  411.  
  412. Amount of found errors is decreasing in each release
  413. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  414. 9.1.- Old history.
  415. ------------------
  416. v0.01       -              Was so long ago I don't remember.
  417. v0.90       - 29 dec 1995. ( 80486/387 disassembler )
  418. v0.99       - 17 jan 1996. ( Search system )
  419. v1.00 BETA  - 19 jan 1996. Final edition 1.00.
  420. v1.01 BETA  - 21 feb 1996. DOS Drivers header & system information
  421. v1.50 BETA  - 27 feb 1996. RAM viewer
  422. v1.51 BETA  - 01 mar 1996. PE header ( without tables )
  423. v2.00 BETA  - 04 mar 1996. Text viewer
  424. v2.01 BETA  - 05 mar 1996. Windows CodePage 1251 & DKOI converter
  425. v2.02 BETA  - 06 mar 1996. EBCDIC converter
  426. v3.00       - 12 mar 1996. Binary editor
  427. v3.10       - 14 mar 1996. Hexadecimal editor
  428. v3.11       - 15 mar 1996. Digital converter
  429. v3.20       - 22 mar 1996. Disassembler editor.
  430. v3.21       - 29 mar 1996. Performance detection CPU/FPU
  431. v3.21 PRO   - 01 apr 1996. Testing of disassembler.
  432. v3.22 PRO   - 02 apr 1996. Mouse support.
  433. v3.23 PRO   - 04 apr 1996. Add work with dumps. ( CtrlF2 / CtrlF3 )
  434. v3.50 PRO   - 04 may 1996. Add calculation of entry point in NE files.
  435. v3.52 PRO   - 23 may 1996. LE,LX headers. LX name tables
  436. v3.53 PRO   - 28 may 1996. PE objects.
  437. v3.60 PRO   - 11 jun 1996. 80586 disassembler.
  438. v3.61 PRO   - 31 jul 1996. PE table and entry points.
  439. v3.65 PRO   - 19 feb 1997. ImpDef utility.
  440. v3.66 PRO   - 23 may 1997. CMOS viewer.
  441. v3.70 PRO   - 28 may 1997. For Ctrl-F2 changed dump of disassembler (add
  442.                            labels), also different types of comments.
  443.                            ( Special for A. Glinkin )
  444. v3.79.99 PRO- 29 may 1997. 80686/80687 disassembler.
  445. v3.80 PRO   -  2 jun  1997. K. Boldyshev made right translation of texts
  446.                            to English. Better mouse support.
  447.                            Automatic detection of text files.
  448. v3.81 PRO   -  4 jun 1997. Correct some bugs.
  449. v3.85 PRO   - 11 jun 1997. Add displaying relocation references
  450.                            in MZ ¿ NE structures.
  451. v3.86 PRO   - 13 jun 1997. Add CodeGuider.
  452. v3.87 PRO   - 23 jun 1997. In PE format for ImportDirRVA add correction
  453.                            for MajVer,MinVer <> 0.
  454.                            Add sort of lists by F2,F3.
  455. v3.90 PRO   - 17 jul 1997. LX,LE tables and entry points.
  456. v3.95 PRO   - 28 aug 1997. Speed-up NE file binding, and corrected some
  457.                            mistakes of ver 3.90. Changed displaying prefixes
  458.                            in disassembler. Add object code hiding ( CrtlF7 )
  459.                            Rewrote Help of assembler.
  460. v3.96 PRO   -  3 sep 1997. Speed-up MZ binding, corrected some errors of 
  461.                            disassembler and shell.
  462. v3.97 PRO   -  5 sep 1997. Virtual binding PE files. ( Virtual - because
  463.                            special analyze of address of relative jump,
  464.                            but not this place, as in NE format).
  465.                            Corrected call/jmp far for MZ files!
  466.                            Corrected 66h/67h for Use16/Use32 after change
  467.                            prefix representation.
  468. v4.00 PRO   - 26 sep 1997. P5MMX disassembler.
  469.                            Optimization of disassembler.
  470.                            Changed strategy moving within disassembler:
  471.                              1. backward disassembling
  472.                              2. keys <-,-> changed file position on -+ 1 byte
  473.                              3. keys , changed file position on -+ 1 
  474.                                 instruction
  475.                            Independent remember Bin/Txt/Hex/Asm for memory
  476.                            and file.
  477.                            Rewriting Help for disassembler; expanded service
  478.                            in disassembler editor. Correct little errors.
  479. v4.01 PRO   - 20 dec 1998. Work in protected mode.
  480.  
  481. 9.2.- New history.
  482. ------------------
  483.  
  484. v5.0.0-beta.0 ! Changed interface, internal architecture of code. Now program is
  485. 16 may 1999.    more object-oriented. Rewrote aprox. 80% of code. (For program
  486.                 this started new life. Code now is simple expanded and made
  487.                 first steps in portability way - multiplatform) Somewhat lost
  488.                 (RAM, CMOS view), added alpha support Unix formats - ELF, a.out,
  489.                 coff32, arch
  490. v5.0.0-pre.1  ! Cut off:
  491. 24 may 1999.    - work with memory
  492.                 - SysInfo (First step for porting on any platforms and OS'es)
  493.                 Added:
  494.                 + hot keys in lists.
  495. v5.0.0-pre.2  ! Returned disassembler functions
  496. 26 may 1999.    + (HiLight, PanelMode, Reference resolving)
  497. v5.0.0-pre.3  ! Bug fixes:
  498. 10 jun 1999.    * work with mouse.
  499.                 * conversation long int -> string
  500.                 * little errors of disassembler
  501.                 Added:
  502.                 + Additional info for MZ format (such as: archiver, ...)
  503.                 + alpha support of PharLap format.
  504.                 + quick mode switch by Enter
  505.                 + License (F9)
  506. v5.0.0-pre.4  ! Bug fixes:
  507. 18 jun 1999.    * hex edition
  508.                 * errors of disassembler
  509.                 Added:
  510.                 + Pentium III instructions sets
  511.                 + K6 3dNow! instructions set
  512.                 + CPU family pointer in 10 position in disassembler mode
  513. v5.0.0-pre.5  ! Added:
  514. 23 jun 1999.    + Cyrix 686 instructions set
  515.                 * Rewrote help of assembler
  516.                 + Search in lists
  517. v5.0.0-pre.6  ! Changes:
  518. 30 jun 1999.    * Error of search in selective lists
  519.                 + ShiftF10 - File utilities
  520.                 * ShiftF2/ShiftF3 moved to ShiftF10 menu
  521.                 + Insert/delete block in File Utilities
  522. v5.0.0-pre.7  ! Changes:
  523. 6 jul 1999.     * Error in Save as/Restore procedures
  524.                 * Linked with new version of XDOS16 loader
  525.                 Works on:
  526.                 - DOS + QDPMI 7 (1.02)
  527.                 - Win9x
  528.                 - WinNT + SP3
  529.                 - OS2Warp.4 + FP5
  530.                 Don't works on :-((( :
  531.                 - DOS + QDPMI 9 (1.10)
  532.                 - Linux + dosemu
  533. v5.0.0-pre.8  ! Changes:
  534. 29 jul 1999.    ++++++ HURRAY!!! PROJECT IS PORTABLE +++++++++
  535.                 ++++++ JUST IN TIME 32-BITS VERSION
  536.                 ++++++ PORTED UNDER:
  537.                 ++++++ DOS32 (GO32 of DJGPP)
  538.                 ++++++ OS/2 (16 & (32 bit's version for EMX))
  539.                 ++++++ WIN32 for Cygwin and RSX
  540.                 + File Information in ShiftF10
  541.                 * Restored function AddressResolv by CtrlF6
  542.                 * Opened read-only file
  543.                 * Rewrote all console part
  544. v5.0.0-pre.9  ! Changed:
  545. 20 aug 1999.    * Disassembler errors:
  546.                   in some instructions with one operand wrong interpreted
  547.                   field mod of command
  548.                 * Accelerated video output
  549.                 + Added .ini files (There biew saved basic variables for
  550.                   restoring self state after rerun (In future will expanded)
  551.                 + Translit in Russia codepage converter
  552.                 * Corrected error in search system
  553. v5.0.0-pre.10 ! Changes:
  554. 5 oct 1999.     * Detected error of disassembler - wrong displaying arguments
  555.                   many instructions (I hope it last)
  556.                 * Don't warning, if write in file impossible
  557.                 * Correct error of edition for small files
  558.                 * Changed wrong size of some dialog windows
  559.                 * Cosmetic changes of dialog windows
  560.                 * Corrected some little errors
  561.                 + Additional Russian codepages
  562.                 + Common accelerates
  563.                 = Comparison of productivity 32 and 16 bits versions is: 4/1.
  564.                   (May be 16-bits version must die?)
  565.                 + F3 - More
  566.                 + Initial Linux port
  567.                 + Displayed pressed control key in left lower corner ( special
  568.                   for *NIX terminal )
  569.                 * Accelerated search by using Boyer-Moore algorithm
  570. v5.0.0 (Stable) ! Changes:
  571. 20 feb 2000     ++++++ I opened project under GNU GPL (Developers are welcome!)
  572.                 * Project was proofread
  573.                 + Accelerated video output
  574.                 * Corrected minor errors
  575.                 * Disassembler block rewritten as plugin
  576.                 + Best memory usage. Decreased number of static arrays.
  577.                   Dynamics array is allocated in compete mode.
  578.                 * Fixed memory leak (existed since v5.0.0-pre.9)
  579.                 + User screen (Ctrl-O)
  580.                 + Undocumented opcodes of i387SL, Cyrix487
  581.                 + Help system
  582.                 + Opcodes of AMD-K7 Athlon
  583.                 + Utilities rewritten as addons
  584.                 + Integer calculator
  585.                 + .Ini file has saved more number of modes
  586.                 + Crypt/Decrypt block
  587.                 * Fixed error of buffering of file
  588.                 * Fixed search system error
  589.                 * Correct disassembler error in SIB-block (existed since 0.xx
  590.                   versions)
  591.                 + Released time slice while waiting for input
  592.                 + Virtual jump
  593.                 + Where. Display information about current position of file.
  594.                 + CPU performance utility (restored from 4.x versions)
  595.                 * Some optimization
  596.                 + 'Put structures' in Save as dialogs for disassembler mode.
  597.                   (attempt to recreate internal structures of current file).
  598.                 + Added RDOFF support
  599.                 + Restored 0F BA opcodes family. 
  600.                   Reported by ("Patrick Alken" <wnder@underworld.net>)
  601. v5.0.1        ! Changes:
  602. 03 mar 2000     + Force mono output
  603.                 + Mouse sensitivity
  604.                 + Accelerated .ini file input/output
  605.                 * Fixed minor error in sources (ansi compliance, gcc-2.95
  606.                   compatible)
  607.                 * Fixed bug in hexadecimal editor
  608.                 * Fixed minor bugs in disassembler
  609. v5.0.2        ! Changes:
  610. 26 mar 2000     * Fixed bug of viewing 0 length file(s) reported by
  611.                   ("Alexey Plehanov" <aplehan@hoaxer.opensys.tsogu.ru>)
  612.                 * Fixed bug in disassembler editor (when screen width > 80).
  613.                   Fixed by CyberMan (cyberman@ag.ru)
  614.                 + Added fully-featured Unicode support (ru/en zones)
  615.                   and lot of Unicode-related bugs fixed.
  616.                 * Fixed bug when search system did not correctly show the found
  617.                   string in text mode with expanded tabs characters, when the
  618.                   found string was outside of screen
  619.                 + Max. width of screen increased upto 255 chars.
  620.                 * Fixed minor bugs
  621.                 * Minor optimization
  622.                 * Now function twDirectWrite is not affected cursor position
  623.                 + Win2000 ready! (thanks to Eugene Roshal roshal@rarsoft.com and
  624.                   Cyberman cyberman@ag.ru)
  625.                 + MSCV 6.0 port (ported by Cyberman cyberman@ag.ru still 
  626.                   without assembler block).
  627.                 + Hexadecimal viewer adapts to screen size.
  628.                 * Full screen editors rewrite contents lesser.
  629.                 * If value of item written to .ini file has % symbol,
  630.                   then this string is written to .ini file within #nosmart
  631.                   #smart records.
  632. 5.0.3         ! Changes:
  633. 31 mar 2000     * Fixed bug of lost title and footer in some windows.
  634.                   (twRefreshWin now updates only internal part of window,
  635.                   but entire window is updated with twRefreshFullWin)
  636.                 * Fixed bug of creating temporary files when it was unable
  637.                   to open viewed file.
  638.                 * Convert OS/2 rc to UNIX errno.
  639.                 * In windows that used own filling technology filler char is
  640.                   changed from 0x00(zero) to TW_DEF_FILLER.
  641.                   Thanks to Paul Sokolovsky <Paul.Sokolovsky@technologist.com>
  642.                 * All constants from twin.h file now have prefix TW_*.
  643.                 * Found way to avoid problem of bugs of console input
  644.                   under Win95. Works while with the little delay.
  645.                   Tested on Win95 PE, OSR2, Win98
  646.                   Fixed by Alexander Lokhan'ko <alex@eunet.lt>
  647. 5.0.4         ! Changes:
  648. 14 apr 2000     * Removed slight delay in win9x console bug workaround code.
  649.                   Fixed by Alexander Lokhan'ko <alex@eunet.lt>
  650.                 * Fixed bug in UNICODE, incorretly displayed symbol 0xFE
  651.                   from cp437/cp866 (BLACK SQUARE).
  652.                 * Fixed text mode bug (caused GPF/segfault) when
  653.                   viewing any binary file as UNICODE text.
  654.                 * Removed warning 'fnUnix2Dos discards const attributes'
  655.                   for DOS, OS/2, Win32 platforms.
  656.                 * Fixed bug of wrong keyboard codes for SHIFT+key under Win9x
  657.                   (existed since 5.0.3)
  658.                 * Minor optimization.
  659.                 * Fixed minor bugs.
  660.                 * Added BeOS support
  661. 5.1.0         ! Changes:
  662. 02 jun 2000     * Some changes in structures of source tree,                
  663.                   rewritten makefiles, kbd_code.h. (pgcc-2.95.2 compatible)
  664.                 * Since this release all platform independed binary files
  665.                   will be stored in bin_rc subfolder in source package.
  666.                 * Fixed bug of nonredrawing hex-window when text window is 
  667.                   updates in hexadecimal editor.
  668.                   Reported by Alexander Lokhan'ko <alex@eunet.lt>
  669.                 * Some revision functionality and fixing some bugs in text 
  670.                   window library. Little accelerating of project.
  671.                 * Revision of .ini library. Accelerated work with .ini files.
  672.                 + Increased documentation.
  673.                 * Fixed bug in disassembler mode - incorrectly displayed
  674.                   percents. Reported by Barlog <barlog@mail.ru>
  675.                 * Fixed bug of incorrectly displaying new source when new source
  676.                   selectes through F3(more).
  677.                 * Fixed bug of non aligned on four columns, when file viewed as
  678.                   byte in hecadecimal mode.
  679.                   Reported by "Stanislav Shenk" <live-evil@mtu-net.ru>
  680.                 + Fully featured COFF386 support.
  681.                 + Add skin support.
  682.                 + Add color to help system.
  683.                 * Fixed bug of highlighting search result (caused GPF /segfault),
  684.                   when width of screen > 80 characters.
  685.                   Reported by Alexey Kuznetsov <flame@baltnet.ru>
  686.                 * Fixed bug in disassembler (lost ib (2-nd argument) 
  687.                   in 'enter' instruction)
  688.                 * Fixed bug in module of PE format - GPF/segfault when viewing
  689.                   import table with very long names.
  690.                   Reported by Alexey Kuznetsov <flame@baltnet.ru>
  691.                 * Fixed bug in module of LX format - calculation of entry point
  692.                   was blocked. Detect LX format even "old" MZ header is lost.
  693.                 + !!! STRESS TEST of program and lot of bug fixed !!!
  694.                 * Fixed bug of NLS file names on Win32.
  695.                   Reported by Eugene Suslikov <sen@kmr.ru>
  696.                 * Viewing file now opened in read only mode.
  697.                 * Extended support of symbolic tables in ELF and autodetected
  698.                   endian of ELF.
  699.                 + Tried to prevent a program from infinity loops, when binary
  700.                   file is broken or corrupt.
  701.                   Reported by Eugene Suslikov <sen@kmr.ru>
  702.                 * Fixed bug when search system displayed only part of the found
  703.                   string in the text mode with expanded tabs characters.
  704.                 + Added new experimental calling convention: __FASTCALL__
  705.                   defined in lib/sysdep/##__MACHINE_/_inlines.h
  706.                   Capacity to work was tested for gcc-2.7.2.3 - pgcc-2.95.2
  707.                   (gcc-2.7.2.3 looks the most trustworthy).
  708.                   Most functions were modified. Executable is reduced on ~17Kb
  709.                   and gained some speedup.
  710.                   Remarks: using this technology possible only if C-library
  711.           of host system is fully compliant with accepted standards
  712.           (saving of registers: esi, edi, ebx and etc.).
  713.                   So cdecl and fastcall versions under os2-emx, linux and unix
  714.                   have same results of work, but under winnt-crtdll.dll - 
  715.                   different. Therefore, this technology is possible to use only
  716.                   when using libraries (external and statically linked),
  717.                   compiled with gcc and only after frequently testing.
  718.                   __FASTCALL__ is part of stress test technology.
  719. 5.1.1         ! Changes:
  720. 23 jun 2000     * Minor changes, fixes and optimization.
  721.                 + Initial Watcom C and DOS/4GW port (see mk_files/makefile.wc)
  722.                 + Added new flag for ia32: -fshort-enums
  723.                   (For details see "Optimization notes" in "release.txt")
  724.                 * Suppressed most compilation extra warnings.
  725.                 * Fixed bug of denied writting in FileUtils and disassembler,
  726.                   which appeared after opening file in readonly mode.
  727.                 + Added opcode FFREEP, found in documentation on Athlon
  728.                   Publication # 22007 Rev: D and documented as available for all
  729.                   32-bit x86 processors.
  730.                 * Fixed bug of uninitializing lx_cache in LE format. (le_cache
  731.                   more not used).
  732. 5.1.2         ! Changes:
  733. 06 jul 2000     * MSVC compile fixes
  734.                   Fixed by CyberMan <cyberman@ag.ru>
  735.                 * Fixed bug of incorrect displaying in binary submode of
  736.                   textmode.
  737.                 * Fixed bug of sorting in listboxes.
  738.                 + Extended coff386 format navigation
  739.                 * Rewritten twin library and vio.c in endian independed manner
  740.                   Changed interface to twWriteBuffer, twReadBuffer functions!!!
  741.                   (Probably should work on non-little endian platforms).
  742.                 + Qualitive speedup Win32 input/output by use of
  743.                   WaitForSingleObject
  744.                 * lib subfolder renamed to biewlib
  745.                 * Removed all redirecting headers.
  746.                 * Bugfixes and changes in colorset.c and standard.skn
  747.                 * Other minor changes and fixes.
  748. 5.2.0-pre.1   ! Changes:
  749. 22 sep 2000     * Improved sources documentation
  750.                 * Doxygen compatible commentaries
  751.                 * __FASTCALL__ macros defined as __stdcall__ by default
  752.                 * In windows that used own filling technology changed using
  753.                   strncpy to memcpy. strncpy function caused filling output
  754.                   buffer with 0x00 characters:
  755.                   As it defined in GNU-glibc manual:
  756.  
  757.                       If the length of FROM is less than SIZE, then `strncpy'
  758.                       copies all of FROM, followed by enough null characters to
  759.                       add up to SIZE characters in all.  This behavior is rarely
  760.                       useful, but it is specified by the ISO C standard.
  761.  
  762.                   Reported by Sergey Ratnikov <RatnikovS@mail.ru>
  763.                 * Fixed bug of wrong computing entries in Symbol Table of elf386
  764.                 * Fixed bug of wrong computing segments when they are unordered
  765.                   in elf386 format
  766.                 * OS depended release of all file related functions.
  767.                 * P4 compatible CPU Performance tool.
  768.                 * Fixed bug of nondestroying of CurrPEChain in destroyPE
  769.                   Fixed by "Kostya Nosov" <k-nosov@yandex.ru>
  770.                 * Fixed bug of nondisplaying import names when idFlags field
  771.                   is NULL. Described in book of Matt Pietrek 
  772.                   "Windows 95 System Programming Secrets".
  773.                   Fixed by "Kostya Nosov" <k-nosov@yandex.ru>
  774.                 + For PE format hidding .dll extension in import names at
  775.                   references resolving only.
  776.                   Added by "Kostya Nosov" <k-nosov@yandex.ru>
  777.                 + Added forwarding references for PE format and dereferencing
  778.                   ret instructions.
  779.                   Added by "Kostya Nosov" <k-nosov@yandex.ru>
  780.                   Applied to all formats by author, as new menu item of
  781.                   disassembler: reference prediction.
  782.                 + Added dysplaying of virtual address in address column
  783.                   format and as argument of jump insns.
  784.                   For PE added by "Kostya Nosov" <k-nosov@yandex.ru>
  785.                   Applied to all formats by author
  786.                 + Modified codenavigation for indirect jmp and call for
  787.                   Reference resolving = navigation
  788.                   Modified by "Kostya Nosov" <k-nosov@yandex.ru>
  789.                 + Modified code navigation system: for same target addresses of
  790.                   location are used same keys.
  791.                   Modified by "Kostya Nosov" <k-nosov@yandex.ru>
  792.                 + Saving dump of disassembler to file has virtual addresses
  793.                   if it selected in disassembler.
  794.                 + Added references prediction in disassembler. Will tend
  795.                   to growing in future versions.
  796. 5.2.0-pre.2   ! Changes:
  797. 29 sep 2000     + Pentium-4 (Willamette) disassembler.
  798.                   (+144 new instructions of SSE2)
  799.                 * Fixed wrong order of operands on some MMX (not SSE)
  800.                   instructions. (Right disassembling, but wrong order).
  801.                 * Fixed codeguide problem with BkSpace key. Existed since
  802.                   5.2.0-pre.1
  803. 5.2.0-pre.3   ! Changes:
  804. 13 oct 2000     * Fixed control of object bounds in PE format.
  805.                   Fixed by "Kostya Nosov" <k-nosov@yandex.ru>
  806.                 + Finalized developer documentation.
  807.                 + Improved reference prediction, references are displaying even
  808.                   when internal fixup is detected or when operand is
  809.                   dislpacement but not immediate.
  810.                 + Colored commentaries of reference prediction.
  811.                 + New prediction: LEAVE. It is applied when jump is not referred
  812.                   to RET insn directly, but it obviously return from routine.
  813.                   Example:
  814.                             jmpC YYYY ; RETURN
  815.                             jmpC XXXX ; LEAVE
  816.                             ...
  817.                       XXXX:
  818.                             pop  edx
  819.                             mov  esp, ebp
  820.                             pop  ebp
  821.                       YYYY:
  822.                             ret  NNNN
  823. 5.2.0         ! Changes:
  824. XX oct 2000     * Fixed minor errors
  825.                 * Minor optimization
  826.                 * Increased reference prediction depth.
  827.                 * Improved prediction of LEAVE.
  828.                 * Fixed interpretation of 2 byte displacement of ModRM and
  829.                   immediate operands of x86 disassembler as signed if it
  830.                   meaningfully for instruction.
  831.                   Reported by "Kostya Nosov" <k-nosov@yandex.ru>
  832.                 * Fixed interpretation of 4 byte displacement of ModRM and
  833.                   immediate values of x86 disassembler. 
  834.                   If ModRM contains displacement only it is unsigned, otherwise
  835.                   - signed.
  836.                   Immediate operand of add, adc, sub, sbb instructions is
  837.                   interpreting as signed. For any other instructions such
  838.                   conversions are ambiguous.
  839.                 * Minor changes in dialogs.
  840.                 * Fixed problem with pseudographics under *nix-terminal.
  841.                 * In module twin.c: added checking of bounds of physical
  842.                   screen buffer.
  843.                 * Fixed minor bugs in textmode plugin.
  844.                 + Since curses library (is used in Unix versions)
  845.                   has 1 second delay after ESCAPE key pressing, for it was
  846.                   added alias - F10, in general, anywhere.
  847. []======================================================================[]
  848. []  Thank you for your interest.                                        []
  849. []  Nick Kurshev.                                                       []
  850. []======================================================================[]
  851.