home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / pocketbk / utilsr / sndfrc / TESTMUS.OPL < prev   
Text File  |  1992-05-13  |  3KB  |  137 lines

  1. PROC sing:
  2.     global mcb%
  3.     global mstat%,kstat%,key%(2)
  4.     local vals%(22)
  5.     key :rem so later flushkey: works
  6.     InstMus:
  7.     OpenMus:
  8.     vals%(1)=$30+(40*256)
  9.     vals%(2)=$32+(100*256)
  10.     vals%(3)=$34+(40*256)+(1*64)
  11.     vals%(4)=$35+(100*256)+(1*64)
  12.     vals%(5)=$37+(40*256)+(2*64)
  13.     vals%(6)=$39+(100*256)+(2*64)
  14.     vals%(7)=$29+(40*256)+(3*64)
  15.     vals%(8)=$3b+(100*256)+(3*64)
  16.     vals%(9)=$3b+(40*256)+(3*64)
  17.     vals%(10)=$29+(100*256)+(3*64)
  18.     vals%(11)=$39+(40*256)+(2*64)
  19.     vals%(12)=$37+(100*256)+(2*64)
  20.     vals%(13)=$35+(40*256)+(1*64)
  21.     vals%(14)=$34+(100*256)+(1*64)
  22.     vals%(15)=$32+(40*256)
  23.     vals%(16)=$30+(100*256)
  24.     play:(addr(vals%()),16)
  25.     pause 40
  26.     vals%(1)=$3b+(100*256)
  27.     vals%(2)=$3b+(100*256)+(1*64)
  28.     vals%(3)=$3b+(100*256)+(2*64)
  29.     vals%(4)=$3b+(100*256)+(3*64)
  30.     vals%(5)=$0+((200-256)*256)
  31.     vals%(6)=$3b+(100*256)+(3*64)
  32.     vals%(7)=$3b+(100*256)+(2*64)
  33.     vals%(8)=$3b+(100*256)+(1*64)
  34.     vals%(9)=$3b+(100*256)
  35.     play:(addr(vals%()),9)
  36.     pause 40
  37.     vals%(1)=$19+(25*256)+(2*64)
  38.     vals%(2)=$0+((256-150)*256)
  39.     vals%(3)=$10+(25*256)+(2*64)
  40.     vals%(4)=$0+(25*256)
  41.     vals%(5)=$11+(25*256)+(2*64)
  42.     vals%(6)=$0+(25*256)
  43.     vals%(7)=$12+(25*256)+(2*64)
  44.     vals%(8)=$0+(25*256)
  45.     vals%(9)=$13+(25*256)+(2*64)
  46.     vals%(10)=$0+(25*256)
  47.     vals%(11)=$14+(25*256)+(2*64)
  48.     vals%(12)=$0+(25*256)
  49.     vals%(13)=$15+(25*256)+(2*64)
  50.     vals%(14)=$0+(25*256)
  51.     vals%(15)=$16+(25*256)+(2*64)
  52.     vals%(16)=$0+(25*256)
  53.     vals%(17)=$17+(25*256)+(2*64)
  54.     vals%(18)=$0+(25*256)
  55.     vals%(19)=$18+(25*256)+(2*64)
  56.     vals%(20)=$0+(25*256)
  57.     vals%(21)=$19+(25*256)+(2*64)
  58.     vals%(22)=$0+(25*256)
  59.     flushkey:
  60.     queplay:(addr(vals%()),22)
  61.     quekey:
  62.     while 1
  63.         iowait
  64.         if kstat%=0 :rem keypress received
  65.             if key%(1)=27 :rem Esc
  66.                 canplay:
  67.                 break
  68.             endif
  69.             quekey:
  70.         else
  71.             cankey:
  72.             break
  73.         endif
  74.     endwh
  75.     pause 40
  76.     play:(addr(vals%()),22)
  77.     CloseMus:
  78.     FreeMus:
  79. ENDP
  80.  
  81. PROC OpenMus:
  82.     local ret%
  83.     while 1
  84.         ret%=ioopen(mcb%,"MUS:",-1)
  85.         if ret%=0
  86.             return
  87.         endif
  88.         print err$(ret%)
  89.         print "Retrying ("+chr$(2)+"-Esc aborts)"
  90.         pause 10
  91.     endwh
  92. ENDP
  93.  
  94. PROC CloseMus:
  95.     ioclose(mcb%)
  96. ENDP
  97.  
  98. PROC play:(buf%,len%)
  99.     iowrite(mcb%,buf%,len%)
  100. ENDP
  101.  
  102. PROC FreeMus:
  103.     local s$(4)
  104.     s$="MUS"+chr$(0)
  105.     call($885,addr(s$)+1,0,$dd01,0,0)
  106. ENDP
  107.  
  108. PROC InstMus:
  109.     local s$(16)
  110.     s$="LOC::M:\SNDFRC"+chr$(0)
  111.     call($685,addr(s$)+1,0,0,0,0)
  112. ENDP
  113.  
  114. PROC queplay:(buf%,len%)
  115.     local copylen%
  116.     copylen%=len%
  117.     ioa(mcb%,2,mstat%,#buf%,copylen%)
  118. ENDP
  119.  
  120. PROC canplay:
  121.     iow(mcb%,4,#0,#0)
  122.     iowaitstat mstat%
  123. ENDP
  124.  
  125. PROC quekey:
  126.     keya(kstat%,key%(1))
  127. ENDP
  128.  
  129. PROC cankey:
  130.     keyc(kstat%)
  131. ENDP
  132.  
  133. PROC flushkey:
  134.     while key
  135.     endwh
  136. ENDP
  137.