
۲
۲
۲
۲                                          
۲                                                     
۲                                                      
۲                                                    
۲                                                     
۲                                                     
۲                                                
۲                                                                  
۲                          Ver 5.0.0                               
۲                          20 feb 2000.                            
۲                                                                  
۲    Made in Kazan.Tatarstan.Russia. Written By Nick Kurshev.      
۲                                                                  
۲         WWW:  http://biew.sourceforge.net                        
۲         FTP:  ftp://biew.sourceforge.net/pub/biew/               
۲        mail:  nick@voshod.com (up to 8Mb)                        
۲               nickols_k@mail.ru (up to 1Mb)                      
۲                                                                  
۲  My ICQ UIN: 40013254   (please use it for getting information   
۲                              about my coordinates only.          
۲                                  I'm rare guest here)            
۲
۲
۲


 Preamble
 ========

    Biew  is  Binary  vIEWer  with   built-in   editor   for   binary,
hexadecimal and disassembler modes. The program also has  text  viewer
with different  Russia  codepages  support  (Windows-1251,  MSDOS-866,
etc.). Run the program with  -?  or  without  arguments  for  help  on
program switches.
    This program is Free and can be redistributed on any
 computers
without any limits. For details see license through
 [F1]-[F3] key.

 BIEW history
 ============

   Why did I write BIEW? As for me, I  was  always  looking  for  some
powerful viewer of binary files. All viewers that I had in  1995  year
did not satisfy me. Neither famous HIEW, neither  QVIEW  or  something
else did not contain more than 50% of needed features.
   And so, tired to wait when their  authors  would  write  a  viewer,
which can display  any  information  without  any  problem  about  any
executable file, I wrote BIEW. Though  it  looks  like  those  viewers
that I've already had (of course: I borrowed some ideas), but I  think
that it's easier and more modeless,  besides  I  tried  to  make  easy
access  to  different  information  stored  in  file.  Nowdays,   BIEW
conjoins PIII disassembler, TDUMP (  without  possibility  of  viewing
.obj as OMF ), EXEHDR, DUMPEXE, NewExe Disasm,  and  also  quite  good
text viewer with Russian codepage converter, and so on.
   However I do not want to  compete  with  any  other  authors.  More
over, I'm thankful to them, their programs pushed me  on  this  heroic
step - to carry out my own ideas. Basically, I wrote BIEW  for  myself
and my friends, and if somebody else appreciates it - good luck.

 Installation and setup
 ======================

   Today BIEW is ported under  several  operating  systems.  For  each
operating system there are own nuances of adjusting the program.  If
your operating system does not support security or if you always  work
as a Administrator, then the placing of files on the disk is a
 matter
of your taste. Otherwise you can place program in your
 personal subfolder
(where You have write access). As a rule, you can
 place all files of
distribution in the same subfolder.

Under DOS, OS2, Win32 following files are needed:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   biew.exe - executable module ;-)
   biew.ini - a file of initializing a project and keeping of variable
              of project between sessions. (At first run a program  is
              created it automatically).
   biew.hlp - a file containing help system.
BIEW will search these files in startup folder.

For *NIX systems:
~~~~~~~~~~~~~~~~~
   biew     - executable module ;-)
   .biewrc  - a file of initializing a project and keeping of variable
              of project between sessions. (At first run a program  is
              created it automatically). BIEW will search (or  try  to
              create its) in the directory determined  by  environment
              variable HOME, if attempt will fail, then in  /tmp,  but
              if You don't have access rights in /tmp, then will  work
              without it.
   biew.hlp - a file containing help system. BIEW will try to open its
              as /usr/lib/biew/biew.hlp and in  case  of  the  failure
              attempt will work without it.

For all systems:
~~~~~~~~~~~~~~~~
Anyway, if you do not agree with default  placing  of  files  you  can
create BIEW_INI environment  variable  that  will  indicate  where  to
search a file of initializing a project, through  which  you  will  be
able to define all other adjustment of program.

 Short keyboard guide
 ====================

   Starting from version 5.00 there is following concept  of  keyboard
usage:

F1-F10   - Basic functions of BIEW, basically for switching modes.

ShiftF1- - Help functions of BIEW, for calling service utilities.
ShiftF10   

AltF1-   - Defined by executable module fragment of BIEW.
AltF10     (PE, NE, ELF, etc.)

CtrlF1-  - Defined by current view mode
CtrlF10    (bin, text, hex, disasm).

Basic keys:
-----------

  F1 - Displayed window "Intro" (About)
  F2 - Mode switch:
                Binary - Binary mode. All characters displayed as is.
                         ( Very quick )
                Text - Text mode. In this mode characters 0AH and  0DH
                       are  string  terminators.   The   program   has
                       several modes of text  view  available  through
                       Ctrl-F2.
                Hex - Hexadecimal mode. In this  mode  information  is
                      displayed in form of hexadecimal digits:
                           Byte - as 8-bit byte,
                           Word - as 16-bit word,
                           DoubleWord - as 32-bit double word,
                           Binary - as bits.
                Disasm - Disassembler mode. Information  is  displayed
                         as   assembly   instructions   of    CPU/FPU.
                         Disassembler contain full instruction set for
                         PentiumIII/K7 Athlon/Cyrix-M2 microchips.
                         Instructions   for   different   chips    are
                         displayed  with   different   colors.   Press
                         [ShiftF1] for color set legend, [CtrlF1]  for
                         known instruction sets.
  F3 - Select other file to view from file list in command line
  F4 - Modification mode. ( Not  available  in  text  mode  ).  Allows
       modifying information in binary, hexadecimal  and  disassembler
       modes. Also it is possible to put the  mask  [F3]  and  execute
       logical operation ( OR, XOR, AND, PUT ) for  input  information
       stream  and  mask.  Current  value   of   mask   displayed   in
       upper-right corner of screen [F2] - save changes to disk.  [F9]
       and [CtrlBkSpace] - restore original values of  modified  byte.
       In text mode this key (F4) switches Wrap/Unwrap modes.
  F5 - Goto. Moves current file pointer on given offset:
        - from start of file (ABSOLUTE mode).
        - from current position (RELATIVE mode).
        - to virtual address (VIRTUAL mode).
  F6 - Reread file.
  F7 - Search. Offers to  input  sequence  up  to  20  characters  and
       searches  for  it.  If  given  sequence  exists  then   program
       highlights it  during  all  lifetime,  or  until  other  search
       sequence, or file rereading.
  F8 - If viewing file is  DOS-driver,  DOS-exe  or  NEW-exe  displays
       "old" "MZ" DOS header. [Enter] - jump on entry point.
  F9 - Setup.
  F10 - Quit program. [Escape] - alternative way.

SHIFT - common utilities and setup:
-----------------------------------

  ShiftF1 - Help for current mode.
  ShiftF5 - Where - Display information about current file position.
  ShiftF6 - System information:
            - ASCII table of character generator.
            - ...
  ShiftF7 - Continues search without query for new sequence.
  ShiftF8 - Auxiliary utilities:
            - Digital converter. Convert numbers from one base to other:
              16, +-10, 8, 2
            - Calculator
            - ...
  ShiftF10- File utilities. Utilities that allow  to  change  contents
            and size of current file.
              - ChSize. Change file size.
              - FStore. Write  dump  of  current  file  to  the  given
                filename  of  choice.  It   is   possible   to   write
                disassembler block of information in selected  bitness
                (USE16 or USE32). Not allowed out of range of file.
              - FRestore.  Restores  already  stored  before  dump  of
                information starting from given  position  and  length
                in  file.  Not  allowed   out   of   range   of   file
                (Autotruncation).
              - Insert/delete  -  Inserts  empty  block  or    deletes
                existing block of information with resizing.
              - Crypt block - crypt/decrypt block with user password.
                This feature used non standard algorithm of encryption.

ALT - key binding to NEW-exe:
-----------------------------

Usage of these keys is not hard limited, and  generally  follows  this
conception:

(function is applied only if given feature exists in current format)

  AltF1 - Help for current format.
  AltF2 -  Displays  list  of  external  modules  (dynamic  or  shared
          libraries) referenced by the current module (dynamic  link).
          In  many  modes  by  pressing  [Enter]  list  of  referenced
          external (imported) names (functions) from  required  module
          needed for external link resolving will be displayed.
  AltF3 - Displays list of exported names.
  AltF8 - Displays native (non MZ) header of module.
  AltF9 - Displays list of pages contained in the objects of module.
  AltF10 - Displays object (segment) list of module.

All other keys have function defined by internal structure of module.

CTRL - key binding to view mode:
--------------------------------

  CtrlF1 - Additional mode help.
  CtrlF2 - Select "submode" of view
  CtrlF6 -  Address  Resolution  (Resolving)  -  in  hex/disasm  modes
           controls details of address in left  column.  Will  display
           absolute  file  offset  from  beginning  of  the  file   or
           relative offset from  beginning  of  the  block/segment  of
           current binary format with the name of  block/segment.  All
           other keys are defined by selected mode.

  Note: you can jump on points  in  tables  or  lists  highlighted  by
        black background by pressing [ENTER].

 CodeGuider
 ==========
 (available only in disassembler mode)

Codeguider is mechanism of moving within code of program.  For  moving
within code following keys are used:

  [0],[1],[2],...[9],[A]([a]),[B]([b]),...[Z]([z]), [BackSpace]

  If there's a pointer in the right position of  disassembler  string:
=>[X] then after pressing key [X] you move to  address  referenced  by
instruction.  To  return  back  press  [BackSpace].  Stack  of  return
addresses is 256 cells.

Functional keys, that are not displayed in prompt string:
=========================================================

Ctrl-0 - Review the last screen. This allows  you  to  see  again  the
         output produced by the last program executed.

 History
 =======

Amount of found errors is decreasing in each release
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

v0.01       -              Was so long ago I don't remember.
v0.90       - 29 dec 1995. ( 80486/387 disassembler )
v0.99       - 17 jan 1996. ( Search system )
v1.00 BETA  - 19 jan 1996. Final edition 1.00.
v1.01 BETA  - 21 feb 1996. DOS Drivers header & system information
v1.50 BETA  - 27 feb 1996. RAM viewer
v1.51 BETA  - 01 mar 1996. PE header ( without tables )
v2.00 BETA  - 04 mar 1996. Text viewer
v2.01 BETA  - 05 mar 1996. Windows CodePage 1251 & DKOI converter
v2.02 BETA  - 06 mar 1996. EBCDIC converter
v3.00       - 12 mar 1996. Binary editor
v3.10       - 14 mar 1996. Hexadecimal editor
v3.11       - 15 mar 1996. Digital converter
v3.20       - 22 mar 1996. Disassembler editor.
v3.21       - 29 mar 1996. Performance detection CPU/FPU
v3.21 PRO   - 01 apr 1996. Testing of disassembler.
v3.22 PRO   - 02 apr 1996. Mouse support.
v3.23 PRO   - 04 apr 1996. Add work with dumps. ( CtrlF2 / CtrlF3 )
v3.50 PRO   - 04 may 1996. Add calculation of entry point in NE files.
v3.52 PRO   - 23 may 1996. LE,LX headers. LX name tables
v3.53 PRO   - 28 may 1996. PE objects.
v3.60 PRO   - 11 jun 1996. 80586 disassembler.
v3.61 PRO   - 31 jul 1996. PE table and entry points.
v3.65 PRO   - 19 feb 1997. ImpDef utility.
v3.66 PRO   - 23 may 1997. CMOS viewer.
v3.70 PRO   - 28 may 1997. For Ctrl-F2 changed dump of disassembler (add 
                           labels), also different types of comments.
                           ( Special for A. Glinkin )
v3.79.99 PRO- 29 may 1997. 80686/80687 disassembler.
v3.80 PRO   -  2 jun  1997. K. Boldyshev made right translation of texts
                           to English. Better mouse support.
                           Automatic detection of text files.
v3.81 PRO   -  4 jun 1997. Correct some bugs.
v3.85 PRO   - 11 jun 1997. Add displaying relocation references
                           in MZ  NE structures.
v3.86 PRO   - 13 jun 1997. Add CodeGuider.
v3.87 PRO   - 23 jun 1997. In PE format for ImportDirRVA add correction
                           for MajVer,MinVer <> 0.
                           Add sort of lists by F2,F3.
v3.90 PRO   - 17 jul 1997. LX,LE tables and entry points.
v3.95 PRO   - 28 aug 1997. Speed-up NE file binding, and corrected some
                           mistakes of ver 3.90. Changed displaying prefixes
                           in disassembler. Add object code hiding ( CrtlF7 )
                           Rewrote Help of assembler.
v3.96 PRO   -  3 sep 1997. Speed-up MZ binding, corrected some errors of 
                           disassembler and shell.
v3.97 PRO   -  5 sep 1997. Virtual binding PE files. ( Virtual - because
                           special analyze of address of relative jump,
                           but not this place, as in NE format).
                           Corrected call/jmp far for MZ files!
                           Corrected 66h/67h for Use16/Use32 after change
                           prefix representation.
v4.00 PRO   - 26 sep 1997. P5MMX disassembler.
                           Optimization of disassembler.
                           Changed strategy moving within disassembler:
                             1. backward disassembling
                             2. keys <-,-> changed file position on -+ 1 byte
                             3. keys , changed file position on -+ 1 
                                instruction
                           Independent remember Bin/Txt/Hex/Asm for memory
                           and file.
                           Rewriting Help for disassembler; expanded service
                           in disassembler editor. Correct little errors.
v4.01 PRO   - 20 dec 1998. Work in protected mode.
v5.0.0-beta.0 - 16 may 1999. Changed interface, internal architecture of
                           code. Now program is more object-oriented.
                           Rewrote aprox. 80% of code. (For program this
                           started new life. Code now is simple expanded and
                           made first steps in portability way -
                           multiplatform) Somewhat lost (RAM, CMOS view),
                           added alpha support Unix formats - ELF, a.out,
                           coff32, arch
v5.0.0-pre.1 - 24 may 1999. Cut off:
                             - work with memory
                             - SysInfo (First step for porting on any
                               platforms and OS'es)
                           Added:
                             + hot keys in lists.
v5.0.0-pre.2 - 26 may 1999. Returned disassembler functions
                             + (HiLight, PanelMode, Reference resolving)
v5.0.0-pre.3 - 10 jun 1999. Bug fixes:
                             * work with mouse.
                             * conversation long int -> string
                             * little errors of disassembler
                            Added:
                             + Additional info for MZ format
                               (such as: archiver, ...)
                             + alpha support of PharLap format.
                             + quick mode switch by Enter
                             + License (F9)
v5.0.0-pre.4 - 18 jun 1999. Bug fixes:
                             * hex edition
                             * errors of disassembler
                            Added:
                             + Pentium III instructions sets
                             + K6 3dNow! instructions set
                             + CPU family pointer in 10 position
                               in disassembler mode
v5.0.0-pre.5 - 23 jun 1999.  Added:
                             + Cyrix 686 instructions set
                             * Rewrote help of assembler
                             + Search in lists
v5.0.0-pre.6 - 30 jun 1999. Changes:
                             * Error of search in selective lists
                             + ShiftF10 - File utilities
                             * ShiftF2/ShiftF3 moved to ShiftF10 menu
                             + Insert/delete block in File Utilities
v5.0.0-pre.7 -  6 jul 1999. Changes:
                             * Error in Save as/Restore procedures
                             * Linked with new version of XDOS16 loader
                               Works on:
                                   - DOS + QDPMI 7 (1.02)
                                   - Win9x
                                   - WinNT + SP3
                                   - OS2Warp.4 + FP5
                               Don't works on :-((( :
                                   - DOS + QDPMI 9 (1.10)
                                   - Linux + dosemu
v5.0.0-pre.8 - 29 jul 1999.  Changes:
                             ++++++ HURRAY!!! PROJECT IS PORTABLE +++++++++
                             ++++++ JUST IN TIME 32-BITS VERSION
                             ++++++ PORTED UNDER:
                                 ++++++ DOS32 (GO32 of DJGPP)
                                 ++++++ OS/2 (16 & (32 bit's version for EMX))
                                 ++++++ WIN32 for Cygwin and RSX
                             + File Information in ShiftF10
                             * Restored function AddressResolv by CtrlF6
                             * Opened read-only file
                             * Rewrote all console part
v5.0.0-pre.9 - 20 aug 1999. Changed:
                             * Disassembler errors:
                                in some instructions with one operand
                                wrong interpreted field mod of command
                             * Accelerated video output
                             + Added .ini files (There biew saved
                               basic variables for restoring self state
                               after rerun
                               (In future will expanded)
                             + Translit in Russia codepage converter
                             * Corrected error in search system
v5.0.0-pre.10 -  5 oct 1999. Changes:
                             * Detected error of disassembler -
                               wrong displaying arguments many instructions
                               (I hope it last)
                             * Don't warning, if write in file impossible
                             * Correct error of edition for small files
                             * Changed wrong size of some dialog windows
                             * Cosmetic changes of dialog windows
                             * Corrected some little errors
                             + Additional Russian codepages
                             + Common accelerates
                             = Comparison of productivity 32 and 16
                               bits versions is: 4/1. (May be 16-bits version
                               must die?)
                             + F3 - More
                             + Initial Linux port
                             + Displayed pressed control key in left lower
                               corner ( special for *NIX terminal )
                             * Accelerated search by using Boyer-Moore
                               algorithm
v5.0.0 20 feb 2000 (Stable)  Changes:
                             ++++++ I was open project under GNU GPL
                                    (Developers welcome!)
                             * Project was proofread
                             + Accelerated video output
                             * Corrected minor errors
                             * Disassembler block rewritten as plugin
                             + Best memory usage. Decreased number of static
                               arrays. Dynamics array is allocated in 
                               compete mode.
                             * Fixed memory leak (existed since 
                               v5.0.0-pre.9)
                             + User screen (Ctrl-O)
                             + Undocumented opcodes of i387SL, Cyrix487
                             + Help system
                             + Opcodes of AMD-K7 Athlon
                             + Utilities rewritten as addons
                             + Integer calculator
                             + .Ini file has saved more number of modes
                             + Crypt/Decrypt block
                             * Fixed error of buffering of file
                             * Fiexed search system error
                             * Correct disassembler error in SIB-block
                               (existed since 0.xx versions)
                             + Released time slice while waiting for input
                             + Virtual jump
                             + Where. Display information about current
                               position of file.
                             + CPU performance utility 
                               (restored from 4.x versions)
                             * Some optimization
                             + 'Put structures' in Save as dialogs for
                               disassembler mode. (Attemp recreate of
                               internal structures of current file).
                             + Added RDOFF support
                             + Restored 0F BA opcodes family.

Thank you for your interest.
Nick Kurshev.
