File indexing completed on 2025-03-09 03:45:56
0001 <!DOCTYPE html> 0002 <html><head> 0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 0004 <title>highlight.asm-dsp56k</title> 0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Motorola DSP56k) - Theme (Breeze Light)"/> 0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre> 0007 <span style="color:#898887">* initialization</span> 0008 <span style="color:#644a9b">n</span> <span style="font-weight:bold">equ</span> <span style="color:#b08000">20</span> 0009 <span style="color:#644a9b">start</span> <span style="font-weight:bold">equ</span> <span style="color:#b08000">$40</span> 0010 <span style="color:#644a9b">wddr</span> <span style="font-weight:bold">equ</span> <span style="color:#b08000">$0</span> 0011 <span style="color:#644a9b">cddr</span> <span style="font-weight:bold">equ</span> <span style="color:#b08000">$0</span> 0012 <span style="color:#644a9b">input</span> <span style="font-weight:bold">equ</span> <span style="color:#b08000">$ffe0</span> 0013 <span style="color:#644a9b">output</span> <span style="font-weight:bold">equ</span> <span style="color:#b08000">$ffe1</span> 0014 <span style="color:#898887">;</span> 0015 <span style="font-weight:bold">org</span> <span style="color:#006e28;font-weight:bold">p:</span>start 0016 <span style="font-weight:bold">move</span> <span style="color:#aa5500">#</span><span style="color:#644a9b">wddr</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">r0</span> <span style="color:#898887">;r0 ¬ samples</span> 0017 <span style="font-weight:bold">move</span> <span style="color:#aa5500">#</span><span style="color:#644a9b">cddr</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">r4</span> <span style="color:#898887">;r1 ¬ coefficients</span> 0018 <span style="font-weight:bold">move</span> <span style="color:#aa5500">#</span><span style="color:#644a9b">n</span><span style="color:#ca60ca">-</span><span style="color:#aa5500">1</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">m0</span> <span style="color:#898887">;set modulo arithmetic</span> 0019 <span style="font-weight:bold">move</span> <span style="color:#0057ae">m0</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">m4</span> <span style="color:#898887">;for the 2 circular buffers</span> 0020 <span style="color:#898887">;</span> 0021 <span style="font-weight:bold">opt</span> cc 0022 <span style="color:#898887">; filter loop :8+(n-1) cycles</span> 0023 0024 <span style="font-weight:bold">movep</span> <span style="color:#006e28;font-weight:bold">y:</span>input<span style="color:#ca60ca">,</span><span style="color:#006e28;font-weight:bold">x:</span> <span style="color:#ca60ca">(</span><span style="color:#0057ae">r0</span><span style="color:#ca60ca">)</span> <span style="color:#898887">;input sample in memory</span> 0025 <span style="font-weight:bold">clr</span> <span style="color:#0057ae">a</span> <span style="color:#006e28;font-weight:bold">x:</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">r0</span><span style="color:#ca60ca">)+</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">x0</span> <span style="color:#006e28;font-weight:bold">y:</span> <span style="color:#ca60ca">(</span><span style="color:#0057ae">r4</span><span style="color:#ca60ca">)+</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">y0</span> 0026 <span style="font-weight:bold">rep</span> <span style="color:#aa5500">#</span><span style="color:#644a9b">n</span><span style="color:#ca60ca">-</span><span style="color:#aa5500">1</span> 0027 <span style="font-weight:bold">mac</span> <span style="color:#0057ae">x0</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">y0</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">a</span> <span style="color:#006e28;font-weight:bold">x:</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">r0</span><span style="color:#ca60ca">)+</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">x0</span> <span style="color:#006e28;font-weight:bold">y:</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">r4</span><span style="color:#ca60ca">)+</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">y0</span> 0028 <span style="font-weight:bold">macr</span> <span style="color:#0057ae">x0</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">x0</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">a</span> <span style="color:#ca60ca">(</span><span style="color:#0057ae">r0</span><span style="color:#ca60ca">)-</span> 0029 0030 <span style="font-weight:bold">movep</span> <span style="color:#0057ae">a</span><span style="color:#ca60ca">,</span><span style="color:#006e28;font-weight:bold">y:</span>output <span style="color:#898887">;output filtered sample</span> 0031 0032 <span style="color:#644a9b">fftr2a</span> <span style="font-weight:bold">macro</span> points<span style="color:#ca60ca">,</span>data<span style="color:#ca60ca">,</span>coef 0033 <span style="color:#644a9b">fftr2a</span><span style="color:#ca60ca">:</span> <span style="font-weight:bold">ident</span> <span style="color:#b08000">1</span><span style="color:#ca60ca">,</span><span style="color:#b08000">1</span> 0034 0035 <span style="font-weight:bold">move</span> <span style="color:#aa5500">#</span><span style="color:#644a9b">points</span><span style="color:#ca60ca">/</span><span style="color:#aa5500">2</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">n0</span> <span style="color:#898887">;initialize butterflies per group</span> 0036 <span style="font-weight:bold">move</span> <span style="color:#aa5500">#1</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">n2</span> <span style="color:#898887">;initialize groups per pass</span> 0037 <span style="font-weight:bold">move</span> <span style="color:#aa5500">#</span><span style="color:#644a9b">points</span><span style="color:#ca60ca">/</span><span style="color:#aa5500">4</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">n6</span> <span style="color:#898887">;initialize C pointer offset</span> 0038 <span style="font-weight:bold">move</span> <span style="color:#aa5500">#</span><span style="color:#ca60ca">-</span><span style="color:#aa5500">1</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">m0</span> <span style="color:#898887">;initialize A and B address modifiers</span> 0039 <span style="font-weight:bold">move</span> <span style="color:#0057ae">m0</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">m1</span> <span style="color:#898887">;for linear addressing</span> 0040 <span style="font-weight:bold">move</span> <span style="color:#0057ae">m0</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">m4</span> 0041 <span style="font-weight:bold">move</span> <span style="color:#0057ae">m0</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">m5</span> 0042 <span style="font-weight:bold">move</span> <span style="color:#aa5500">#0</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">m6</span> <span style="color:#898887">;initialize C address modifier for</span> 0043 <span style="color:#898887">;reverse carry (bit-reversed) addressing</span> 0044 0045 <span style="font-weight:bold">do</span> <span style="color:#aa5500">#</span><span style="color:#644a9b;font-weight:bold">@cvi</span> <span style="color:#ca60ca">(</span><span style="color:#644a9b;font-weight:bold">@log</span><span style="color:#ca60ca">(</span>points<span style="color:#ca60ca">)/</span><span style="color:#644a9b;font-weight:bold">@log</span><span style="color:#ca60ca">(</span><span style="color:#b08000">2</span><span style="color:#ca60ca">)+</span><span style="color:#b08000">0.5</span><span style="color:#ca60ca">)</span><span style="color:#ca60ca">,</span>_end_pass 0046 <span style="font-weight:bold">move</span> <span style="color:#aa5500">#</span><span style="color:#644a9b">data</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">r0</span> <span style="color:#898887">;initialize A input pointer</span> 0047 <span style="font-weight:bold">move</span> <span style="color:#0057ae">r0</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">r4</span> <span style="color:#898887">;initialize A output pointer</span> 0048 0049 <span style="color:#644a9b">_end_bfy</span> 0050 <span style="font-weight:bold">move</span> <span style="color:#0057ae">a</span><span style="color:#ca60ca">,</span><span style="color:#006e28;font-weight:bold">x:</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">r5</span><span style="color:#ca60ca">)+</span><span style="color:#0057ae">n5</span> <span style="color:#006e28;font-weight:bold">y:</span><span style="color:#ca60ca">(</span><span style="color:#0057ae">r1</span><span style="color:#ca60ca">)+</span><span style="color:#0057ae">n1</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">y1</span> 0051 0052 <span style="color:#644a9b">end_cell</span> 0053 <span style="font-weight:bold">rnd</span> <span style="color:#0057ae">a</span> 0054 <span style="font-weight:bold">movep</span> <span style="color:#aa5500">#0</span><span style="color:#ca60ca">,</span><span style="color:#006e28;font-weight:bold">x:</span><span style="color:#b08000">$fffe</span> 0055 <span style="font-weight:bold">dc</span> <span style="color:#644a9b;font-weight:bold">@sin</span><span style="color:#ca60ca">(</span><span style="color:#644a9b;font-weight:bold">@cvf</span><span style="color:#ca60ca">(</span>count<span style="color:#ca60ca">)*</span>freq<span style="color:#ca60ca">)</span> 0056 <span style="font-weight:bold">move</span> <span style="color:#aa5500">#</span><span style="color:#644a9b">twiddle</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">r2</span> 0057 0058 <span style="font-weight:bold">MOVE</span> <span style="color:#006e28;font-weight:bold">L:</span><span style="color:#aa5500"><$1</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">A</span> 0059 <span style="font-weight:bold">SUB</span> <span style="color:#0057ae">X</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">A</span> <span style="color:#006e28;font-weight:bold">L:</span><span style="color:#aa5500"><$3</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">B</span> 0060 0061 <span style="font-weight:bold">bad_label</span> 0062 <span style="color:#644a9b">good_label</span><span style="color:#ca60ca">:</span> 0063 </pre></body></html>