DASM-11(1)                   Retro Project Manual                   DASM-11(1)


NAME
       dasm-11 - simple dis-assembler for PDP-11 binary code

SYNOPSIS
       dasm-11 [OPTION]...  FILE
       dasm-11 --help

DESCRIPTION
       dasm-11  is  a  simple disassembler for PDP-11 binary code.  It reads a
       core dump in lsm-11(5) format from FILE.  If FILE is '-' the core  dump
       is  read  from  stdin.   If FILE ends on '.gz' it is expanded with gun-
       zip(1) on-the-fly.  The disassembled code is written in MACRO-11 format
       to  stdout,  followed by a symbol table, a cross-reference table, and a
       statistics summary.


   Basic operation
       In very simplified terms, dasm-11 tries to tag each memory word as  ei-
       ther 'code', 'word', 'byte', or 'asciz' and represent it accordingly in
       MACRO-11 format. Sequences of zero 'word' or 'byte' locations are  rep-
       resented with a .blkw or .blkb  directive, respectively.

       The  MACRO-11  output  is always an exact replica of the input and con-
       tains an equivalent representation of all memory locations  defined  in
       the input file.

       In  the most basic operation mode, dasm-11 is used with the --start op-
       tion to specify one or several start addresses.  dasm-11 tags these ad-
       dresses  as  'code'  and  follows all possible code execution paths and
       tags all instructions as 'code'. All memory locations accessed  via  an
       absolute  or  PC  relative address mode are tagged 'byte' or 'word' de-
       pending on the instruction.

       Without code start address via --start, dasm-11 can't do any code  tag-
       ging, and without any tagging, the output is simply a list of .word di-
       rectives, effectively a 1-to-1 dump of the input file.

   Guided operation
       The basic operation with just a few code  start  addresses  has  severe
       functional limitations
         - code reached indirectly, e.g. via dispatch tables, is not detected
         - strings are not detected and dumped as .word lists
         - parameters following 'jsr r5' and trap instructions aren't handled

       Beyond  that,  the  output  is  not very human-friendly, all labels are
       auto-generated with type letter and a 3-4 digit number,  the  immediate
       values  are  numeric,  and the whole output is flat without any annota-
       tion.

       All this is addressed in guided operation.  Additional  information  is
       provided to dasm-11 with 'diassembler steering' file, specified via the
       --das option. The steering file allows
         - to declare the data type for an address:  code,  string,  but  also
           rad50 or float, pointers to and arrays of any of those types.
         - to  declare argument lists for routines (e.g. called with 'jsr r5')
           and trap instructions
         - to declare symbolic names for literal values
         - to define a telling label name for an address
         - to add code annotation, full line or after statement comments
         - to define interrupt vectors

OPTIONS
       -I path
              adds path to the das file  include  search  path.   The  default
              search   path   is  '.'   plus  $RETROBASE/tools/dasm-11/lib  if
              RETROBASE is defined. Each -I adds path after '.'.   -I  can  be
              given multiple times und must have a single path name.

       --das=fnam
              if  specified  fnam  will be read as steering file.  If no --das
              option is given, dasm-11 tries to locate and  load  the  default
              steering  file.  A  '.gz'  and  a '.dmp' suffix is stripped from
              FILE, a '.das' suffix is added, and if that  file  exists,  it's
              loaded.

       --dmode=mode
              default mode of untagged data. Valid values of mode are
              word   represent  untagged  data  with .word directives (the de-
                     fault)
              asciz  interpret untagged data as zero-terminated ASCII and rep-
                     resent  it  with  .asciz  directives.  Useful for finding
                     strings.
              code   interpret untagged data as code. Can be helpful to detect
                     code sequences.

       --start=nn[,...]
              list of code start addresses. nn is interpreted as octal number.
              Either a single value of a comma-separated list of values can be
              specified.   Each address is used as starting point of code tag-
              ging.  When dasm-11 is used  without  a  steering  file  and  no
              --start  option  is  given, no code tagging will be done and the
              output is simply a list of .word directives.

       -help  print full help text and exit.

OPTIONS FOR DEBUG
       --draw  dump raw data.

       --dtag  dump tagged data.

       --tctag trace code tagging.

       --ttlc  trace typlabcref calls.

SEE ALSO
       asm-11(1), lsm-11(5)


AUTHOR
       Walter F.J. Mueller <W.F.J.Mueller@gsi.de>


Retro Project                     2022-08-25                        DASM-11(1)
 
Generated: 2023-02-09
Generated by man2html V0.26
page hit count: ?E00
Valid CSS Valid XHTML 1.0 Strict