; ; 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