NAME

     ucdas - the Universal Cross Disassembler


SYNOPSIS

     ucdas


DESCRIPTION

     With ucdas you can disassemble portions of binary  code  for
     several  microcontrollers.  The  size of the binary code may
     not exceed 32768 bytes.

     Currently the following cpu's are supported: Z80, 68HC11 and
     compatibles and the 8051.

     The users may add some other CPUs by defining their  opcodes
     in  a  separate  <cpu-brand>.dat file. The disassembled code
     can be fed to the ucasm assembler in order to reassemble it.

     ucdas has also the ability to download and to  receive  data
     over  the serial link so one can have an evaluation board or
     similar connected to the PC. There is also  a  special  mode
     wich  downloads  another  binary  file  (configurable) first
     before the actual loaded file is  transfered.  This  can  be
     used  for  example to program On-Chip-EEproms if the special
     file has the code for programming in it.

     ucdas starts with the disassemble window on  the  left  hand
     side  and  with  a  small serial monitor window on the right
     hand side. It tries to load the last disassembled file.   If
     there  was already some work done on this file a symbol file
     containing the previously inserted labels is loaded. If  the
     <RETURN> key is pressed the binary code is disassembled from
     the current adress to make one line of assembly source code.
     Once the current position reaches the end of the binary file
     disassembling restarts at position 0. In order  to  see  all
     self-inserted  labels one has to have at least one pass over
     the complete binary code. This can be done with the "P" Hot-
     key  (visible  in  the main menubar).  A self-inserted label
     depends on special marked opcodes which are described  later
     under  the item "Format of <CPUFILE>.dat" and is formed from
     the string "L_" and its hexadecimal adress.




The Menus

     <F>ile
          The popup menu for file operations cames up.

     to be continued ..

     <E>dit
          Switches to patch mode. In patch mode  the  cursor  can
          only  placed  over  a hexadecimal number in the current
          visible text. Only '0'-'9' and 'A'-'F'  keystrokes  are
          recognized  in  order  to  insert a hexadecimal number.
          Pressing  the  <ESC>  Key  switches  back   to   normal
          disassembling mode.

     to be continued ..

     <O>ptions
          The popup menu for some configurable features cames up.

     to be continued ..

     <L>abels
          The popup for adding or editing Labels cames up.

     to be continued ..

     <T>erminal
          switches to termional mode. In terminal mode the window
          is   horizontally   tiled.   All  keystrokes  are  sent
          instantly over the serial line  and  echoed  (received)
          chars are displayed in the upper window.

     to be continued ..

     <P>ass One
          disassembles the binary code in a  first  pass  without
          displaying the results.

     <C>lear
          erase all previously assigned symbols  and  clears  the
          internal hashtables.




Format of .dat

     to be continued ..


ENVIRONMENT

     No environment variables are used


BUGS

      1)    The instructions AJMP and ACALL are interpreted incorrectly.  
            These instructions have 11-bit operands with bits 10..8 coming 
	    from the TOP(High) 3 bits of the opcode.  UCDAS takes bits 10..8 
	    from the BOTTOM(Low) 3 bits of the opcode.

AUTHOR

     Thomas   Pantzer,   pantec@aix520.informatik.uni-leipzig.de, 1992