home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 369a.lha / Linksound / Beep.asm < prev    next >
Assembly Source File  |  1990-04-01  |  2KB  |  89 lines

  1.         opt L+
  2. ; For Devpac and blink
  3.  
  4. custom          equ $dff000
  5. aud1lc          equ $b0
  6. aud1len         equ $b4
  7. aud1per         equ $b6
  8. aud1vol         equ $b8
  9. aud0lc          equ $a0
  10. aud0len         equ $a4
  11. aud0per         equ $a6
  12. aud0vol         equ $a8
  13. dmacon          equ $96
  14. adkcon          equ $9e
  15. intreq            equ $9C
  16. intreqr            equ $1E
  17.  
  18.  
  19. OpenLibrary     equ -552
  20. CloseLibrary    equ -414
  21. Delay           equ -198
  22.  
  23.         XDEF    _beep
  24. _beep:
  25.         movem.l d0/d1/a0/a1/a2/a5/a6,-(sp)
  26.         move.l  4,a6
  27.         lea     dosname(pc),a1
  28.         moveq   #0,d0
  29.         jsr     OpenLibrary(a6)
  30.         tst.l   d0
  31.         beq     back
  32.         lea     DOSBase(pc),a0
  33.         move.l  d0,(a0)
  34.  
  35.         lea     per(pc),a2
  36.         move.l  #custom,a5
  37.         move.w  #600,(a2)
  38.         jsr     play(pc)
  39.         move.w  #1200,(a2)
  40.         jsr     play(pc)
  41.         move.w  #600,(a2)
  42.         jsr     play(pc)
  43.  
  44.         move.l  4,a6
  45.         move.l  DOSBase(pc),a1
  46.         jsr     CloseLibrary(a6)
  47. back:
  48.         movem.l (sp)+,d0/d1/a0/a1/a2/a5/a6
  49.         rts
  50.  
  51. play:
  52.         move.w  #$0003,dmacon(a5)               ;clear audio 0+1 DMA-Kanal
  53.         move.l  #ALsquare,aud0lc(a5)
  54.         move.w  #ALsquaresize/2,aud0len(a5)
  55.         move.w  #64,aud0vol(a5)
  56.         move.w  per(pc),aud0per(a5)
  57.  
  58.         move.l  #ALsquare,aud1lc(a5)
  59.         move.w  #ALsquaresize/2,aud1len(a5)
  60.         move.w  #64,aud1vol(a5)
  61.         move.w  per(pc),aud1per(a5)
  62.  
  63.         move.w  #$00ff,adkcon(a5)               ;Modulation off
  64.  
  65.         move.w  #$8203,dmacon(a5)               ;channel 0+1 on
  66.         move.l  DOSBase(pc),a6
  67.         move.l  #5,d1
  68.         jsr     Delay(a6)
  69.         move.w  #$0003,dmacon(a5)               ;channel 0+1 off
  70.         rts
  71.  
  72. DOSBase         ds.l    1
  73. per             ds.w    1
  74. dosname         dc.b    'dos.library',0
  75.                 cnop    0,2
  76.  
  77.         SECTION customdata,DATA_C
  78. ALsquare:
  79.         dc.b    0,30
  80.         dc.b    60,95
  81.         dc.b    127,95
  82.         dc.b    60,30
  83.         dc.b    0,-30
  84.         dc.b    -60,-95
  85.         dc.b    -127,-95
  86.         dc.b    -60,-30
  87. ALsquaresize equ *-ALsquare
  88.         END
  89.