/* $Id */
This note describes the differences between the standard gdb
source level debugger and the gdb561 debugger that uses the 
simulator of the Motorola DSP56156.

A short description of the way the simulator is embedded in gdb56
will help explain some of the differences.  The DSP56100 device is 
simulated by the same non-display version of the simulator program 
that is supplied with the DSP56100 Development Software. The simulator
is linked with the gdb program.  When a program is executed on the
simulated DSP56156, it is done via direct function calls to the
simulator library functions rather than via ptrace calls to an
inferior process as in other versions of gdb.

The attach and detach commands are not implemented since the simulator
program is linked directly with the gdb56 program;  so there is no
capability of attaching or releasing a separately running simulation.

The core-file command is not implemented, although we may decide to
implement this and use it to load simulator state files.

All of the other commands work as documented in the GDB Manual for
the gnu Source-Level Debugger, Third Edition, October 1989.  Some
enhancements, listed below, were necessary to accomodate operation
using the DSP56156.

Since the DSP56156 has two memory spaces, it will sometimes be
necessary to use one of the prefixes "p:" or "x:" in 
front of an address in order to examine or modify the specific
memory space.  The debugger symbol information already has the
proper memory space designator accompanying each symbol address, 
so symbolic names do not require a memory space prefix; but addresses
entered as numeric constants do require the prefix for x memory.
P memory is the default.

The gdb56 debugger operates with COFF format ".cld" files generated by
the DSP56100 COFF Assembler and Linker programs.  The gdb561 
subdirectory "m561inc" contains header files which define
the COFF structures used by gdb561 as well as other device-specific
header files.

The simulation is able to halt at breakpoints without actually
breaking the pipeline activity of the device and without 
actually inserting breakpoint code into the device memory.
As a result, the simulator can maintain an accurate record of
the device execution time regardless of the number of inserted
breakpoints.  The cycle count is maintained in the variable $cyc.

The normal gdb program uses .gdbinit as the default initialization
file at startup, while gdb561 uses .gdbinit561 (or _gdbinit.561 on the
pc).

The MSDOS version of the gdb program was created using the Watcom C
Compiler v9.01 for the 386.  The resulting programs make use of the 
PC's extended memory and make use of the virtual memory capability 
supplied with the Watcom compiler. The program  requires a PC-AT 386 
or 486 with at least 2Mb of memory. Read the readme.mem file for additional
information concerning memory management for the PC.

An additional command line switch has been added in order to specify the
target device type within the  56100 family.  The switch is -device or
-de followed by the device number. The default device is a 56156.  The
following are current supported 56100 family device types.

-de 56116
-de 56156
-de 56166









