home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD v1.2 / amidev_cd_12.iso / devcon / milan_1991 / devcon91.3 / debug / examples / dtest.asm < prev    next >
Assembly Source File  |  1992-09-01  |  2KB  |  72 lines

  1. *
  2. * DTest.asm - demonstrates use of a parallel debugging macro from assembler 
  3. *
  4. * Assemble, then
  5. * alink from dtest.o to dtest lib lib:amiga.lib,lib:ddebug.lib
  6. *
  7.     INCLUDE    "exec/types.i"
  8.  
  9. MYDEBUG    SET    1
  10.  
  11.     section code
  12.  
  13. * The debugging macro DDBUG
  14. * Only generates code if MYDEBUG is > 0
  15. *
  16.  
  17.     IFGT    MYDEBUG
  18.  
  19. * note - current 2.0 debug.lib has this entry
  20.     XREF    DPutFmt
  21.  
  22. * DDBUG macro for format string and two variables
  23. *     preserves all registers   
  24. *        outputs to parallel port   link with amiga.lib,ddebug.lib
  25. * Usage: pass name of format string,value,value
  26. *        values may be register name, variablename(PC), or #value
  27. *        
  28.  
  29. DDBUG    MACRO    * passed name of format string, with args on stack
  30.     MOVEM.L    d0-d7/a0-a6,-(sp)
  31.     MOVE.L  \3,-(sp)
  32.     MOVE.L  \2,-(sp)
  33.     LEA.L    \1(PC),a0
  34.     LEA.L   (sp),a1
  35.     JSR    DPutFmt
  36.     ADDA.L    #8,sp
  37.     MOVEM.L    (sp)+,d0-d7/a0-a6    
  38.     ENDM
  39.     ENDC
  40.  
  41.     IFEQ    MYDEBUG
  42. DDBUG    MACRO
  43. * disabled debug macro
  44.     ENDC
  45.  
  46. *
  47. * Sample program calling DBUG macro
  48. *
  49. main:
  50.     DDBUG    strTest,#0,#0    ; Let's print test string first
  51.  
  52.     DDBUG    fmtA0,a0,#0    ; Let's see what a0 contains
  53.  
  54.     * Let's see where we are and what D0 is
  55.     * format string is 'In %s routine:  d0 = $%lx',10,0
  56.     DDBUG    fmtRtnD0,#testname,d0  ; format string, addr of rtn name, d0
  57.  
  58.     RTS
  59.  
  60.  
  61.     IFGT     MYDEBUG
  62. * your format strings for dprintf - linefeed and null terminated
  63. strTest        DC.B    'This is a test of dprintf',10,0
  64. fmtA0        DC.B    'a0 = $%lx',10,0
  65. fmtRtnD0    DC.B    'In %s routine: d0 = $%lx',10,0
  66.  
  67. * other strings for insertion - null terminated
  68. testname:    DC.B    'Test',0
  69.     ENDC
  70.  
  71.     END
  72.