home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / exemap.zip / EXEMAP.DOC < prev    next >
Text File  |  1993-05-06  |  7KB  |  163 lines

  1. --------------------------------------------------------------------------
  2. VERSION 2.1.1 of EXEMAP   Availability Notice   Employee Written Software
  3. --------------------------------------------------------------------------
  4.  
  5. (c) Copyright International Business Machines Corporation 1993.
  6. All rights Reserved.
  7.  
  8. Author: Brian Kenn, Australian Programming Centre, IBM Australia
  9.  
  10.  
  11. EXEMAP is a EXE file mapping tool that now all supported formats of
  12. EXE files.  This includes the latest LX format for OS/2 V2.x, as well
  13. as the NE format for OS/2 V1.x, Windows 3.x, as well as the original
  14. DOS format.
  15.  
  16. The program is similar in concept to EXEHDR, which is part of the
  17. Toolkit, but provides more extensive information than EXEHDR currently
  18. provides.
  19.  
  20. The syntax of the command is -
  21.  
  22.        EXEMAP filename[.EXE] [[/M:loadseg]|[/P:pspseg]][/C][/N]
  23.  
  24. Where:
  25.  
  26.      filename : is any valid drive\path\name.ext file specification.
  27.                 If the extension is omitted, .EXE is assumed.
  28.    /M:loadseg : is the segment (in hex) at which the PC DOS module is
  29.                 loaded. The PSP is at loadseg-10h.
  30.     /P:pspseg : is the segment (in hex) of the PSP for PC DOS modules.
  31.                 The code is loaded at pspseg+10h.
  32.            /C : hints that the EXE file will be converted to a COM file
  33.                 and that it therefore contains the PSP. /M and /P are then
  34.                 equivalent.
  35.            /N : suppresses the display of relocation items.
  36.  
  37. When neither /M nor /P are specified, NO PSP segment will be assumed.
  38.  
  39. The output, which may be quite lengthy, can be redirected to an appropriate
  40. file for browsing.
  41.  
  42. For example:
  43.  
  44.        EXEMAP C:\OS2\DLL\PMWIN.DLL >PMWIN.MAP
  45.  
  46. Since EXEMAP.EXE is, itself, an OS/2 module, it can be used to map itself
  47. to demonstrate the new EXE header options.
  48.  
  49. EXEMAP will run on PC-DOS 3.x+ ,OS/2 V1.3 or V2.x.
  50.  
  51. NOTE: The use of the PSP and load segment options cause some problems
  52.       in an OS/2 environment.  When a module is executing under OS/2,
  53.       there is no such thing as a PSP, and the segment load address is
  54.       meaningless.  For this reason, EXEMAP does not assume any
  55.       segment fixup values, and simply reports the relocation items as
  56.       they occur in the header.  EXEMAP differs by assuming the load
  57.       segment is the same as the load segment under which it is
  58.       executing, and then uses this segment value to perform the
  59.       relocation fixup on each of the relocation items.  Options are
  60.       also provided to override this default assumption.
  61.  
  62.       EXEMAP, instead, makes no assumption about segment values.  If
  63.       the relocation item fixup function is required, an appropriate
  64.       segment value can be specified by using the /M or /P options.
  65.  
  66. The EXEMAP.ZIP file consists of the following files:
  67.  
  68.   EXEMAP.DOC  - This file.
  69.   EXEMAP.EXE  - The program file.
  70.  
  71. ======================================================================
  72.  
  73. Changes with 2.1.0
  74.  
  75. - A very major re-write of the program has been undertaken for this
  76.   version. Every part of the code has been re-written, and even today
  77.   minor bugs have been fixed in the DOS and OS/2 V1.x portions of the
  78.   code.
  79.  
  80.   For OS/2 1.3, the major outstanding bug that has been fixed, is the
  81.   correct support of relocation information in iterated data segments.
  82.  
  83.   The Windows support has been updated to 3.1 level, with several new
  84.   fields now being reported. This includes the Windows version level
  85.   of a module.
  86.  
  87.   The big-ticket item this time round is that OS/2 V2.x is now supported
  88.   in all its glory. EXEHDR gives you a partial view of the information
  89.   in an OS/2 V2.x EXE file, but EXEMAP goes much further. The
  90.   difference in this version is that much more interpretation is given
  91.   to the information, that merely displaying the data from the file.
  92.  
  93.   For example:
  94.  
  95.   - Resources are identified by major type -
  96.  
  97. ───────────────────────────────────────────────────────────────────────────────
  98. Resource Table
  99. ───────────────────────────────────────────────────────────────────────────────
  100. Type    Name    Size   Object  Offset
  101. 0001       1  00000DAA     8  00000000 Bitmap Array
  102. 0002   2,145  00002030     A  00005FB4 Bitmap Array
  103. 0003     900  00000011     7  00000000 Menu
  104. 000A       1  00000024     8  0000FDA8 Error Message Table
  105. 000A     113  000001E6     8  0000FDCC Error Message Table
  106. 0012   3,000  0000000A     B  00000000 Help Table
  107. 0012   4,002  00000392     9  0000F418 Help Table
  108. 0013   3,001  00000058     B  0000000C Help Subtable
  109. 0013   4,003  00000004     8  0000FFB4 Help Subtable
  110. ───────────────────────────────────────────────────────────────────────────────
  111.  
  112.    - Relocation information now displays module ordinals with a translation
  113.      back to the original function name used by the programmer. This makes
  114.      it very easy to identify where in a program a specific operating system
  115.      call is made.
  116.  
  117. ───────────────────────────────────────────────────────────────────────────────
  118. Page Relocation Information
  119. ───────────────────────────────────────────────────────────────────────────────
  120.  
  121. Object: 1 / Page: 1
  122.  
  123. Selector       Internal    Object 1 Alias
  124. 0264
  125.  
  126. Object: 2 / Page: 1
  127.  
  128. 16:16 Pointer  Modordinal  PMWIN.65 (WinGetMsg)  Alias
  129. 00C1
  130.  
  131. 16:16 Pointer  Modordinal  PMWIN.68 (WinDispatchMsg)  Alias
  132. 021D
  133.  
  134. 16:16 Pointer  Modordinal  PMGPI.196 (GpiCreateBitmap)  Alias
  135. 0FB4
  136.  
  137. 16:16 Pointer  Modordinal  PMWIN.69 (WinPostMsg)  Alias
  138. 0139
  139.  
  140. 16:16 Pointer  Modordinal  PMGPI.197 (GpiDeleteBitmap)  Alias
  141. 0978
  142.  
  143. 16:16 Pointer  Modordinal  PMGPI.198 (GpiSetBitmap)  Alias
  144. 0FD2
  145. ───────────────────────────────────────────────────────────────────────────────
  146.  
  147.    - Entry points in the entry table now include the external name
  148.      of the entry point, where available. This makes the identification
  149.      of entry points extremely easy.
  150.  
  151. ───────────────────────────────────────────────────────────────────────────────
  152. Entry Table
  153. ───────────────────────────────────────────────────────────────────────────────
  154. Ordinal  Obj  Offset  Flag Attributes
  155.       1    2 000046C8  03  Entry16   EXPORT GLOBAL  (DRGACCESSDRAGINFO)
  156.       2    2 0000331A  03  Entry16   EXPORT GLOBAL  (DRGADDSTRHANDLE)
  157.       3    2 00004566  03  Entry16   EXPORT GLOBAL  (DRGALLOCDRAGINFO)
  158.       4    2 00004AB5  03  Entry16   EXPORT GLOBAL  (DRGALLOCDRAGTRANSFER)
  159. ───────────────────────────────────────────────────────────────────────────────
  160.  
  161.    - All of these readability features also apply to OS/2 V1.x modules.
  162.  
  163.