home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD v1.2 / amidev_cd_12.iso / reference_library / hardware / hard_examples / sinewave.asm < prev    next >
Assembly Source File  |  1992-08-20  |  1KB  |  39 lines

  1. ;
  2. ; sinewave.asm
  3. ;
  4. ; In this example, which gathers together all of the program segments
  5. ; from the Audio Hardware sections, a sine wave is played through
  6. ; channel 0. The example assumes exclusive access to the Audio
  7. ; hardware, and will not work directly in a multitasking environment.
  8. ;
  9. MAIN:
  10.         LEA     CUSTOM,a0       ; Custom chip base address
  11.         LEA     SINEDATA(pc),a1 ;Address of data to
  12.                                 ;  audio location register 0
  13.  
  14. WHERE0DATA:
  15.         MOVE.L  a1,AUD0LCH(a0)  ;The 680x0 writes this as though it were a
  16.                                 ;  32-bit register at the low-bits location
  17.                                 ;  (common to all locations and pointer
  18.                                 ;  registers in the system).
  19.  
  20. SETAUD0LENGTH:
  21.         MOVE.W  #4,AUD0LEN(a0)  ;Set length in words
  22.  
  23. SETAUD0VOLUME:
  24.         MOVE.W  #64,AUD0VOL(a0) ;Use maximum volume
  25.  
  26. SETAUD0PERIOD:
  27.         MOVE.W  #447,AUD0PER(a0)
  28.  
  29. BEGINCHAN0:
  30.         MOVE.W  #(DMAF_SETCLR!DMAF_AUD0!DMAF_MASTER),DMACON(a0)
  31.  
  32.         RTS                     ; Return to main code...
  33.  
  34.         DS.W    0               ; Be sure word-aligned
  35.  
  36. SINEDATA:                       ; Audio data must be in Chip memory
  37.         DC.B    0, 90, 127, 90, 0, -90, -127, -90
  38.         END
  39.