home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / ELYVER10.ZIP / MIKXMAS.ZIP / source / resample.asm < prev    next >
Encoding:
Assembly Source File  |  1995-12-12  |  2.6 KB  |  133 lines

  1. .386p
  2.  
  3.     NAME    resample
  4.         EXTRN   _rvolsel :WORD
  5.         EXTRN   _lvolsel :WORD
  6.  
  7.     .model small,c
  8.  
  9. DGROUP  GROUP   _DATA
  10.  
  11. _TEXT   SEGMENT DWORD PUBLIC USE32 'CODE'
  12.         ASSUME  CS:_TEXT ,DS:DGROUP,SS:DGROUP
  13.  
  14.         PUBLIC  AsmStereoNormal_
  15.         PUBLIC  AsmMonoNormal_
  16.         
  17. SS2     MACRO index
  18.         even
  19.         mov   edx,ebx
  20.         sar   edx,0bh
  21.         mov   al,[esi+edx]
  22.         add   ebx,ecx
  23.         mov   edx,es:[eax*4]
  24.         add   (index*8)[edi],edx
  25.         mov   edx,fs:[eax*4]
  26.         add   (4+(index*8))[edi],edx
  27.         ENDM
  28.  
  29. SM2     MACRO index
  30.         even
  31.         mov   edx,ebx
  32.         add   ebx,ecx
  33.         sar   edx,0bh
  34.         mov   al,[esi+edx]
  35.         mov   edx,es:[eax*4]
  36.         add   (index*4)[edi],edx
  37.         ENDM
  38.  
  39.  
  40. AsmStereoNormal_ proc USES ebp fs es
  41.         mov    ax,_lvolsel
  42.         mov    es,ax                       ; voltab selector naar fs
  43.         mov    ax,_rvolsel
  44.         mov    fs,ax
  45.         xor    eax,eax
  46.         push   edx
  47.         shr    edx,4
  48.         jz     sskip16
  49.         mov    ebp,edx
  50. sagain16:
  51.         SS2    0
  52.         SS2    1
  53.         SS2    2
  54.         SS2    3
  55.         SS2    4
  56.         SS2    5
  57.         SS2    6
  58.         SS2    7
  59.         SS2    8
  60.         SS2    9
  61.         SS2    10
  62.         SS2    11
  63.         SS2    12
  64.         SS2    13
  65.         SS2    14
  66.         SS2    15
  67.         add    edi,(16*8)
  68.         dec    ebp
  69.         jnz    sagain16
  70. sskip16:
  71.         pop    edx
  72.         and    edx,15
  73.         jz     sskip1
  74.         mov    ebp,edx
  75. sagain1:
  76.         SS2    0
  77.         add    edi,8
  78.         dec    ebp
  79.         jnz    sagain1
  80. sskip1:
  81.     ret
  82. AsmStereoNormal_ endp
  83.  
  84.  
  85. AsmMonoNormal_ proc USES ebp es
  86.         mov    ax,_lvolsel
  87.         mov    es,ax                       ; voltab selector naar fs
  88.         xor    eax,eax
  89.         push   edx
  90.         shr    edx,4
  91.         jz     mskip16
  92.         mov    ebp,edx
  93. magain16:
  94.         SM2    0
  95.         SM2    1
  96.         SM2    2
  97.         SM2    3
  98.         SM2    4
  99.         SM2    5
  100.         SM2    6
  101.         SM2    7
  102.         SM2    8
  103.         SM2    9
  104.         SM2    10
  105.         SM2    11
  106.         SM2    12
  107.         SM2    13
  108.         SM2    14
  109.         SM2    15
  110.         add    edi,(16*4)
  111.         dec    ebp
  112.         jnz    magain16
  113. mskip16:
  114.         pop    edx
  115.         and    edx,15
  116.         jz     mskip1
  117.         mov    ebp,edx
  118. magain1:
  119.         SM2    0
  120.         add    edi,4
  121.         dec    ebp
  122.         jnz    magain1
  123. mskip1:
  124.     ret
  125. AsmMonoNormal_ endp
  126.  
  127. _TEXT   ENDS
  128.  
  129. _DATA   SEGMENT DWORD PUBLIC USE32 'DATA'
  130. _DATA   ENDS
  131.  
  132.         END
  133.