home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / OBJASM.ZIP / READ.ME < prev   
Text File  |  1991-01-28  |  6KB  |  120 lines

  1. OBJASM version 2.0
  2. ------------------
  3. The file OBJUNARC.EXE is a self-extracting archive (ala LHARC). To extract
  4. OBJASM from its compressed form, execute OBJUNARC.EXE.
  5.  
  6. Versions 2.0's enhancements are as follows:
  7.  
  8.     1.  80186, 80286, 80386, 80486 with corresponding 80x87 support.
  9.  
  10.     2.  OS/2 support.  OBJASM now works with OS/2 .OBJ files, excluding
  11.         import libaries, since MASM doesn't have a method of declaring
  12.         imports or exports.  The file OBJASM.EXE, itself is a bound
  13.         executable, able to execute in DOS, or in OS/2.
  14.  
  15.     3.  The additional information file (a new feature) is now able to
  16.         control how segments are dis-assembled on an entire segment basis,
  17.         and on an individual byte basis.  Also, internal labels can be
  18.         generated and named.
  19.  
  20.     4.  Better label/symbol generation.  Now the size that corresponds to
  21.         the symbol is saved and any instructions which reference that
  22.         symbol get the appropriate prefix (word ptr, byte ptr, etc) only
  23.         if the size is in-appropriate.  Also, there are some instructions
  24.         which require the prefix.
  25.  
  26.     5.  Instructions which span object module records are now detected and
  27.         handled so that the output file looks just as it did when it was
  28.         assembled/compiled.
  29.  
  30.     6.  Data variables are output with the appropriate "db","dw","dd", etc.
  31.         Previously, the size of the data was not known. Now that it is known
  32.         (see 4. above) it makes the data segments look much nicer.
  33.  
  34.     7.  Segments other than "CODE" are now dis-assembled as code segments.
  35.         The new rule is any segment which has a class name of CODE or DRIVER,
  36.         or has a segment name of CODE, or has a segment name with the word
  37.         TEXT in it, will be dis-assembled as a code segment.  The use of
  38.         a segment specifier in the additional information file will overide
  39.         this determination.
  40.  
  41.     8.  The fixup frame information is now computed correctly.  OBJASM now
  42.         produces "assume" directives dynamically to help MASM know what
  43.         to do.  The "frame" is normally the segment which a fixup is
  44.         taken relative to.  For example:
  45.                 mov     ax,offset DGROUP:myvar
  46.         In this statement the offset of myvar is taken relative to the
  47.         group DGROUP.  DGROUP is the frame.
  48.  
  49.     9.  Some sequences of instructions dis-assembled could cause the message
  50.         "Dis-assembly Record Over-run".  The main cause of this message has
  51.         been removed.  Should you get this message in the future, please
  52.         contact us.
  53.  
  54. Please read OBJASM.DOC for a more complete description of the command line
  55. arguments and the additional information file.
  56.  
  57. Below is part of the standard README file from the previous released version:
  58. ----------------------------------------------------------------------------
  59.  
  60. Version 1.3 Enhancements:
  61.  
  62.     1.  Support for the 80x87 coprocessor instructions.
  63.  
  64.     2.  Proper handling of the RET/RETF (return and return far) instructions.
  65.         This caused the addition of the command line option -4 which allows
  66.         OBJASM to be strictly MASM v4.0 compatible.  If you have MASM v5.0
  67.         or greater, this option can be ignored.
  68.  
  69.     3.  The JNB/JB instruction orders were reversed and improper.  They are
  70.         correct now.
  71.  
  72.     4.  Some of the addressing modes did not work when fixup's occurred
  73.         for the operands.  Also, mis-aligned fixups are now detected.
  74.  
  75.     5.  External definitions are now listed in the segment where they were
  76.         declared.  External definitions which are never used are listed
  77.         at the beginning (where they were before).  This produces a nice
  78.         external definitions list at the beginning of each code segment.
  79.  
  80.     6.  The old variable buff_limit was divided into two variables. They
  81.         are called 'code_string' and 'data_string'.  This allows the
  82.         string detection routine to operate better on both code segments and
  83.         data segments.
  84.  
  85.     7.  MS new local record types are now handled.  The record types are
  86.         LEXTDEF, LPUBDEF (both), and LCOMDEF.  We didn't know how to make
  87.         MS C v5.0 generate LPUBDEF or LCOMDEF records, but we did handle
  88.         them.  We were able to handle and test the LEXTDEF records.  Local
  89.         publics, communals, and externals will appear commented out with
  90.         prefix ';Static'.  For example:
  91.  
  92.                   EXTRN   myvar1
  93.                   EXTRN   myvar2
  94.           ;Static EXTRN   myvar3     ; This is a static external
  95.                   EXTRN   myvar4
  96.  
  97.     8.  A command line option -r was added to produce RASM86 compatible
  98.         assembly language (.A86 files instead of .ASM files).  The 
  99.         translation is actually better than that for MASM (it was easier 
  100.         because RASM86 is not as complicated as MASM).  Now, OBJASM can
  101.         be used to convert .A86 files to .ASM files and vice versa.
  102.  
  103.     9.  A command line option -a was added.  This option allows OBJASM
  104.         to create labels to make the output look better.  This option
  105.         is very useful in conjunction with .OBJ files created by EXEOBJ.
  106.  
  107.    10.  A command line option -h was added.  This option allows OBJASM
  108.         to put hex dump comments on most of the instructions dis-assembled.
  109.         The will display the address (relative to beginning of segment)
  110.         followed by the bytes that make up the instruction.
  111.  
  112.    11.  Tab positioning for output was normalized.  It is still not perfect,
  113.         but it is better than it was!
  114.  
  115.    12.  Only segments with the class named "CODE" are now scanned for
  116.         instructions.  The name "CODE" was is used by most of the high
  117.         level compilers, so we thought it would be safe.  If this becomes
  118.         a problem (i.e. you have instructions in your data segments, please
  119.         contact us).
  120.