home *** CD-ROM | disk | FTP | other *** search
- ALLOCMEM: EQU -198
- FREEMEM: EQU -210
- MEMF_CHIP: EQU $10002
-
- BEGIN: MOVEM.L D0-D7/A0-A6,-(SP)
-
- MOVE.L $4.W,A6
- MOVE.L #SAMPLESIZE,D0
- MOVE.L #MEMF_CHIP,D1
- JSR ALLOCMEM(A6) ; Allokera för ljud
-
- MOVE.L D0,AUDPTR
- BEQ.L ALLOCERROR ; Error?
-
- MOVE.L D0,A0
- LEA.L AUD0(PC),A1
- MOVE.W #SAMPLESIZE-1,D7
- MOVETOCHIP: MOVE.B (A1)+,(A0)+ ; Flytta till ChipMem
- DBF D7,MOVETOCHIP
-
- MOVE.W #$000F,$DFF096 ; Stäng av ljud DMA
- MOVE.W #$8011,$DFF09E ; Modulera kanal 1
- MOVE.L D0,$DFF0A0 ; AUD0LOC
- ADD.L #AUD0SIZE,D0
- MOVE.L D0,$DFF0B0 ; AUD1LOC
- MOVE.W #AUD0SIZE/2,$DFF0A4 ; AUD0LEN
- MOVE.W #AUD1SIZE/2,$DFF0B4 ; AUD1LEN
- MOVE.W #65535,$DFF0A6 ; AUD0PER
- MOVE.W #64,$DFF0A8 ; AUD0VOL
- MOVE.W #64,$DFF0B8 ; AUD1VOL
- MOVE.W #$8203,$DFF096 ; Sätt på ljud DMA
-
- MAIN: BTST #6,$BFE001 ; Vänster musknapp?
- BNE.S MAIN
-
- EXIT: MOVE.W #$0003,$DFF096 ; Stäng av ljud DMA
- MOVE.W #$0011,$DFF09E ; Återställ ADKCON
- MOVE.L AUDPTR(PC),A1
- MOVE.L #SAMPLESIZE,D0
- JSR FREEMEM(A6) ; Deallokera
- ALLOCERROR: MOVEM.L (SP)+,D0-D7/A0-A6
- RTS
-
-
- AUDPTR: DC.L 0
-
- AUD0: DC.W 0,300,5,290,11,280,16,270
- DC.W 21,260,27,250,32,240,37,230
- DC.W 43,220,48,210,53,200,59,190
- DC.W 64,180,59,190,53,200,48,210
- DC.W 43,220,37,230,32,240,27,250
- DC.W 21,260,16,270,11,280,5,290
- AUD0END:
- AUD0SIZE: EQU AUD0END-AUD0
-
- AUD1: DC.B 0,25,49,71,90,105,117,125
- DC.B 127,125,117,105,90,71,49,25
- DC.B 0,-25,-49,-71,-90,-105,-117,-125
- DC.B -127,-125,-117,-105,-90,-71,-49,-25
- AUD1END:
- AUD1SIZE: EQU AUD1END-AUD1
- SAMPLESIZE: EQU AUD1END-AUD0
-