📄 5-9.asm
字号:
.title "CVSDdecoder.asm"
.mmregs
STACK .usect "STACK",10h
.global nit, Begin
DeltaMax .set 1280h
DeltaMin .set 65h
Beta .set 99h
Delta0CVSD .set 10h
ORD .set 6h
ORD1 .set 5h
.data
TBL: .word 0,1,0
Coefa: .word -3888933*32768/1000000
.word 6640744*32768/1000000
.word -6086001*32768/1000000
.word 2986736*32768/1000000
.word -627688*32768/1000000
Coefb: .word 32850*32768/1000000
.word -57239*32768/1000000
.word 36818*32768/1000000
.word 36818*32768/1000000
.word -57239*32768/1000000
.word 32850*32768/1000000
.bss ThreeJudge,3
.bss Judge,1
.bss InData,1
.bss OutData,1
.bss DeltaCVSD,1
.bss ValPreCVSD,1
.bss FilterX,6
.bss CoefA,5
.bss FilterY,5
.bss CoefB,6
.text
Init: STM #ThreeJudge,AR5
RPT #3
MVPD TBL,*AR5+
STM #CoefA,AR5
RPT #5
MVPD Coefa,*AR5+
STM #CoefB,AR5
RPT #6
MVPD Coefb,*AR5+
STM #ThreeJudge,AR5
ST #20,*(DeltaCVSD)
ST #0,*(ValPreCVSD)
ST #1,*(Judge)
ST #1,*(InData)
Begin: LD *(InData),A
STL A,*AR5+
AND *(Judge),A
BC ONE,ANEQ
LD #0,A
ADD *AR5+,A
ADD *AR5+,A
BC L1,ANEQ
STM #DeltaCVSD,AR6
STM #Beta,T
MPY AR6,A
B L2
L1: LD #DeltaCVSD,A
STM #Delta0CVSD,AR3;
ADD AR3,A
L2: STM #DeltaMax,AR0
STL A,AR4
CMPR LT,AR4
BC L3,TC
LD AR0,A
L3: STM #DeltaMin,AR0
STL A,AR4
CMPR GT,AR4
BC L4,TC
LD AR0,A
L4: STL A,*(DeltaCVSD)
STL A,AR4
STM #ValPreCVSD,AR6
LD *(AR6),A
SUB AR4,A
STL A,*(ValPreCVSD)
ONE:
LD #1,A
AND *AR5+,A
AND *AR5+,A
BC L5,ANEQ
STM #DeltaCVSD,AR6
STM #Beta,T
MPY AR6,A
B L6
L5: LD #DeltaCVSD,A
STM #Delta0CVSD,AR3;
ADD AR3,A
L6: STM #DeltaMax,AR0
STL A,AR4
CMPR LT,AR4
BC L7,TC
LD AR0,A
L7: STM #DeltaMin,AR0
STL A,AR4
CMPR GT,AR4
BC L8,TC
LD AR0,A
L8: STL A,*(DeltaCVSD)
STM #ValPreCVSD,AR4
ADD *AR4,A
STL A,*(ValPreCVSD)
IIR: STM #CoefB,AR2
STM #FilterX,AR3
LD *(ValPreCVSD),A
STL A,*AR3
MPY *AR2+,*AR3+,A
RPT #4
MAC *AR2+,*AR3+,A
STM #CoefA,AR2
STM #FilterY,AR3
RPT #4
MAS *AR2+,*AR3+,A
STM #FilterX+4,AR3
RPT #3
DELAY *AR3-
STM #FilterY+3,AR3
RPT #2
DELAY *AR3-
S: STL A,*(FilterY)
.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -