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

  1. *
  2. * DebTones.asm and Sample calling program by C. Scheppner 
  3. * A debugging routine and macro - hits the audio hardware to make a tone
  4. * Can be useful when debugging drivers, devices, etc. without a terminal    
  5. * For debugging use only - does not arbitrate for audio channel
  6. * Macro usage: DEBTONE period (try 400 to 4000 for period) 
  7. *
  8. * Assemble, then link (no startup code)
  9.  
  10.     INCLUDE    "exec/types.i"
  11.  
  12. DEBUG    SET    1
  13.  
  14.     section code
  15.  
  16.     IFGT    DEBUG
  17.     INCLUDE    "hardware/custom.i"
  18.     INCLUDE    "hardware/dmabits.i"
  19.     INCLUDE    "hardware/intbits.i"
  20.  
  21.  
  22. * For software delay loops - Try 0 for 68000, 2 for 68020, 3 for 68030
  23. PROSPEED    EQU    3
  24. SDELAY        EQU    (64<<PROSPEED)
  25.  
  26. DEBTONE    MACRO    * period (try 400 to 4000)
  27.     MOVE.W  #\1,$DFF000+aud0+ac_per
  28.     JSR    DebTone(PC)
  29.     ENDM
  30.     ENDC
  31.  
  32.     IFEQ    DEBUG
  33. DEBTONE    MACRO
  34. * disabled debtone macro
  35.     ENDC
  36.  
  37.  
  38. *
  39. * Sample program calling DEBTONE macro
  40. *
  41. main:
  42.     DEBTONE 400
  43.     DEBTONE 800
  44.     DEBTONE 2000
  45.     RTS
  46.  
  47.  
  48. * DebTone subroutine called by the DEBTONE macro
  49. * If you can place this close enough for a BSR, you can
  50. * change the macro's JSR DebTone(PC) to BSR Debtone
  51.  
  52.     IFGT DEBUG    
  53. DebTone:
  54.     MOVE.L    #4,$DFF000+aud0+ac_ptr
  55.     MOVE.W    #8,$DFF000+aud0+ac_len
  56.     MOVE.W  #16,$DFF000+aud0+ac_vol
  57.     MOVE.W  #(DMAF_SETCLR+DMAF_AUD0+DMAF_MASTER),$DFF000+dmacon
  58.     MOVEM.L d0-d1,-(sp)
  59.     MOVE.L    #SDELAY,d1
  60. DebTone1
  61.     MOVE.L    #3200,d0
  62. DebTone2
  63.     SUBQ.L    #1,d0
  64.     BNE.S    DebTone2
  65.     SUBQ.L    #1,d1
  66.     BNE.S    DebTone1
  67.     MOVEM.L    (sp)+,d0-d1
  68.     MOVE.W  #0,$DFF000+aud0+ac_vol
  69.     MOVE.W    #DMAF_AUD0,$DFF000+dmacon   ; turn off sound
  70.         RTS
  71.     ENDC
  72.  
  73.     END
  74.