📄 syn_filt.asm
字号:
;==========================================================================
; File Name
; ----------
; SYN_FIL.ASM
;
; Brief Description of the Code:
; ------------------------------
; Synthesis filtering 1/A(z).
;
; Ref
; ------
; FILTER.C (Syn_filt)
;==========================================================================
.mmregs
.include ../include/const.h
.include ../include/tab_ld8a.h
.include ../include/ld8amem.h
.text
.def Syn_filt1 ; Updata = 1
.def Syn_filt2 ; Updata = 1
.def Syn_filt3 ; Updata = 0
.asg "AR0", AR_Counter
.asg "AR1", pCounter
.asg "AR2", pBiQ12
.asg "AR3", pXn
.asg "AR4", pYn2
.asg "AR5", pYn
Syn_filt1:
PSHM AR7
STM #0, AR_Counter
MVMM pYn, pYn2 ; Updata =1
MAR *+pYn2(#L_FRAME-1) ; Modify pYn2
STM #M - 1, BRC
STM #M - 1, AR7
MAR *pYn-
RPTB EndLE10 - 1
LD *pXn+, 13, B
MVMM AR_Counter, pCounter
NOP
CMPM *(pCounter), #0
NOP
BC L01, TC
MAR *pCounter-
RPT *(pCounter)
MAS *pBiQ12+, *pYn-, B
MVMM AR_Counter, pCounter
NOP
MAR *pCounter-
RPT *(pCounter)
MAR *pYn+
L01: MVMM AR7, AR6
NOP
RPT *(AR6)
MAS *pBiQ12+, *pYn2-, B
MAR *+pBiQ12(#-M)
MVMM AR7, AR6
NOP
RPT *(AR6)
MAR *pYn2+
MAR *AR_Counter+
MAR *AR7-
ADD #1, 12, B
LD B, 3, B
SAT B
STL B, -16, *+pYn
EndLE10:
SUB #M + 1, A
STLM A, BRC
STM #M, BK
RPTB EndGT10 - 1
LD *pXn+, 13, A
MVMM pYn, pYn2
RPT #M - 1
MAS *pBiQ12+, *pYn2-, A
MAR *+pBiQ12(#-M)
ADD #1, 12, A
LD A, 3, A
SAT A
STL A, -16, *+pYn
EndGT10:
POPM AR7
RET
Syn_filt2:
MAR *pYn-
STM #M - 1, BRC
RPTB EndLE20 - 1
LD *pXn+, 13, B
MVMM pYn, pYn2 ;Updata=1 Modify pYn2
RPT #M - 1
MAS *pBiQ12+, *pYn2-, B
MAR *+pBiQ12(#-M)
ADD #1, 12, B
LD B, 3, B
SAT B
STL B, -16, *+pYn
EndLE20:
SUB #M + 1, A
STLM A, BRC
STM #M, BK
RPTB EndGT20 - 1
LD *pXn+, 13, A
MVMM pYn, pYn2
RPT #M - 1
MAS *pBiQ12+, *pYn2-, A
MAR *+pBiQ12(#-M)
ADD #1, 12, A
LD A, 3, A
SAT A
STL A, -16, *+pYn
EndGT20:
RET
Syn_filt3:
PSHM AR7
MAR *+pYn2(#M-1) ; Updata=0
STM #0, AR_Counter
STM #M - 1, BRC
STM #M - 1, AR7
MAR *pYn-
RPTB EndLE30 - 1
LD *pXn+, 13, B
MVMM AR_Counter, pCounter
NOP
CMPM *(pCounter), #0
NOP
BC L03, TC
MAR *pCounter-
RPT *(pCounter)
MAS *pBiQ12+, *pYn-, B
MVMM AR_Counter, pCounter
NOP
MAR *pCounter-
RPT *(pCounter)
MAR *pYn+
L03: MVMM AR7, AR6
NOP
RPT *(AR6)
MAS *pBiQ12+, *pYn2-, B
MAR *+pBiQ12(#-M)
RPT *(AR6)
MAR *pYn2+
MVMM AR7, AR6
MAR *AR_Counter+
MAR *AR7-
ADD #1, 12, B
LD B, 3, B
SAT B
STL B, -16, *+pYn
EndLE30:
SUB #M + 1, A
STLM A, BRC
STM #M, BK
RPTB EndGT30 - 1
LD *pXn+, 13, A
MVMM pYn, pYn2
RPT #M - 1
MAS *pBiQ12+, *pYn2-, A
MAR *+pBiQ12(#-M)
ADD #1, 12, A
LD A, 3, A
SAT A
STL A, -16, *+pYn
EndGT30:
POPM AR7
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -