home *** CD-ROM | disk | FTP | other *** search
/ The Equalizer BBS / equalizer-bbs-collection_2004.zip / equalizer-bbs-collection / DEMOSCENE-STUFF / TIMESRC.ZIP / MUZ.ASM < prev    next >
Assembly Source File  |  1994-02-23  |  7KB  |  253 lines

  1.         .386p
  2. code32  segment para public use32
  3.         assume cs:code32, ds:code32
  4.  
  5. include pmode.inc
  6. include low_data.inc
  7. include low_none.inc
  8. include low_gus.inc
  9. include low_sb.inc
  10. include mtmplay.inc
  11. include argc.inc
  12. include kb.inc
  13. include v.inc
  14.  
  15. public  _muz_init, _muz_play, _muz_stop, _muz_uninit, _muz_setup, _muz_wait
  16.  
  17. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  18. ; DATA
  19. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  20. align 4
  21. scard_datatbl   dd      _none_data, _sb_data, _gus_data
  22. scard_irqmsgtbl dd      msgdat2, msgdat3
  23. scard_ratetbl   dw      11025, 22050, 44100
  24.  
  25. scard_data      dd      ?
  26. scard_rate      dw      ?
  27.  
  28. scard_switch    db      0
  29. scard_info      db      ?,?,?,?
  30.  
  31. scard_irqtbl    db      3,5,7
  32.                 db      2,3,5,7,11,12,15
  33.  
  34. muzik           label   byte
  35. include muzik.m
  36.  
  37. crlf2str        db      0dh,0ah,0dh,0ah,36
  38. msgend          db      'You can skip the initial souncard menu, and run this demo with the same',0dh,0ah
  39.                 db      'soundcard options, by using the ''/S'' switch on the commandline as follows:',0dh,0ah
  40. msgendmodify    db      '  TIMELESS /S    ',0dh,0ah,0dh,0ah,36
  41. msgdef          db      'ESC) Abort',0dh,0ah,'> $'
  42. msgdat0         db      '3'
  43.                 db      'Select soundcard:',0dh,0ah
  44.                 db      '1) None',0dh,0ah
  45.                 db      '2) Sound Blaster',0dh,0ah
  46.                 db      '3) Gravis Ultrasound',0dh,0ah,36
  47. msgdat1         db      '6'
  48.                 db      'Select port address:',0dh,0ah
  49.                 db      '1) 210',0dh,0ah
  50.                 db      '2) 220',0dh,0ah
  51.                 db      '3) 230',0dh,0ah
  52.                 db      '4) 240',0dh,0ah
  53.                 db      '5) 250',0dh,0ah
  54.                 db      '6) 260',0dh,0ah,36
  55. msgdat2         db      '3'
  56.                 db      'Select IRQ:',0dh,0ah
  57.                 db      '1) 3',0dh,0ah
  58.                 db      '2) 5',0dh,0ah
  59.                 db      '3) 7',0dh,0ah,36
  60. msgdat3         db      '7'
  61.                 db      'Select IRQ:',0dh,0ah
  62.                 db      '1) 2',0dh,0ah
  63.                 db      '2) 3',0dh,0ah
  64.                 db      '3) 5',0dh,0ah
  65.                 db      '4) 7',0dh,0ah
  66.                 db      '5) 11',0dh,0ah
  67.                 db      '6) 12',0dh,0ah
  68.                 db      '7) 15',0dh,0ah,36
  69. msgdat4         db      '3'
  70.                 db      'Select mixing rate:',0dh,0ah
  71.                 db      '1) 11025',0dh,0ah
  72.                 db      '2) 22050',0dh,0ah
  73.                 db      '3) 44100',0dh,0ah,36
  74.  
  75. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  76. ; CODE
  77. ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  78.  
  79. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  80. ; Set up muzik player (get soundcard type)
  81. ; Out:
  82. ;   EAX,EBX,ECX,EDX,ESI,EDI,EBP - ?
  83. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  84. _muz_setup:
  85.         mov al,'s'
  86.         call _cchekswitch
  87.         jnc short setupf1
  88.         mov al,'S'
  89.         call _cchekswitch
  90.         jc short setupf2
  91. setupf1:
  92.         mov edx,_lomembase
  93.         call _ccheksstr
  94.         jc short setupf2
  95.         mov eax,[edx]
  96.         sub eax,'1111'
  97.         or al,al
  98.         jz short setupf3
  99.         cmp ah,5
  100.         ja short setupf2
  101.         shld ebx,eax,16
  102.         cmp al,2
  103.         ja short setupf2
  104.         je short setupf4
  105.         cmp bl,2
  106.         ja short setupf2
  107.         cmp bh,2
  108.         ja short setupf2
  109.         jmp short setupf3
  110. setupf4:
  111.         cmp bl,6
  112.         ja short setupf2
  113. setupf3:
  114.         mov dword ptr scard_info,eax
  115.         mov scard_switch,1
  116.         jmp short setupf0
  117.  
  118. setupf2:
  119.         mov edi,offset scard_info
  120.         mov esi,offset msgdat0
  121.         call setupr0
  122.         or al,al
  123.         jz short setupf0
  124.         mov esi,offset msgdat1
  125.         call setupr0
  126.         movzx ebx,scard_info[0]
  127.         mov esi,scard_irqmsgtbl[ebx*4-4]
  128.         call setupr0
  129.         cmp bl,1
  130.         jne short setupf0
  131.         mov esi,offset msgdat4
  132.         call setupr0
  133.  
  134. setupf0:
  135.         mov edi,offset msgendmodify+13
  136.         mov esi,offset scard_info
  137.         xor eax,eax
  138.         lodsb
  139.         lea edx,[eax*2+eax-3]
  140.         mov ebx,scard_datatbl[eax*4]
  141.         mov scard_data,ebx
  142.         add al,'1'
  143.         stosb
  144.         cmp al,'1'
  145.         je _ret
  146.         lodsb
  147.         lea ebx,[eax+21h]
  148.         shl ebx,4
  149.         mov _low_port,bx
  150.         add al,'1'
  151.         stosb
  152.         lodsb
  153.         mov bl,scard_irqtbl[edx+eax]
  154.         mov _low_irq,bl
  155.         add al,'1'
  156.         stosb
  157.         or dl,dl
  158.         jnz _ret
  159.         lodsb
  160.         mov bx,scard_ratetbl[eax*2]
  161.         mov scard_rate,bx
  162.         add al,'1'
  163.         stosb
  164.         ret
  165. ;-----------------------------------------------------------------------------
  166. setupr0:
  167.         lea edx,[esi+1]
  168.         call _putdosmsg
  169.         mov edx,offset msgdef
  170.         call _putdosmsg
  171. setupr0l0:
  172.         mov v86r_ah,0
  173.         mov al,16h
  174.         int 33h
  175.         mov al,v86r_al
  176.         cmp al,27
  177.         je _exit
  178.         cmp al,'1'
  179.         jb setupr0l0
  180.         cmp al,[esi]
  181.         ja setupr0l0
  182.         call _putdoschar
  183.         sub al,'1'
  184.         stosb
  185.         mov edx,offset crlf2str
  186.         call _putdosmsg
  187.         ret
  188.  
  189. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  190. ; Init muzik player
  191. ; Out:
  192. ;   EAX,EBX,ECX,EDX,ESI,EDI,EBP - ?
  193. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  194. _muz_init:
  195.         mov _mtm_voicenum,8
  196.         mov esi,scard_data
  197.         mov bx,scard_rate
  198.         mov ah,8
  199.         call _mtmp_init
  200.         ret
  201.  
  202. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  203. ; Kill muzik player
  204. ; Out:
  205. ;   EAX,EBX,ECX,EDX,ESI,EDI,EBP - ?
  206. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  207. _muz_uninit:
  208.         cmp scard_switch,0
  209.         jne short uninitf0
  210.         mov edx,offset msgend
  211.         call _putdosmsg
  212. uninitf0:
  213.         call _mtmp_uninit
  214.         ret
  215.  
  216. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  217. ; Start muzik playing
  218. ; Out:
  219. ;   EAX,EBX,ECX,EDX,ESI,EDI,EBP - ?
  220. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  221. _muz_play:
  222.         mov edx,offset muzik
  223.         call _mtmp_setmuz
  224.         call _mtmp_playmuz
  225.         ret
  226.  
  227. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  228. ; Stop muzik playback (set it to phade out)
  229. ; Out:
  230. ;   EAX,EBX,ECX,EDX,ESI,EDI,EBP - ?
  231. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  232. _muz_stop:
  233.         mov al,2
  234.         call _mtmp_phademuz
  235.         ret
  236.  
  237. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  238. ; Wait for muzik to finish fading out
  239. ; Out:
  240. ;   EAX,EBX,ECX,EDX,ESI,EDI,EBP - ?
  241. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  242. _muz_wait:
  243.         cmp scard_info[0],0
  244.         je _ret
  245. waitl0:
  246.         cmp _mtm_playing,0
  247.         jne waitl0
  248.         ret
  249.  
  250. code32  ends
  251.         end
  252.  
  253.