home *** CD-ROM | disk | FTP | other *** search
/ Netware Super Library / Netware Super Library.iso / mis_util / read_obj / readme.txt next >
Encoding:
Text File  |  1995-04-14  |  13.9 KB  |  321 lines

  1. to make long things short:
  2.  
  3. #include standard_disclaimer
  4.  
  5.  
  6.  
  7. Welcome!
  8.  
  9. This is the 6th public beta-release of ReadObject&Library - ROL.EXE
  10. version 0.92.
  11.  
  12. PLEASE READ THIS ENTIRE DOCUMENT BEFORE USING ROL! At this time, there
  13. are many features accessible only via undocumented hotkeys. I'm still
  14. waiting for some menuing routines and will add a real SAA style menu
  15. in one of the future version.
  16.  
  17. ROL was written in FORCE 2.4c using the XSVFORCE library v1.3 (and some
  18. of my own libs).
  19.  
  20. If you stumble over a bug, or if you are missing a certain feature, just
  21. let me know!
  22.  
  23. You can reach me at one of the following adresses:
  24.  
  25.    100120,461                   on Compu$erve or
  26.    100120.461@compuserve.com    on the net
  27.    timh@gismo.rhein-ruhr.de         "
  28.    itimh@ukon.gun.de                "
  29.  
  30.  
  31. AFAIK, ROL now does read any .OBJ or .LIB file correctly, as long as it
  32. sticks to the rules set forth in the 2 documents mentioned further below.
  33.  
  34. IF you have a LIB or OBJ which ROL for some reason refuses to process,
  35. just extract that specific OBJ (via F3) and mail it to one of the above
  36. adresses.
  37.  
  38.  
  39. There is no still documentation to ROL. For one, I really don't have the time
  40. for this, and two, I think ROL is pretty much self-documenting. This document
  41. also holds quite a lot information on how ROL works. Please read it
  42. completely!
  43.  
  44. Press <F10> to get to the menu. Here are (almost) all the possible options
  45. and their hotkeys listed. Press <F1> to see a list of all the possible
  46. hotkeys. Press <ESC> or <ALT-X> or - if your using ROL in Windoze - <ALT-F4>
  47. to exit ROL.
  48.  
  49. For more information on the 'Relocatable Object Module Format' refer to
  50. SS0288.EXE in the Microsoft Library on Compu$erve (GO MSL) or download
  51. PF11H.ZIP (Portable Formats Specification v1.1) from the 'Intel Architecture
  52. Labs' forum (GO INTELARCH). These documents will explain to you all the
  53. different records and their meaning in detail.
  54.  
  55.  
  56. YOU MAY DISTRIBUTE THIS COPY OF ReadObject&Library! You MAY upload it to any
  57. bulletin boards or any other online services, in fact, I even ask you to
  58. distribute ROL while it's still in beta.
  59.  
  60. Have fun (and REPORT!)!
  61.  
  62.   -Tim
  63.  
  64. -----------------------------------------------------------------------------
  65. ROL - history                          - indicates removed items or features
  66.                                        + indicates new items or features
  67.                                        * indicates modified items or features
  68.  
  69.  
  70. v0.9 beta      02/24/95
  71.    +  initial public release as a freeware beta version
  72.  
  73.  
  74. v0.901 beta    03/09/95
  75.    *  changed name from 'ReadObject' to 'ReadObject&Library' -
  76.       RO.EXE to ROL.EXE
  77.  
  78.    *  complete re-write of the reading engine:
  79.       *  overall reading & processing speed enhanced (I think <g>)
  80.       +  now checks for an extended library dictionary (LIB versions 3.09+)
  81.          and reads it (99% faster than the method used in v0.9)
  82.       -  due to this new method, the size column doesn't display the
  83.          exact size of an object anymore and ROL can't figure out whether
  84.          it is a 'main programm module' or not. But this only relates to
  85.          LIB files with an extended dictionary created with LIB.EXE.
  86.       +  local public (LPUBDEF) & local external (LEXTDEF) records are
  87.          now inserted in the public or external symbol list and marked
  88.          with a "L" in the second last column
  89.       +  internally resolved (local) external symbols ((L)EXTDEF with a
  90.          matching (L)PUBDEF) are now marked with a "√" in the last column
  91.  
  92.    +  inserted a 1 second delay to check for repeated keystrokes while
  93.       browsing through the main module list
  94.  
  95.    +  added 'library information' window (ALT-i)
  96.  
  97.    +  added 'video setup' (ALT-v) to switch to either 25, 28 (VGA) or
  98.       43/50 (EGA/VGA) screen lines
  99.  
  100.    -  removed LNAMES/SEGDEF-browser (ALT-l), it displayed nonsense, but...
  101.  
  102.    +  added 'defined segments' viewer (ALT-g), which now correctly displays
  103.       the setup of the defined segments
  104.  
  105.    +  added 'OBJ management' (F2):                         (LIB files only)
  106.       +  needs one of the following 3 library managers either in your PATH,
  107.          in the directory where ROL.EXE resides or in the current directory
  108.          and uses the 1st match:
  109.          1)  LIB.EXE    (MS)
  110.          2)  TLIB.EXE   (Borland)
  111.          3)  FLIB.EXE   (Funcky)
  112.       !  WARNING: after deleting the last module in a library ROL will still
  113.          attempt to re-read it and then it will crash!
  114.  
  115.    +  added 'dictionary dump' (ALT-d - not listed in menu), which
  116.       lists all entries in the LIB's standard (not extended) dictionary;
  117.       this 'feature' probably is of no use to anyone (but me <g>)
  118.  
  119.    +  added 'quick scan all records' (ALT-q), which just displays every
  120.       single object module record by its number, name and size.
  121.       (if you encounter an entry like '???????' -> report!!)
  122.  
  123.    +  a couple of strings, mostly OMF descriptions, have been exported
  124.       to a file called ROL.MSG. Don't mess with this file! If you rename
  125.       ROL.EXE to something different, rename the .MSG-file too! Keep it in
  126.       the directory where ROL.EXE resides.
  127.  
  128.  
  129. v0.902 beta    03/28/95
  130.  
  131.    *  turned off the screen effects while running under Windows. They don't
  132.       work correctly in that environment (entirely removed in v0.92)
  133.  
  134.    *  trying to extract a module with a name longer than 8 chars, ROL would
  135.       pop up a message, but then re-read the whole library, which is not
  136.       neccessary. fixed
  137.  
  138.    +  now uses 'Norton-style' boxes throughout the UI. I also played around
  139.       with some of the EGA palette registers ... tell me, if you don't like
  140.       it. (removed in v0.92)
  141.  
  142.    *  some minor glitches have been fixed
  143.  
  144.    *  ROL.EXE is now compressed.
  145.  
  146.  
  147.  
  148. v0.903 beta    03/29/95
  149.  
  150.    *  ooops! I forgot to turn off blinking in v0.902. fixed
  151.       (all my testing machines just don't blink by default ...)
  152.  
  153.    +  ROL does not switch to 28 lines anymore if it detects a display size
  154.       other than 25 rows. If you switch to a different # of rows via the
  155.       video setup menu (ALT-v), ROL will switch to 25 rows on exit.
  156.  
  157.    *  calling ROL from a graphical DOS Box in Windoze messed up the box
  158.       characters. fixed
  159.  
  160.    *  using ROL with libraries that don't have an extended dictionary
  161.       displayed the wrong records due to a incorrect offset counter. fixed
  162.  
  163.    +  pressing RETURN in the main modules list will pop up the main menu -
  164.       just like F10
  165.  
  166.  
  167.  
  168. v0.91 beta     04/03/95
  169.  
  170.    *  (hopefully) fixed an error which prevented ROL from reading libraries
  171.       created with TLIB.EXE and the /e switch. Borland's extended dictionary
  172.       format is unknown to me. If you have any documentation on Borland's
  173.       extended dictionary format, please forward it to me.
  174.       ROL will process the TLIB'd libs on a module by module basis, the slow
  175.       way. You can find out, whether your lib was created with TLIB by
  176.       checking the 'library information' window (ALT-i). It will say, that an
  177.       extended dictionary is there, but its size is 0 bytes.
  178.  
  179.    *  fixed a bug in the 'defined segments' browser. A very special type
  180.       of the SEGDEF record wasn't read correctly and ROL crashed.
  181.  
  182.    +  added the F3 hotkey to extract the current module with an internal
  183.       routine. This is useful, if you don't have a library manager. It seems
  184.       to be a little quicker than calling a lib manager, too. If present,
  185.       a comment record indicating the modules name in a library will be
  186.       removed.
  187.  
  188.    +  added the SHIFT-F3 hotkey, which is an interface to a tool called
  189.       OBJASM.EXE. If this file is not found in the current directory or in
  190.       your path, this feature does not work, of course. In case of a library
  191.       file, the internal routine for extracting a module is called first. The
  192.       output of OBJASM.EXE is piped to a file with the name of the current
  193.       module + ".ASM".
  194.  
  195.    +  added a record hex dump to the 'quick scan all records' (ALT-q) menu
  196.       item. Pressing ENTER on any item in the list will pop up the hex-dump
  197.       of that specific record.
  198.  
  199.    +  added an option to save the hex-dump of the complete .OBJ to a file.
  200.       Pressing ALT-d in the hex-dump window (ALT-h) will save the entire
  201.       hex-dump of that module to a file. The output is sent to a file with
  202.       the name of the current module + ".HEX". (Note: the screen doesn't
  203.       seem to be restored correctly after exiting the hex-dump window only
  204.       when dumping a large module, eg. the BROWSE.OBJ in FORCE.LIB. This
  205.       doesn't seem to harm the further operation of ROL, though.)
  206.  
  207.    +  added a command line parameter: -? or -h. ROL won't tell you much,
  208.       though. ;-)
  209.  
  210.  
  211.  
  212. v0.92 beta     04/14/95
  213.  
  214.    +  added a browser for LEDATA records (ALT-j). This is where most of the
  215.       interesting stuff in an object module is stored. Opcodes and text, for
  216.       example. If there are no LEDATA records in a module, ROL will show a
  217.       message, that no defined segments could be found, because it reads the
  218.       segments first. If there are no defined segments, there are no LEDATA
  219.       records, basically there shouldn't be any records, but a comment.
  220.  
  221.    +  added a browser for LIDATA records (ALT-k). There's a pretty bad
  222.       recursion routine in this one. If ROL suddenly hangs or quits with
  223.       a message saying 'stack space exhausted' (or something like that),
  224.       the recursion level in a LIDATA record is too deep. Please, do me a
  225.       favour, and send that specific module to one of the above mentioned
  226.       addresses! I will then fix ROL to be able to correctly read modules
  227.       with a higher recursion level, too. The highest recursion level I
  228.       could find is only 5 level deep.
  229.  
  230.    +  added the type index field to the 'external symbols' browser. This
  231.       field is an index to a TYPEDEF record, which, if present, contains
  232.       information about the type of data declared in a PUBDEF or EXTDEF.
  233.       TYPEDEF records are currently not processed by ROL.
  234.  
  235.    +  added a little 'defined short cut keys' screen, accessible via F1,
  236.       because the main menu will not be updated anymore.
  237.  
  238.    *  ROL now opens the .OBJ or .LIB file in shared mode.
  239.  
  240.    *  fixed both the 'search symbols' and 'search all public symbols'
  241.       routines. They should now work ok.
  242.  
  243.    *  fixed the hex-dump browser so that it won't crash with an exception
  244.       error (eg. QEMM) when trying to dump it's contents to a file.
  245.  
  246.    *  fixed the interface to OBJASM, so that the object file is not erased
  247.       anymore, if it's not part of a library. (sorry 'bout that)
  248.  
  249.    *  fixed both interfaces to a library manager and OBJASM.EXE so that the
  250.       output will be stored in the directory where the library/object file
  251.       resides (and not just anywhere <g>).
  252.  
  253.    *  changed the 'public symbols' browser by leaving out some of the info
  254.       presented. Pressing ENTER on any item in the 'public symbols' list
  255.       will now pop up a small window with all the information available on
  256.       this one symbol.
  257.  
  258.    *  removed wrapping in the comments browser (e.g. pressing up arrow on
  259.       the first item used to take you to the last in the list). Also
  260.       corrected the displaying of wrong 'purge' and 'list' flags on multi-
  261.       line comments.
  262.  
  263.    *  cleaned up ROL.MSG and added descriptions for all available record
  264.       types. This results in more descriptive names in the 3 hex-dumps and
  265.       slightly longer processing time.
  266.  
  267.    *  erased the screen fading stuff and set the DOS color on exit to the
  268.       value found when ROL was called. Also removed the palette redefinition
  269.       stuff (most of it <g>).
  270.  
  271.    +  when ROL crashes for some reason (<g>), it now creates a file ROL.ERR
  272.       in the current directory. ROL.ERR contains some information on the
  273.       error, which I need. Please take the time, and fill out the missing
  274.       information and send this file to 1 of my Email adresses.
  275.  
  276.  
  277. -----------------------------------------------------------------------------
  278. ROL - known bugs & limitations
  279.  
  280.    -  the number of modules in the main list is limited to 900 per library.
  281.       According to my docs, a library may contain up to 9287 modules, but to
  282.       keep memory requirements low, I had to set a reasonable limit. ROL
  283.       simply won't read past the 900th module.
  284.  
  285.    -  the maximum number of COMENT records (ALT-c) is limited to 199.
  286.       So far, I haven't seen an object module that contains this many
  287.       comments.
  288.  
  289.    -  extracting modules (F2) with a name more than 8 characters in size
  290.       is not possible. These kind of modules seem to occur in libraries
  291.       created with the IMPLIB utility. Extracting this kind of modules
  292.       doesn't make sense, since they only contain a reference to a symbol
  293.       in a .DLL. Check the comments (ALT-c) for more details on the IMPLIB
  294.       implementation.
  295.  
  296. -----------------------------------------------------------------------------
  297. ROL - the future
  298.  
  299.    -  as of version 0.91, the menu will not be updated with the new
  300.       functions & record browsers anymore, because I'm currently waiting
  301.       for some menuing routines, to add a true SAA style menu to ROL. That's
  302.       why for example the LE- and LIDATA records have such 'intuitive'
  303.       short-cut keys for the time being.
  304.  
  305.    -  printing module lists, cross reference lists ('I-need' and 'need-me').
  306.       I still need some more info and feedback from you how the output
  307.       should look like!
  308.  
  309.    -  the above mentioned feature will come in different .EXE files bundled
  310.       with ROL v1.0 (hopefully <g>)
  311.  
  312.    -  will add a feature to tag modules in the main modul list for the
  313.       interface with a library manager and OBJASM.
  314.  
  315.    -  (you tell me!)
  316.  
  317. -----------------------------------------------------------------------------
  318.  
  319. Again, if you find any bugs or if you are missing a certain feature
  320. ... gimme details!
  321.