DADebug 0.08
============

This is a simple module, designed to store debug output in a dynamic area for
later retrieval. This is particularly of use in speed critical code, where the
time overhead of other methods (eg writing to a file) would be a problem.
The character output routine is accessed via a direct branch into the module
code, to further reduce overheads.

Support for DADebug is included in Hdr:NdrDebug and DebugLib.

SWIs
^^^^
DADebug_GetWriteCAddress (SWI &531C0)

This returns the address of the character output routine in R0. The routine
should be entered in a privileged mode, with the character to store in R0 and a
return address (including PSR bits) in R14. When the dynamic area is full, the
write pointer is wrapped around.

The direct access routine is APCS compliant, and may be considered to have the
prototype:

  void DADWriteC (char c);

DADebug_Print (SWI &531C1)

This is equivalent to *DADPrint

DADebug_Reset (SWI &531C2)

This is equivalent to *DADReset

* Commands
^^^^^^^^^^
*DADPrint writes the current contents of the debug dynamic area to the screen.
Only complete lines (ie those that have not been overwritten if the write
pointer has wrapped around) are output.

*DADReset clears the dynamic area of all but the initial "Debug start" line
(which is there to assure you that wraparound has not occurred).


Ben Avison, 28 Oct 1999
Jeffrey Lee, 3 Jun 2012
