Index of /netwaresl/MIS_UTIL/READ_OBJ

      Name                    Last modified       Size  Description

[DIR] Parent Directory 23-Apr-2005 03:02 - [   ] ROL.EXE 14-Apr-1995 11:46 73k [TXT] ROL.MSG 14-Apr-1995 11:46 3k [   ] RO_092B.ZIP 03-May-1995 08:59 81k

to make long things short:

#include standard_disclaimer



Welcome!

This is the 6th public beta-release of ReadObject&Library - ROL.EXE
version 0.92.

PLEASE READ THIS ENTIRE DOCUMENT BEFORE USING ROL! At this time, there
are many features accessible only via undocumented hotkeys. I'm still
waiting for some menuing routines and will add a real SAA style menu
in one of the future version.

ROL was written in FORCE 2.4c using the XSVFORCE library v1.3 (and some
of my own libs).

If you stumble over a bug, or if you are missing a certain feature, just
let me know!

You can reach me at one of the following adresses:

   100120,461                   on Compu$erve or
   100120.461@compuserve.com    on the net
   timh@gismo.rhein-ruhr.de         "
   itimh@ukon.gun.de                "


AFAIK, ROL now does read any .OBJ or .LIB file correctly, as long as it
sticks to the rules set forth in the 2 documents mentioned further below.

IF you have a LIB or OBJ which ROL for some reason refuses to process,
just extract that specific OBJ (via F3) and mail it to one of the above
adresses.


There is no still documentation to ROL. For one, I really don't have the time
for this, and two, I think ROL is pretty much self-documenting. This document
also holds quite a lot information on how ROL works. Please read it
completely!

Press <F10> to get to the menu. Here are (almost) all the possible options
and their hotkeys listed. Press <F1> to see a list of all the possible
hotkeys. Press <ESC> or <ALT-X> or - if your using ROL in Windoze - <ALT-F4>
to exit ROL.

For more information on the 'Relocatable Object Module Format' refer to
SS0288.EXE in the Microsoft Library on Compu$erve (GO MSL) or download
PF11H.ZIP (Portable Formats Specification v1.1) from the 'Intel Architecture
Labs' forum (GO INTELARCH). These documents will explain to you all the
different records and their meaning in detail.


YOU MAY DISTRIBUTE THIS COPY OF ReadObject&Library! You MAY upload it to any
bulletin boards or any other online services, in fact, I even ask you to
distribute ROL while it's still in beta.

Have fun (and REPORT!)!

  -Tim

-----------------------------------------------------------------------------
ROL - history                          - indicates removed items or features
                                       + indicates new items or features
                                       * indicates modified items or features


v0.9 beta      02/24/95
   +  initial public release as a freeware beta version


v0.901 beta    03/09/95
   *  changed name from 'ReadObject' to 'ReadObject&Library' -
      RO.EXE to ROL.EXE

   *  complete re-write of the reading engine:
      *  overall reading & processing speed enhanced (I think <g>)
      +  now checks for an extended library dictionary (LIB versions 3.09+)
         and reads it (99% faster than the method used in v0.9)
      -  due to this new method, the size column doesn't display the
         exact size of an object anymore and ROL can't figure out whether
         it is a 'main programm module' or not. But this only relates to
         LIB files with an extended dictionary created with LIB.EXE.
      +  local public (LPUBDEF) & local external (LEXTDEF) records are
         now inserted in the public or external symbol list and marked
         with a "L" in the second last column
      +  internally resolved (local) external symbols ((L)EXTDEF with a
         matching (L)PUBDEF) are now marked with a "û" in the last column

   +  inserted a 1 second delay to check for repeated keystrokes while
      browsing through the main module list

   +  added 'library information' window (ALT-i)

   +  added 'video setup' (ALT-v) to switch to either 25, 28 (VGA) or
      43/50 (EGA/VGA) screen lines

   -  removed LNAMES/SEGDEF-browser (ALT-l), it displayed nonsense, but...

   +  added 'defined segments' viewer (ALT-g), which now correctly displays
      the setup of the defined segments

   +  added 'OBJ management' (F2):                         (LIB files only)
      +  needs one of the following 3 library managers either in your PATH,
         in the directory where ROL.EXE resides or in the current directory
         and uses the 1st match:
         1)  LIB.EXE    (MS)
         2)  TLIB.EXE   (Borland)
         3)  FLIB.EXE   (Funcky)
      !  WARNING: after deleting the last module in a library ROL will still
         attempt to re-read it and then it will crash!

   +  added 'dictionary dump' (ALT-d - not listed in menu), which
      lists all entries in the LIB's standard (not extended) dictionary;
      this 'feature' probably is of no use to anyone (but me <g>)

   +  added 'quick scan all records' (ALT-q), which just displays every
      single object module record by its number, name and size.
      (if you encounter an entry like '???????' -> report!!)

   +  a couple of strings, mostly OMF descriptions, have been exported
      to a file called ROL.MSG. Don't mess with this file! If you rename
      ROL.EXE to something different, rename the .MSG-file too! Keep it in
      the directory where ROL.EXE resides.


v0.902 beta    03/28/95

   *  turned off the screen effects while running under Windows. They don't
      work correctly in that environment (entirely removed in v0.92)

   *  trying to extract a module with a name longer than 8 chars, ROL would
      pop up a message, but then re-read the whole library, which is not
      neccessary. fixed

   +  now uses 'Norton-style' boxes throughout the UI. I also played around
      with some of the EGA palette registers ... tell me, if you don't like
      it. (removed in v0.92)

   *  some minor glitches have been fixed

   *  ROL.EXE is now compressed.



v0.903 beta    03/29/95

   *  ooops! I forgot to turn off blinking in v0.902. fixed
      (all my testing machines just don't blink by default ...)

   +  ROL does not switch to 28 lines anymore if it detects a display size
      other than 25 rows. If you switch to a different # of rows via the
      video setup menu (ALT-v), ROL will switch to 25 rows on exit.

   *  calling ROL from a graphical DOS Box in Windoze messed up the box
      characters. fixed

   *  using ROL with libraries that don't have an extended dictionary
      displayed the wrong records due to a incorrect offset counter. fixed

   +  pressing RETURN in the main modules list will pop up the main menu -
      just like F10



v0.91 beta     04/03/95

   *  (hopefully) fixed an error which prevented ROL from reading libraries
      created with TLIB.EXE and the /e switch. Borland's extended dictionary
      format is unknown to me. If you have any documentation on Borland's
      extended dictionary format, please forward it to me.
      ROL will process the TLIB'd libs on a module by module basis, the slow
      way. You can find out, whether your lib was created with TLIB by
      checking the 'library information' window (ALT-i). It will say, that an
      extended dictionary is there, but its size is 0 bytes.

   *  fixed a bug in the 'defined segments' browser. A very special type
      of the SEGDEF record wasn't read correctly and ROL crashed.

   +  added the F3 hotkey to extract the current module with an internal
      routine. This is useful, if you don't have a library manager. It seems
      to be a little quicker than calling a lib manager, too. If present,
      a comment record indicating the modules name in a library will be
      removed.

   +  added the SHIFT-F3 hotkey, which is an interface to a tool called
      OBJASM.EXE. If this file is not found in the current directory or in
      your path, this feature does not work, of course. In case of a library
      file, the internal routine for extracting a module is called first. The
      output of OBJASM.EXE is piped to a file with the name of the current
      module + ".ASM".

   +  added a record hex dump to the 'quick scan all records' (ALT-q) menu
      item. Pressing ENTER on any item in the list will pop up the hex-dump
      of that specific record.

   +  added an option to save the hex-dump of the complete .OBJ to a file.
      Pressing ALT-d in the hex-dump window (ALT-h) will save the entire
      hex-dump of that module to a file. The output is sent to a file with
      the name of the current module + ".HEX". (Note: the screen doesn't
      seem to be restored correctly after exiting the hex-dump window only
      when dumping a large module, eg. the BROWSE.OBJ in FORCE.LIB. This
      doesn't seem to harm the further operation of ROL, though.)

   +  added a command line parameter: -? or -h. ROL won't tell you much,
      though. ;-)



v0.92 beta     04/14/95

   +  added a browser for LEDATA records (ALT-j). This is where most of the
      interesting stuff in an object module is stored. Opcodes and text, for
      example. If there are no LEDATA records in a module, ROL will show a
      message, that no defined segments could be found, because it reads the
      segments first. If there are no defined segments, there are no LEDATA
      records, basically there shouldn't be any records, but a comment.

   +  added a browser for LIDATA records (ALT-k). There's a pretty bad
      recursion routine in this one. If ROL suddenly hangs or quits with
      a message saying 'stack space exhausted' (or something like that),
      the recursion level in a LIDATA record is too deep. Please, do me a
      favour, and send that specific module to one of the above mentioned
      addresses! I will then fix ROL to be able to correctly read modules
      with a higher recursion level, too. The highest recursion level I
      could find is only 5 level deep.

   +  added the type index field to the 'external symbols' browser. This
      field is an index to a TYPEDEF record, which, if present, contains
      information about the type of data declared in a PUBDEF or EXTDEF.
      TYPEDEF records are currently not processed by ROL.

   +  added a little 'defined short cut keys' screen, accessible via F1,
      because the main menu will not be updated anymore.

   *  ROL now opens the .OBJ or .LIB file in shared mode.

   *  fixed both the 'search symbols' and 'search all public symbols'
      routines. They should now work ok.

   *  fixed the hex-dump browser so that it won't crash with an exception
      error (eg. QEMM) when trying to dump it's contents to a file.

   *  fixed the interface to OBJASM, so that the object file is not erased
      anymore, if it's not part of a library. (sorry 'bout that)

   *  fixed both interfaces to a library manager and OBJASM.EXE so that the
      output will be stored in the directory where the library/object file
      resides (and not just anywhere <g>).

   *  changed the 'public symbols' browser by leaving out some of the info
      presented. Pressing ENTER on any item in the 'public symbols' list
      will now pop up a small window with all the information available on
      this one symbol.

   *  removed wrapping in the comments browser (e.g. pressing up arrow on
      the first item used to take you to the last in the list). Also
      corrected the displaying of wrong 'purge' and 'list' flags on multi-
      line comments.

   *  cleaned up ROL.MSG and added descriptions for all available record
      types. This results in more descriptive names in the 3 hex-dumps and
      slightly longer processing time.

   *  erased the screen fading stuff and set the DOS color on exit to the
      value found when ROL was called. Also removed the palette redefinition
      stuff (most of it <g>).

   +  when ROL crashes for some reason (<g>), it now creates a file ROL.ERR
      in the current directory. ROL.ERR contains some information on the
      error, which I need. Please take the time, and fill out the missing
      information and send this file to 1 of my Email adresses.


-----------------------------------------------------------------------------
ROL - known bugs & limitations

   -  the number of modules in the main list is limited to 900 per library.
      According to my docs, a library may contain up to 9287 modules, but to
      keep memory requirements low, I had to set a reasonable limit. ROL
      simply won't read past the 900th module.

   -  the maximum number of COMENT records (ALT-c) is limited to 199.
      So far, I haven't seen an object module that contains this many
      comments.

   -  extracting modules (F2) with a name more than 8 characters in size
      is not possible. These kind of modules seem to occur in libraries
      created with the IMPLIB utility. Extracting this kind of modules
      doesn't make sense, since they only contain a reference to a symbol
      in a .DLL. Check the comments (ALT-c) for more details on the IMPLIB
      implementation.

-----------------------------------------------------------------------------
ROL - the future

   -  as of version 0.91, the menu will not be updated with the new
      functions & record browsers anymore, because I'm currently waiting
      for some menuing routines, to add a true SAA style menu to ROL. That's
      why for example the LE- and LIDATA records have such 'intuitive'
      short-cut keys for the time being.

   -  printing module lists, cross reference lists ('I-need' and 'need-me').
      I still need some more info and feedback from you how the output
      should look like!

   -  the above mentioned feature will come in different .EXE files bundled
      with ROL v1.0 (hopefully <g>)

   -  will add a feature to tag modules in the main modul list for the
      interface with a library manager and OBJASM.

   -  (you tell me!)

-----------------------------------------------------------------------------

Again, if you find any bugs or if you are missing a certain feature
... gimme details!