

                 ID (Intelligent Disassembler) MANUAL


  ID (Intelligent Disassembler) version 1.2 is a hacker's basic tool, and I
  am pretty suprised that I haven't seen other programs around that do this.

  Here it is, anyway.  Done in Aztec C 4.2d, under the small memory model
  (and optimizing speed-over-size).  The general call is:
  Ŀ
   ID nomefile[.com] [@cmdfile] [=adjust] [[+]entry] [-exit] [:address] [~] 
  
  where the parameters are:

  nomefile Name of the program to be disassembled.  If no extension is given,
           .com is assumed.  ID  outputs   the  resulting  assembler  code to
           standard output, so you'll have  to  redirect  it  to a file.  All
           diagnostic and debug output goes to standard  error -  they  won't
           get redirected into the file.

  cmdfile  Name of a file containing parameter-like commands, one  to a line

  adjust   The start address of the program in memory (hex). This is assumed
           to be 0100H, since .com-programs start at this address.
           .com style device drivers would need adjust 0

  entry    A entry point into the  program  (hex).    ID  only  disassembles
           reachable code, and the algorithm is very  simple:  if  no  entry
           points are given, adjust is assumed.  This often  is  not  enough
           for TSR programs, since the loader  portion  of  the  code  never
           directly jumps to the resident part

  exit     A exit address (hex). Since there is no register trace, ID cannot
           distinguish a normal DOS INT 21H from a exit request  (AH=0, 4CH)
           However, ID will stop disassembling after a INT 20H, INT 27H or a
           illegal instruction. This parameter will enable you to set a exit
           point where disassembly will stop

  address  A address that is forced to be referenced (hex).  This means that
           constant references to this address will be translated to  OFFSET
           LBaddress - though the heuristic is rather shaky...    Initially,
           only the adjust address is referenced.

  A tilde will set device driver mode (which basically makes offsets 4,6,8 &
  0xA referenced and marks addresses found  at  6 & 8  as  referenced code).

  I hope you will find this program as useful as I do.  Further developement
  ideas could be adding 8087 and other processor  commands,  having a simple
  register trace to be  able  to  distinguish  different DOS interrupts etc.

  A really major project would be making this work with .exe-style files...

	(c) 1986,87,88,89,90 Otto J. Makela
            Address:Kauppakatu 1 B 18
                    Sf-40100 Jyvaskyla
                    Finland, Europe


    esempio:  ID miofile.COM @miofile.OPN > miofile.ASM

