Files
RedBear-OS/local/recipes/kde/kf6-syntaxhighlighting/source/autotests/folding/highlight.asm-dsp56k.fold
T

57 lines
1.6 KiB
Plaintext

* initialization
n equ 20
start equ $40
wddr equ $0
cddr equ $0
input equ $ffe0
output equ $ffe1
;
org p:start
move #wddr,r0 ;r0 ¬ samples
move #cddr,r4 ;r1 ¬ coefficients
move #n-1,m0 ;set modulo arithmetic
move m0,m4 ;for the 2 circular buffers
;
opt cc
; filter loop :8+(n-1) cycles
movep y:input,x: (r0) ;input sample in memory
clr a x:(r0)+,x0 y: (r4)+,y0
rep #n-1
mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0
macr x0,x0,a (r0)-
movep a,y:output ;output filtered sample
fftr2a macro points,data,coef
fftr2a: ident 1,1
move #points/2,n0 ;initialize butterflies per group
move #1,n2 ;initialize groups per pass
move #points/4,n6 ;initialize C pointer offset
move #-1,m0 ;initialize A and B address modifiers
move m0,m1 ;for linear addressing
move m0,m4
move m0,m5
move #0,m6 ;initialize C address modifier for
;reverse carry (bit-reversed) addressing
do #@cvi (@log(points)/@log(2)+0.5),_end_pass
move #data,r0 ;initialize A input pointer
move r0,r4 ;initialize A output pointer
_end_bfy
move a,x:(r5)+n5 y:(r1)+n1,y1
end_cell
rnd a
movep #0,x:$fffe
dc @sin(@cvf(count)*freq)
move #twiddle,r2
MOVE L:<$1,A
SUB X,A L:<$3,B
bad_label
good_label: