DDT
===

See Acorn C/C++ Manual for further documentation.
Changes since original Acorn C/C++ release:

* Added emulation of MRS and MSR operations on CPSR. Emulation is still
  totally 26-bit, so acts as if the processor was in 26-bit configuration.
  MRS and MSR operations on SPSR are treated as NOPs.

* Converted emulation of data processing, LDR/STR and SWI instructions to
  be totally static. Together with a few other optimisations, this makes
  emulation 43 (forty-three) times faster than DDT 1.83 when running Dhrystone
  on a StrongARM.

* Fixed some problems with continuous emulation (eg when watchpoints are set)
  where the debugger would lose track of whether it was in the debuggee or not.
  The most obvious symptom was DDT crashing on the second run.

* Some other minor fixes to emulation that may improve reliability.

* RISC OS/Arthur register bindings option removed, partly because it's
  incredibly archaic, and partly to speed up emulation.

* No longer claims RMA space at startup even if using dynamic areas overall.
  With large images, this could exceed the RMA limit and prevent the
  application starting - even with plenty of free RAM.

* Added support for variable-length arrays. The debugging format cannot
  transparently represent the current Norcroft C implementation, which uses
  a concealed pointer to an allocated block, so to view a local variable-length
  array, you have to ask for "*array" to be displayed. This is analogous to
  the way the debugger currently treats C++ references.

* Added support for enumerations - now shows which enumeration constant(s)
  the stored value corresponds to. Will also interpret values that equal
  a number of constants ORed together.

* Improved support for identically named local variables, though still not
  perfect. It now searches for the closest declaration above the current (or
  specified) line number - this will show the correct one more of the time,
  and means that line specifications now work as documented.

* Added support for bitfields.

* Fixed emulation of ADC/SBC/RSC (vital for 64-bit types).


Changes from version 1.86 to 1.87
=================================

* Made 32-bit compatible, including full 32-bit emulation.

* Added disassembly of PLD, BLX, LDRD/STRD, CLZ, QADD etc, BKPT, SMULW etc.

* Added emulation of LDRD/STRD, CLZ, QADD etc, SMULW etc.

* Included own sprites for opton/optoff etc to prevent problems with >16
  colour Wimp icons.
  
* Window manager tweaks, eg menu height adjusted, and caret now red.

* Front-end application tidied up a little.


Changes from version 1.87 to 1.88
=================================

* Now handles 64-bit integers and complex floating types.

* Displays NaNs and infinities sensibly.

* Now skips over mapping symbols. Doesn't use them yet.

* Fixes to MSR handling.

* Corrected BLX <reg> emulation.


Changes from version 1.88 to 1.91
=================================

* The memory protection code now leaves zero-page alone if it's already
  protected. This allows DDT to work on many OS versions where it was
  previously unreliable, it makes switching to and from the debuggee
  faster, and it avoids an interrupt hole in the kernel too, for good
  measure!

* Should now be compatible with high processor vectors on platforms that
  support them.

* Workaround for StrongARM MSR bug, which affected trapping SWIs in
  26-bit mode.


Changes from version 1.91 to 1.92
=================================

* DDT would hang the machine when scanning for certain code sequences in
  its interception of WrchV when used in conjunction with a version of 
  RISC OS with zero page relocation.
* An accidental NULL pointer access in the icon handling of the window 
  plotting code in the debugger's user interface would cause an abort when 
  used on a version of RISC OS with zero page relocation.
* In the event of a fatal error in the debugger, error reports are no
  longer invited to be sent to a defunct company.


Changes from version 1.92 to 1.94
=================================

* When run in a fully paletted 256 colour mode, DDT's window furniture 
  is now rendered correctly rather than in blue/yellow.
* Support for single stepping ARMv6T2's MLS instruction added.


Changes from version 1.94 to 1.96
=================================

* The scroll bars are now more controllable on fast computers, previously
  after the initial delay the repeat rate was not throttled.
* The UXTB/UXTH/SXTB/SXTH family of instructions can now be single stepped.
  The C compiler will use this in some situations to perform casting, and
  would previously been shown as ??? in the debugger.


Changes from version 1.96 to 1.97
=================================

* The disassembler engine has been replaced with the same one that decaof
  uses, so single stepping through (disassembly) listings will be presented
  in the same format as it would output.
* Single stepping of the ARMv6/v7/v8 instructions that the compiler now
  uses has been added. These are all in the media extension space of the
  instruction set, plus MOVT/MOVW.
