Генерация и распознование DTMF-сигналов

rla rl3  
rla rl2 ; Tl * 32
rla rl2  
rla rl2  
rla rl2  
rla rl2  
sub IN,rl2  
add rl2,OUT ; В rl3 выходное значение
. **************** ************: t************************
cmp OUT,MAXHI ; Сравнить выходное
    ; значение с максиму-
    ; мом
jge SWAP3  
mov rl3,MAXHI ; замена максимума
mov #01,COL ; столбец 1
SWAP3 .****** ************ *************************
; окончание согласующей цепи  
FILTER 1336 ENDE    
.endif    
.if FILTER 4  
FILTER 1209    
mov T2 1209,rl3 ; N1=(T1-T2)*alpha
mov Tl 1209,rll  
mov rll,rl4  
sub rl3,rll  
rra rll ; N1 в rll
mov rll,rl2 ; N3=N1-T2
sub rl3,rll ; N3 в rll
sub rl4,rl2 ; N2=N1-T1 в г12
mov rl2,T2 1209  
  ; Общая согласующая цепь с потерями
  ; требуется N3 в rll
  ; l/nl=32, gamma 2=-l+l/32)
  ; nl*gamma 1=1/32
mov rll,rl3 ; сохранить N3 в г13
mov IN,rl2 ;Tl=N3*gamma 2+nl*gamma 1*IN
rl2 rl2 rl2 rl2 rl2 rll,rl2 rll
rra rra rra rra rra sub rra

nl*gamma 1*IN в rl2