home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / UTILS / S / Z80DIS22.LBR / README.2Z / README.22
Text File  |  2000-06-30  |  10KB  |  265 lines

  1.  
  2.  
  3.  
  4.                            April 18, 1987
  5. This is the READ-ME file from the Z80DIS.LBR package, version 2.2
  6. ------------------------------------------------------===========
  7.  
  8.  
  9.  
  10.  
  11. A personal note from the programmer:
  12. - -------- ---- ---- --- ----------
  13.  
  14.      I    wrote this disassembler because I could not find  another
  15. that would really open up a large foreign program for inspection.
  16. RESOURCE  and all of its spin-offs give you only a pin-hole  look
  17. at  a program without indicating the important interactions  with
  18. other  parts  of the code.  Without the interactions and a  wider
  19. view,  figuring out the code purpose or data type of a code block
  20. is very hard.
  21.  
  22.      Z80DIS  eliminates  the narrow pin-hole view  of  a  program
  23. provided  by  an  interactive  display.   Z80DIS  provides  fully
  24. automated  analysis of the code structure,  well formatted output
  25. in both assembler and printer formats, a complete cross-reference
  26. coded  by  reference type,  and commenting of  DOS  interactions.
  27. Recent    improvements in this latest version add  further  utility
  28. and increase the ability to handle even larger code segments.
  29.  
  30.      For those who prefer an interactive approach to disassembly,
  31. I  recommend  the  combination    of Z80DIS  with  the  interactive
  32. disassembler DAZZLESTAR (DZ) by John Washington in  England.  Use
  33. Z80DIS for the automated analysis of the underlying structure and
  34. use  DZ  for  the interactive refinement of the  code.    John  has
  35. provided  a  DZ  command  (namely KG) to  read    the  break  table
  36. produced by Z80DIS.
  37.  
  38.      As CP/M users are getting less and less support for problems
  39. with existing 8080 or Z80 software products,  maintenance of that
  40. software has fallen to the CP/M users themselves. Z80DIS lets you
  41. examine the software and repair the problem yourself. I hope that
  42. you will find Z80DIS as useful as I have.
  43.  
  44.                   Kenneth Gielow
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                 1
  64.  
  65.  
  66.  
  67. Z80DIS 2.2                         04/18/87
  68.  
  69.  
  70. Version 2.2 change note:
  71.  
  72.      Version 2.0 added artificial intelligence to Z80DIS.
  73.  
  74.      Version 2.1 corrected a small bug in the processing of  INC,
  75.      DEC, and LD using index registers IX and IY and enhanced the
  76.      distinction between ASCII blank (20 hex) and the instruction
  77.      "JR NZ,xxxx" (also 20 hex).
  78.  
  79.      Version  2.2  modifies the output format for M-80    assembler
  80.      compatibility.  Increases    the size of program that  can  be
  81.      disassembled  by  moving cross-reference tables  to  virtual
  82.      memory  on disk.  Fixed several minor bugs.  Interprets CP/M
  83.      DOS calls and comments such calls by the function performed.
  84.  
  85. Caveat:  If you are running a system with single sided disks, you
  86.      probably do not want to upgrade from version 2.1 to  version
  87.      2.2 because of the increased off-loading of memory functions
  88.      onto disk files
  89.  
  90. Z80DIS    is a disassembler for Z80 based CP/M systems.  Z80DIS  is
  91. designed  to  generate    Z80 mnemonics  and  prepare  an  assembly
  92. language   file   with     many  special    features  for    ease   of
  93. understanding the intent of the disassembled code. The source for
  94. Z80DIS has grown to 8400 lines of pascal code.
  95.  
  96. With  Z80DIS versions 2.0 and higher,  you need know very  little
  97. about  the format of the *.COM file to produce a nearly  finished
  98. source    file  in  most    cases.    In addition  a    large  number  of
  99. convenience  features and defaults have been added that were  not
  100. present  in version 1.    The Z80DIS change history for version 2.x
  101. follows at the end of this paper.
  102.  
  103. Both  the  Z80DIS  program and the Z80DIS documentation  are  (C)
  104. Copyright  1985,  1986    and 1987 by Kenneth  Gielow;  All  Rights
  105. Reserved. While I am freely distributing the binary code for non-
  106. profit use, I am reserving the source code as a trade secret.
  107.  
  108. This  program requires a Z80 based computer running CP/M  version
  109. 2.2  or  higher.  The code was compiled for a 50K  TPA;  the  top
  110. address   is  C7FF.   This  slightly  small  size  was    done  for
  111. compatibility with CP/M 3.0 and ZCPR3.
  112.  
  113. The  following    files  will be found  on  Z80DIS21.LBR    for  this
  114. program distribution library package:
  115.  
  116.      Z80DIS.COM    - the disassembler program
  117.      Z80DIS.000    - overlay file for Z80DIS
  118.      Z80DIS.001    - overlay file for Z80DIS
  119.      Z80DIS.002    - overlay file for Z80DIS
  120.  
  121.      ZDINSTAL.COM  - a terminal command installation program
  122.      ZDINSTAL.MSG  - contains text of ZDINSTAL messages
  123.      ZDINSTAL.DTA  - contains terminal characteristics data
  124.  
  125.      Z80DIS22.DQC  - an installation manual. (Squeezed format)
  126.  
  127.  
  128.  
  129.                 2
  130.  
  131.  
  132.  
  133. Z80DIS 2.2                         04/18/87
  134.  
  135.  
  136. The  three  ZDINSTAL files are based on the TURBO  Toolbox  GINST
  137. program  and  will tailor the display command sequences for  your
  138. terminal.  The DOC file is the text of a short user manual  which
  139. explains use and installation of the program.
  140.  
  141. The  interactive  displays for parameter specification    make  the
  142. program easy to use.  All control parameters have defaults preset
  143. to the most likely values.
  144.  
  145.                FEATURES OF Z80DIS
  146.                ------------------
  147.  
  148. The  major  feature  of Z80DIS is an extensive    analysis  of  the
  149. memory    usage by the program under investigation.  This  analysis
  150. capability  forms the basis for an automatic partitioning of  the
  151. code to generate the break table.  This analysis also produces    a
  152. fully-annotated cross reference of all addresses.
  153.  
  154. A  disassembler  must know whether the bytes are instructions  or
  155. data  in order to proceed.  Z80DIS is the first  disassembler  to
  156. produce  its  own  break table for this  purpose.  Some  previous
  157. programs, such as RESOURCE, have included a search for ASCII text
  158. regions,  but have left the verification and interpretation up to
  159. the  user.  Most other disassemblers are fooled by the    trick  of
  160. adding    nonsense bytes after jumps to cause the analysis to  fall
  161. out of synchronization with instruction code interpretation.
  162.  
  163. Z80DIS    produces  an output listing which itemizes all    addresses
  164. referenced by the code,  distinguishes types of label references,
  165. marks  subroutines  and jumps and produces  an    annotated  cross-
  166. reference.  This  listing shows the exact mode of usage for every
  167. reference:  Jump absolute, Jump relative, Call, Restart, Load 16-
  168. bit,  Store 16-bit, Immediate 16-bit, Load 8-bit, Store 8-bit. In
  169. version  2.1,  this listing also shows the break table region  of
  170. residency  for    each label so that you may inspect the    list  for
  171. inconsistencies.
  172.  
  173. An  address  labeling  convention assists  in  understanding  the
  174. assembly  code generated.  Each label generated on  the  assembly
  175. listing  indicates,  by format,  not only the generic type (Jump,
  176. Call, Data, Other) of any references, but also the singularity of
  177. the reference. For example, J$02E3 used at address 02E3 indicates
  178. that  only  one reference was made to address 02E3 and that  that
  179. reference was a JUMP.
  180.  
  181. In  addition to helping you by automatic analysis of memory  use,
  182. Z80DIS also assists you by styling the presentation of the disas-
  183. sembled code.  The disassembled code is output in two forms: Both
  184. the usual *.MAC file and a printer formatted *.PRN file.
  185.  
  186. The  *.PRN file is styled to look like the output of an assembler
  187. with both the instructions and assembled bytes shown.  The juxta-
  188. position  of  the hexadecimal bytes and  the  assembly    mnemonics
  189. allows    the  user  to recognize errors caused by  an  incorrectly
  190. defined break table.
  191.  
  192.  
  193.  
  194.  
  195.                 3
  196.  
  197.  
  198.  
  199. Z80DIS 2.2                         04/18/87
  200.  
  201.  
  202.               DOCUMENTATION NOTICE
  203.               --------------------
  204.  
  205. The  original,    version 1,  user manual ran forty-plus pages  and
  206. gave extensive examples and used disassembly of the public domain
  207. program  D.COM as an example.
  208.  
  209. The version 2 manual is now eighty eight pages of detailed, what-
  210. if instructions and a dissertation on understanding and  handling
  211. large  or complex code modules.
  212.  
  213. As  the binary code for Z80DIS is now running 108K bytes and  the
  214. ascii  text for the manual is over 200K bytes,    there is  no  way
  215. that  I can get system operators to carry both.  I feel that  the
  216. program  is largely self explanatory so that you can get  started
  217. very  well  with only the minimal help of the included DOC  file.
  218. The  short user manual included here deals only  with  installing
  219. the  Z80DIS  program  and doing a simple  disassembly.    For  more
  220. serious work you will want the full manual.
  221.  
  222. The  longer manual expands on the discussion of the features  and
  223. explains  the  step-wise  approach to dealing  with  much  larger
  224. source codes. The manual also deals with disassembling code which
  225. relocates  itself.  Extensive  examples are included.  All  error
  226. messages and secondary options are discussed in detail.
  227.  
  228. The full Z80DIS USER MANUAL is available by mail.  I am asking    a
  229. nominal  charge  of $20.00 which includes the printed  and  bound
  230. manual,  postage,  handling,  and an update notification service.
  231. You  are  granted the right to make not-for-profit copies of  the
  232. manual.  The program itself is not available by mail as I do  not
  233. have   extensive,   multi-format   disk  copy    capability.   The
  234. notification  service will consist of a letter to you  anytime    a
  235. new version is released so that you may be on the lookout for it.
  236.  
  237. To  order a copy of the Z80DIS USER MANUAL,  send a request  with
  238. your name, address, and a check for $ 20.00 to --
  239.  
  240.           Kenneth Gielow
  241.           79 Tulip Lane
  242.           Palo Alto, CA 94303
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                 4
  262.  
  263.  
  264.  
  265.