home *** CD-ROM | disk | FTP | other *** search
- 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!
-