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 >
Wrap
Assembly Source File
|
1992-08-20
|
1KB
|
39 lines
;
; sinewave.asm
;
; In this example, which gathers together all of the program segments
; from the Audio Hardware sections, a sine wave is played through
; channel 0. The example assumes exclusive access to the Audio
; hardware, and will not work directly in a multitasking environment.
;
MAIN:
LEA CUSTOM,a0 ; Custom chip base address
LEA SINEDATA(pc),a1 ;Address of data to
; audio location register 0
WHERE0DATA:
MOVE.L a1,AUD0LCH(a0) ;The 680x0 writes this as though it were a
; 32-bit register at the low-bits location
; (common to all locations and pointer
; registers in the system).
SETAUD0LENGTH:
MOVE.W #4,AUD0LEN(a0) ;Set length in words
SETAUD0VOLUME:
MOVE.W #64,AUD0VOL(a0) ;Use maximum volume
SETAUD0PERIOD:
MOVE.W #447,AUD0PER(a0)
BEGINCHAN0:
MOVE.W #(DMAF_SETCLR!DMAF_AUD0!DMAF_MASTER),DMACON(a0)
RTS ; Return to main code...
DS.W 0 ; Be sure word-aligned
SINEDATA: ; Audio data must be in Chip memory
DC.B 0, 90, 127, 90, 0, -90, -127, -90
END