⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpegsubf.a

📁 Application (fix point) for playing MP3 data on embedded systems. mp3play is designed to be able to
💻 A
📖 第 1 页 / 共 3 页
字号:
;;              Window a sub band filtered sample;;              a0: out_filter_buffer (float *);              a1: out_sample_buffer (float *);              a2: dewindow (float *) (##2);              d0: buffer offset;              d1.w: w_begin  (#1);              d2.w: w_width  (#1);              d3.w: freq_div (#1);              -> a1 = out_sample_buffer + out_sample_length@MPEGSUBF_window_band_MPEGSUBF_window_band               movem.l  d2-d7/a2-a6,-(sp)               fmovem.x fp0-fp7,-(sp);               move.w   w_begin,d1 ; #1               move.w   d2,-(sp) ; #1               move.l   a2,a4    ; ##2               lea.l    pcm_loops,a2 ; #1               move.w   (a2,d3.w*2),d6 ; #1               move.w   d3,d2 ; #1;               lea.l    window_table,a2 ; #2 Suppressed (external now);               lea.l    (a2,d1.w*2),a2       ; a2 = &dewindow[ w_begin ]               lea.l    (a4,d1.w*4),a2       ; ##2 a2 = &dewindow[ w_begin ]               add.w    d0,d1               and.w    #15,d1               ; d1 = start               move.l   a0,a4                ; buf0 = &buf_ptr[ 0 ];               lea      (a0,d1.w*2),a3       ; buf1 = &buf_ptr[ start ]               lea      (a0,d1.w*4),a3       ; buf1 = &buf_ptr[ start ];               move.w   w_width,d3 ; #1               move.w   (sp),d3 ; #1               add.w    d1,d3               cmp.w    #16,d3               ble      window_band1               moveq.l  #16,d3               ; d3 = topwindow_band1   sub.w    d1,d3                ; d3 = cnt1;               move.w   w_width,d4 ; #1               move.w   (sp),d4 ; #1               sub.w    d3,d4                ; d4 = cnt0;               move.w   freq_div,d2 ; #1               lsl.w    #4,d2               move.w   d2,d5               sub.w    d3,d5                ; off1 = freq_div*16 - cnt1               ext.l    d5;               add.l    d5,d5               lsl.l    #2,d5               move.l   d5,a5                ; a5 = off1               move.w   d2,d5               sub.w    d4,d5                ; off0 = freq_div*16 - cnt0               ext.l    d5;               add.l    d5,d5               lsl.l    #2,d5               move.l   d5,a6                ; a6 = off0;               sub.w    w_width,d2           ; offd = freq_div*16 - w_width ; #1               sub.w    (sp),d2           ; offd = freq_div*16 - w_width ; #1               ext.l    d2;               add.l    d2,d2               lsl.l    #2,d2;               move.w   pcm_count,d6  ; #1;               subq.w   #1,d6                ; for DBRA loop ; #1               IFD      OLD_WIN  ; ##1               subq.w   #1,d3                ; for DBRA loop               subq.w   #1,d4                ; for DBRA loopwindow_band2;               clr.l    d5                   ; d5 = sum               MOVM     #0,fp5               move.w   d3,d0                ; d0 = cnt1               bmi      window_band4window_band3   MOVM     (a3)+,fp1               MULM     (a2)+,fp1               ADDR     fp1,fp5               dbra     d0,window_band3window_band4               add.l    a5,a3                ; buf1 += off1               move.w   d4,d0                ; d0 = cnt0               bmi      window_band6window_band5   MOVM     (a4)+,fp1               MULM     (a2)+,fp1               ADDR     fp1,fp5               dbra     d0,window_band5window_band6               add.l    a6,a4                ; buf0 += off0               add.l    d2,a2                ; dewindow += offd;               asr.l    d7,d5                ; sum >>= (WINDOW_FACTOR+INT_FACTOR-15);               MULI     32768,fp5 -> done in dewindow table               fmove.l  fp5,d5               IFD      WINDOW_CLIP               cmp.l    #-32768,d5               blt      window_band4l               cmp.l    #32767,d5               bgt      window_band4hwindow_band4n               ENDC               move.w   d5,(a1)+               dbra     d6,window_band2               IFD      WINDOW_CLIP               bra      window_band9window_band4l  move.l   #-32768,d5               bra.s    window_band4nwindow_band4h  move.l   #32767,d5               bra.s    window_band4n               ENDCwindow_band9               move.w   (sp)+,d2 ; #1               fmovem.x (sp)+,fp0-fp7               movem.l  (sp)+,d2-d7/a2-a6               rts               ; ##1 Begin               ELSE;              MULADDWIN {a3|a4}MULADDWIN      MACRO               MOVM     (\1)+,fp1               MULM     (a2)+,fp1               ADDR     fp1,fp5               ENDM               ; WARING GENAM bug in rept & macros               ; rept part is moved to END of MACRO !               ;;              MULADDN <rept num>,{a3|a4}MULADDN        MACRO               IFNE     \2               REPT     \2               MULADDWIN \1               ENDR               ENDC               ENDM;              MULADD0 <rept num>MULADD0        MACRO;               clr.l    d5               MOVM     #0,fp5               MULADDN  a3,\1               ENDM;              MULADD1 <rept num>MULADD1        MACRO               add.l    a5,a3               MULADDN  a4,\1               ENDM               ; CHECKBOUNDS <loop label>CHECKBOUNDS    MACRO               add.l    a6,a4               add.l    d2,a2;               asr.l    d7,d5;               MULI     32768,fp5 -> done in dewindow table               fmove.l  fp5,d5               IFD      WINDOW_CLIP               cmp.l    #-32768,d5               blt      .window_bandl               cmp.l    #32767,d5               bgt      .window_bandh.window_bandn               ENDC               move.w   d5,(a1)+               dbra     d6,\1               bra      window_band9               IFD      WINDOW_CLIP               bra      window_band9.window_bandl  move.w   #-32768,d5               bra.s    .window_bandn.window_bandh  move.w   #32767,d5               bra.s    .window_bandn               ENDC               ENDM;               move.w   w_width,d3 ; #1               move.w   (sp),d3 ; #1               lea      window_q0muls,a0               cmp.w    #4,d3               ble      window_qmul               lea      window_q1muls,a0               cmp.w    #8,d3               ble      window_qmul               lea      window_q2muls,a0window_qmul               move.l   (a0,d4.w*4),a0               jmp      (a0)window_q2mul0               MULADD0  16               MULADD1  0               CHECKBOUNDS window_q2mul0window_q2mul1               MULADD0  15               MULADD1  1               CHECKBOUNDS window_q2mul1window_q2mul2               MULADD0  14               MULADD1  2               CHECKBOUNDS window_q2mul2window_q2mul3               MULADD0  13               MULADD1  3               CHECKBOUNDS window_q2mul3window_q2mul4               MULADD0  12               MULADD1  4               CHECKBOUNDS window_q2mul4window_q2mul5               MULADD0  11               MULADD1  5               CHECKBOUNDS window_q2mul5window_q2mul6               MULADD0  10               MULADD1  6               CHECKBOUNDS window_q2mul6window_q2mul7               MULADD0  9               MULADD1  7               CHECKBOUNDS window_q2mul7window_q2mul8               MULADD0  8               MULADD1  8               CHECKBOUNDS window_q2mul8window_q2mul9               MULADD0  7               MULADD1  9               CHECKBOUNDS window_q2mul9window_q2mul10               MULADD0  6               MULADD1  10               CHECKBOUNDS window_q2mul10window_q2mul11               MULADD0  5               MULADD1  11               CHECKBOUNDS window_q2mul11window_q2mul12               MULADD0  4               MULADD1  12               CHECKBOUNDS window_q2mul12window_q2mul13               MULADD0  3               MULADD1  13               CHECKBOUNDS window_q2mul13window_q2mul14               MULADD0  2               MULADD1  14               CHECKBOUNDS window_q2mul14window_q2mul15               MULADD0  1               MULADD1  15               CHECKBOUNDS window_q2mul15window_q1mul0               MULADD0  8               MULADD1  0               CHECKBOUNDS window_q1mul0window_q1mul1               MULADD0  7               MULADD1  1               CHECKBOUNDS window_q1mul1window_q1mul2               MULADD0  6               MULADD1  2               CHECKBOUNDS window_q1mul2window_q1mul3               MULADD0  5               MULADD1  3               CHECKBOUNDS window_q1mul3window_q1mul4               MULADD0  4               MULADD1  4               CHECKBOUNDS window_q1mul4window_q1mul5               MULADD0  3               MULADD1  5               CHECKBOUNDS window_q1mul5window_q1mul6               MULADD0  2               MULADD1  6               CHECKBOUNDS window_q1mul6window_q1mul7               MULADD0  1               MULADD1  7               CHECKBOUNDS window_q1mul7window_q0mul0               MULADD0  4               MULADD1  0               CHECKBOUNDS window_q0mul0window_q0mul1               MULADD0  3               MULADD1  1               CHECKBOUNDS window_q0mul1window_q0mul2               MULADD0  2               MULADD1  2               CHECKBOUNDS window_q0mul2window_q0mul3               MULADD0  1               MULADD1  3               CHECKBOUNDS window_q0mul3window_band9               move.w   (sp)+,d2 ; #1               fmovem.x (sp)+,fp0-fp7               movem.l  (sp)+,d2-d7/a2-a6               rtswindow_q2muls  dc.l     window_q2mul0, window_q2mul1, window_q2mul2, window_q2mul3               dc.l     window_q2mul4, window_q2mul5, window_q2mul6, window_q2mul7               dc.l     window_q2mul8, window_q2mul9, window_q2mul10, window_q2mul11               dc.l     window_q2mul12, window_q2mul13, window_q2mul14, window_q2mul15window_q1muls  dc.l     window_q1mul0, window_q1mul1, window_q1mul2, window_q1mul3               dc.l     window_q1mul4, window_q1mul5, window_q1mul6, window_q1mul7window_q0muls  dc.l     window_q0mul0, window_q0mul1, window_q0mul2, window_q0mul3               ENDC               ; ##1 End; ##2 Begin (suppressed)               IFD OLD_DEW_TABLE               section  ASM_TABLES,data               evenwindow_table               dc.s     0.0,  -14.5,  106.5, -229.5, 1018.5,-2576.5, 3287.0,-18744.5               dc.s 37519.0,18744.5, 3287.0, 2576.5, 1018.5,  229.5,  106.5,   14.5               dc.s    -5e-1,  -15.5,  109.0, -259.5, 1000.0,-2758.5, 2979.5,-19668.0               dc.s 37496.0,17820.0, 3567.0, 2394.0, 1031.5,  200.5,  104.0,   13.0               dc.s    -5e-1,  -17.5,  111.0, -290.5,  976.0,-2939.5, 2644.0,-20588.0               dc.s 37428.0,16895.5, 3820.0, 2212.5, 1040.0,  173.5,  101.0,   12.0               dc.s    -5e-1,  -19.0,  112.5, -322.5,  946.5,-3118.5, 2280.5,-21503.0               dc.s 37315.0,15973.5, 4046.0, 2031.5, 1043.5,  147.0,   98.0,   10.5               dc.s    -5e-1,  -20.5,  113.5, -355.5,  911.0,-3294.5, 1888.0,-22410.5               dc.s 37156.5,15056.0, 4246.0, 1852.5, 1042.5,  122.0,   95.0,    9.5               dc.s    -5e-1,  -22.5,  114.0, -389.5,  869.5,-3467.5, 1467.5,-23308.5               dc.s 36954.0,14144.5, 4420.0, 1675.5, 1037.5,   98.5,   91.5,    8.5               dc.s    -5e-1,  -24.5,  114.0, -424.0,  822.0,-3635.5, 1018.5,-24195.0               dc.s 36707.5,13241.0, 4569.5, 1502.0, 1028.5,   76.5,   88.0,    8.0               dc.s    -1.0,  -26.5,  113.5, -459.5,  767.5,-3798.5,  541.0,-25068.5               dc.s 36417.5,12347.0, 4694.5, 1331.5, 1016.0,   55.5,   84.5,    7.0               dc.s    -1.0,  -29.0,  112.0, -495.5,  707.0,-3955.0,   35.0,-25926.5               dc.s 36084.5,11464.5, 4796.0, 1165.0, 1000.5,   36.0,   80.5,    6.5               dc.s    -1.0,  -31.5,  110.5, -532.0,  640.0,-4104.5, -499.0,-26767.0               dc.s 35710.0,10594.5, 4875.0, 1003.0,  981.0,   18.0,   77.0,    5.5               dc.s    -1.0,  -34.0,  107.5, -568.5,  565.5,-4245.5,-1061.0,-27589.0               dc.s 35295.0, 9739.0, 4931.5,  846.0,  959.5,    1.0,   73.5,    5.0               dc.s    -1.5,  -36.5,  104.0, -605.0,  485.0,-4377.5,-1650.0,-28389.0               dc.s 34839.5, 8899.5, 4967.5,  694.0,  935.0,  -14.5,   69.5,    4.5               dc.s    -1.5,  -39.5,  100.0, -641.5,  397.0,-4499.0,-2266.5,-29166.5               dc.s 34346.0, 8077.5, 4983.0,  547.5,  908.5,  -28.5,   66.0,    4.0               dc.s    -2.0,  -42.5,   94.5, -678.0,  302.5,-4609.5,-2909.0,-29919.0               dc.s 33814.5, 7274.0, 4979.5,  407.0,  879.5,  -41.5,   62.5,    3.5               dc.s    -2.0,  -45.5,   88.5, -714.0,  201.0,-4708.0,-3577.0,-30644.5               dc.s 33247.0, 6490.0, 4958.0,  272.5,  849.0,  -53.0,   58.5,    3.5               dc.s    -2.5,  -48.5,   81.5, -749.0,   92.5,-4792.5,-4270.0,-31342.0               dc.s 32645.0, 5727.5, 4919.0,  144.0,  817.0,  -63.5,   55.5,    3.0               dc.s    -2.5,  -52.0,   73.0, -783.5,  -22.5,-4863.5,-4987.5,-32009.5               dc.s 32009.5, 4987.5, 4863.5,   22.5,  783.5,  -73.0,   52.0,    2.5               dc.s    -3.0,  -55.5,   63.5, -817.0, -144.0,-4919.0,-5727.5,-32645.0               dc.s 31342.0, 4270.0, 4792.5,  -92.5,  749.0,  -81.5,   48.5,    2.5               dc.s    -3.5,  -58.5,   53.0, -849.0, -272.5,-4958.0,-6490.0,-33247.0               dc.s 30644.5, 3577.0, 4708.0, -201.0,  714.0,  -88.5,   45.5,    2.0               dc.s    -3.5,  -62.5,   41.5, -879.5, -407.0,-4979.5,-7274.0,-33814.5               dc.s 29919.0, 2909.0, 4609.5, -302.5,  678.0,  -94.5,   42.5,    2.0               dc.s    -4.0,  -66.0,   28.5, -908.5, -547.5,-4983.0,-8077.5,-34346.0               dc.s 29166.5, 2266.5, 4499.0, -397.0,  641.5, -100.0,   39.5,    1.5               dc.s    -4.5,  -69.5,   14.5, -935.0, -694.0,-4967.5,-8899.5,-34839.5               dc.s 28389.0, 1650.0, 4377.5, -485.0,  605.0, -104.0,   36.5,    1.5               dc.s    -5.0,  -73.5,   -1.0, -959.5, -846.0,-4931.5,-9739.0,-35295.0               dc.s 27589.0, 1061.0, 4245.5, -565.5,  568.5, -107.5,   34.0,    1.0               dc.s    -5.5,  -77.0,  -18.0, -981.0,-1003.0,-4875.0,-10594.5,-35710.0               dc.s 26767.0,  499.0, 4104.5, -640.0,  532.0, -110.5,   31.5,    1.0               dc.s    -6.5,  -80.5,  -36.0,-1000.5,-1165.0,-4796.0,-11464.5,-36084.5               dc.s 25926.5,  -35.0, 3955.0, -707.0,  495.5, -112.0,   29.0,    1.0               dc.s    -7.0,  -84.5,  -55.5,-1016.0,-1331.5,-4694.5,-12347.0,-36417.5               dc.s 25068.5, -541.0, 3798.5, -767.5,  459.5, -113.5,   26.5,    1.0               dc.s    -8.0,  -88.0,  -76.5,-1028.5,-1502.0,-4569.5,-13241.0,-36707.5               dc.s 24195.0,-1018.5, 3635.5, -822.0,  424.0, -114.0,   24.5,    5e-1               dc.s    -8.5,  -91.5,  -98.5,-1037.5,-1675.5,-4420.0,-14144.5,-36954.0               dc.s 23308.5,-1467.5, 3467.5, -869.5,  389.5, -114.0,   22.5,    5e-1               dc.s    -9.5,  -95.0, -122.0,-1042.5,-1852.5,-4246.0,-15056.0,-37156.5               dc.s 22410.5,-1888.0, 3294.5, -911.0,  355.5, -113.5,   20.5,    5e-1               dc.s   -10.5,  -98.0, -147.0,-1043.5,-2031.5,-4046.0,-15973.5,-37315.0               dc.s 21503.0,-2280.5, 3118.5, -946.5,  322.5, -112.5,   19.0,    5e-1               dc.s   -12.0, -101.0, -173.5,-1040.0,-2212.5,-3820.0,-16895.5,-37428.0               dc.s 20588.0,-2644.0, 2939.5, -976.0,  290.5, -111.0,   17.5,    5e-1               dc.s   -13.0, -104.0, -200.5,-1031.5,-2394.0,-3567.0,-17820.0,-37496.0               dc.s 19668.0,-2979.5, 2758.5,-1000.0,  259.5, -109.0,   15.5,    5e-1               ENDC; ##2 End

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -