📄 clida.s55
字号:
*-------------------------------------------------------------------------*/
.global _clid_move_data_out
; .sym _clid_move_data_out, _clid_move_data_out, 32, 2, 0
_clid_move_data_out
*-------------------------------------------------------------------------*/
;CLID_tDb *pDb = xar0
;CLID_tSc *pSc = xar1
;
ac0 = *ar1(#(CLID_tSc.sCurrBitLen));
*ar0(#(CLID_tDb.sCurrBitLen)) = ac0;
ac0 = *ar1(#(CLID_tSc.sBits));
*ar0(#(CLID_tDb.sBits)) = ac0;
ac0 = *ar1(#(CLID_tSc.sAlignment));
*ar0(#(CLID_tDb.sAlignment)) = ac0;
xar2 = mar(*ar0(#(CLID_tDb.asBpSav)));
xar3 = mar(*ar1(#(CLID_tSc.asBp+ICLID_FR_SZ)));
repeat (#(CLID_BPF_SSZ-1))
*ar2+ = *ar3+;
xar2 = mar(*ar0(#(CLID_tDb.asLpISav)));
xar3 = mar(*ar1(#(CLID_tSc.asLpI+ICLID_FR_SZ)));
repeat (#(CLID_LPF_SSZ-1))
*ar2+ = *ar3+;
xar2 = mar(*ar0(#(CLID_tDb.asLpQSav)));
xar3 = mar(*ar1(#(CLID_tSc.asLpQ+ICLID_FR_SZ)));
repeat (#(CLID_LPF_SSZ-1))
*ar2+ = *ar3+;
xar2 = mar(*ar0(#(CLID_tDb.asMfISav)));
xar3 = mar(*ar1(#(CLID_tSc.asMfI+CLID6_FR_SZ)));
repeat (#(CLID_MF_SSZ-1))
*ar2+ = *ar3+;
xar2 = mar(*ar0(#(CLID_tDb.asMfQSav)));
xar3 = mar(*ar1(#(CLID_tSc.asMfQ+CLID6_FR_SZ)));
repeat (#(CLID_MF_SSZ-1))
*ar2+ = *ar3+;
xar2 = mar(*ar0(#(CLID_tDb.asOutSav)));
xar3 = mar(*ar1(#(CLID_tSc.asOut+CLID6_FR_SZ)));
repeat (#(CLID_OUT_SSZ-1))
*ar2+ = *ar3+;
return;
*-------------------------------------------------------------------------*/
.global _clid_cas_bp_filter
_clid_cas_bp_filter
*-------------------------------------------------------------------------*/
;CLID_tDb *pDb = xar0
;CLID_tSc *pSc = xar1
;S16 *psIn = xar2
;
pshboth(xar5)
t0 = *ar0(#(CLID_tDb.Cfg.sNormShift));
t1 = *ar0(#(CLID_tDb.sCasIdx));
xar3 = mar(*ar1(#(CLID_tSc.asCasBp)));
xar4 = mar(*ar0(#(CLID_tCasDb.asBpSav)));
repeat (#(CLID_CAS_FD_SSZ))
*ar3+ = *ar4+;
brc0 = #(ICLID_FR_SZ);
localrepeat {
ac0 = *ar2+ << t0;
*ar3+ = ac0;
}
xcdp = mar(*ar1(#(CLID_tSc.asCasBp))); psFrom
xar2 = mar(*ar0(#(CLID_tCasDb.asLoI + CLID_CAS_FD_SSZ))); psToI
xar3 = mar(*ar0(#(CLID_tCasDb.asLoQ + CLID_CAS_FD_SSZ))); psToI
xar4 = #_CLID_asCasLoI;
xar5 = #_CLID_asCasLoQ;
mar (ar3 + t1);
mar (ar4 + t1);
ac0 = *ar4+ * coef(*cdp+),
ac1 = *ar5+ * coef(*cdp+);
|| repeat (#(CLID_CAS_BP_ASZ-2))
ac0 = ac0 + (*ar4+ * coef(*cdp+)),
ac1 = ac1 + (*ar5+ * coef(*cdp+));
*ar2 = HI(rnd(ac0 << #1));
*ar3 = HI(rnd(ac1 << #1));
xcdp = mar(*ar1(#(CLID_tSc.asCasBp))); psFrom
xar2 = mar(*ar0(#(CLID_tCasDb.asHiI + CLID_CAS_FD_SSZ))); psToI
xar3 = mar(*ar0(#(CLID_tCasDb.asHiQ + CLID_CAS_FD_SSZ))); psToI
xar4 = #_CLID_asCasHiI;
xar5 = #_CLID_asCasHiQ;
mar (ar3 + t1);
mar (ar4 + t1);
ac0 = *ar4+ * coef(*cdp+),
ac1 = *ar5+ * coef(*cdp+);
|| repeat (#(CLID_CAS_BP_ASZ-2))
ac0 = ac0 + (*ar4+ * coef(*cdp+)),
ac1 = ac1 + (*ar5+ * coef(*cdp+));
*ar2 = HI(rnd(ac0 << #1));
*ar3 = HI(rnd(ac1 << #1));
xar4 = mar(*ar0(#(CLID_tCasDb.asBpSav)));
xar5 = mar(*ar1(#(CLID_tSc.asBp + ICLID_FR_SZ)));
repeat (#(CLID_CAS_BP_SSZ-1))
*ar4+ = *ar5+;
xar5 = popboth();
return;
*-------------------------------------------------------------------------*/
.global _clid_cas_move_data_in
_clid_cas_move_data_in
*-------------------------------------------------------------------------*/
;CLID_tDb *pDb = xar0
;CLID_tSc *pSc = xar1
;
xar2 = mar(*ar0(#(CLID_tCasDb.asLoI)));
xar3 = mar(*ar1(#(CLID_tSc.asCasLoI)));
repeat (#(CLID_CAS_FD_ASZ-1))
*ar3+ = *ar2+;
xar2 = mar(*ar0(#(CLID_tCasDb.asLoQ)));
xar3 = mar(*ar1(#(CLID_tSc.asCasLoQ)));
repeat (#(CLID_CAS_FD_ASZ-1))
*ar3+ = *ar2+;
xar2 = mar(*ar0(#(CLID_tCasDb.asHiI)));
xar3 = mar(*ar1(#(CLID_tSc.asCasHiI)));
repeat (#(CLID_CAS_FD_ASZ-1))
*ar3+ = *ar2+;
xar2 = mar(*ar0(#(CLID_tCasDb.asHiQ)));
xar3 = mar(*ar1(#(CLID_tSc.asCasHiQ)));
repeat (#(CLID_CAS_FD_ASZ-1))
*ar3+ = *ar2+;
ac0 = *ar0(#(CLID_tDb.uCasReg));
ac0 = ac0 << #1;
*ar0(#(CLID_tDb.uCasReg)) = ac0;
return;
*-------------------------------------------------------------------------*/
.global _clid_cas_freqdet_flt
_clid_cas_freqdet_flt
*-------------------------------------------------------------------------*/
;CLID_tDb *pDb = xar0
;CLID_tSc *pSc = xar1
;
xcdp = #_CLID_asCasFd; psFlt
xar4 = mar(*ar1(#(CLID_tSc.Cas))); psTo
t0 = #(1-CLID_CAS_FD_ASZ);
xar2 = mar(*ar1(#(CLID_tSc.asCasLoI))); psFromI
xar3 = mar(*ar1(#(CLID_tSc.asCasLoQ))); psFromI
brc0 = #(4-1);
localrepeat {
ac0 = *ar2+ * coef(*cdp+),
ac1 = *ar3+ * coef(*cdp+);
|| repeat (#(CLID_CAS_FD_ASZ-3))
ac0 = ac0 + (*ar2+ * coef(*cdp+)),
ac1 = ac1 + (*ar3+ * coef(*cdp+));
ac0 = ac0 + (*(ar2+t0) * coef(*cdp+)),
ac1 = ac1 + (*(ar3+t0) * coef(*cdp+));
*ar4+ = HI(rnd(ac0 << #1));
*ar4+ = HI(rnd(ac1 << #1));
}
xar2 = mar(*ar1(#(CLID_tSc.asCasHiI))); psFromI
xar3 = mar(*ar1(#(CLID_tSc.asCasHiQ))); psFromI
brc0 = #(4-1);
localrepeat {
ac0 = *ar2+ * coef(*cdp+),
ac1 = *ar3+ * coef(*cdp+);
|| repeat (#(CLID_CAS_FD_ASZ-3))
ac0 = ac0 + (*ar2+ * coef(*cdp+)),
ac1 = ac1 + (*ar3+ * coef(*cdp+));
ac0 = ac0 + (*(ar2+t0) * coef(*cdp+)),
ac1 = ac1 + (*(ar3+t0) * coef(*cdp+));
*ar4+ = HI(rnd(ac0 << #1));
*ar4+ = HI(rnd(ac1 << #1));
}
return;
*-------------------------------------------------------------------------*/
.global _clid_cas_freqdet
_clid_cas_freqdet
*-------------------------------------------------------------------------*/
;CLID_tDb *pDb = xar0
;CLID_tSc *pSc = xar1
;
xar2 = mar(*ar1(#(CLID_tSc.Cas)));
ac0 = *ar2(#(CLID_tCas.sLoIC1)) << #16;
ac0 = ac0 + (*ar2(#(CLID_tCas.sLoQS1)) << #16);
ac1 = *ar2(#(CLID_tCas.sLoIS1)) << #16;
ac1 = ac1 - (*ar2(#(CLID_tCas.sLoQC1)) << #16);
ac2 = ac0 * ac0;
ac2 = ac2 + (ac1 * ac1);
en2log ac2, t0;
ac0 = *ar2(#(CLID_tCas.sLoIC2)) << #16;
ac0 = ac0 + (*ar2(#(CLID_tCas.sLoQS2)) << #16);
ac1 = *ar2(#(CLID_tCas.sLoIS2)) << #16;
ac1 = ac1 - (*ar2(#(CLID_tCas.sLoQC2)) << #16);
ac3 = ac0 * ac0;
ac3 = ac3 + (ac1 * ac1);
en2log ac3, t0;
ac0 = ac2;
ac0 = ac0 - ac3;
ac0 = ac0 << #16;
ac0 = ac0 * #8026;
*ar2(#(CLID_tCas.sLoFreq)) = HI(ac0 << #1);
ac1 = ac2;
ac1 = ac1 + ac3;
ac1 = ac1 << #-1;
ac1 = ac1 + #_CORR;
*ar2(#(CLID_tCas.sLoEn)) = ac1;
ac0 = *ar2(#(CLID_tCas.sHiIC1)) << #16;
ac0 = ac0 + (*ar2(#(CLID_tCas.sHiQS1)) << #16);
ac1 = *ar2(#(CLID_tCas.sHiIS1)) << #16;
ac1 = ac1 - (*ar2(#(CLID_tCas.sHiQC1)) << #16);
ac2 = ac0 * ac0;
ac2 = ac2 + (ac1 * ac1);
en2log ac2, t0;
ac0 = *ar2(#(CLID_tCas.sHiIC2)) << #16;
ac0 = ac0 + (*ar2(#(CLID_tCas.sHiQS2)) << #16);
ac1 = *ar2(#(CLID_tCas.sHiIS2)) << #16;
ac1 = ac1 - (*ar2(#(CLID_tCas.sHiQC2)) << #16);
ac3 = ac0 * ac0;
ac3 = ac3 + (ac1 * ac1);
en2log ac3, t0;
ac0 = ac2;
ac0 = ac0 - ac3;
ac0 = ac0 << #16;
ac0 = ac0 * #8026;
*ar2(#(CLID_tCas.sHiFreq)) = HI(ac0 << #1);
ac1 = ac2;
ac1 = ac1 + ac3;
ac1 = ac1 << #-1;
ac1 = ac1 + #_CORR
*ar2(#(CLID_tCas.sHiEn)) = ac1;
return;
*-------------------------------------------------------------------------*/
.global _clid_cas_test
_clid_cas_test
*-------------------------------------------------------------------------*/
;CLID_tDb *pDb = xar0
;CLID_tSc *pSc = xar1
;
xar2 = mar(*ar0(#(CLID_tDb.Cfg)));
ac3 = #0; sTest
ac0 = *ar1(#(CLID_tSc.Cas.sLoEn));
ac1 = ac0 - *ar2(#(ICLID_tCfg.sMinEn));
if (ac1 < #0) execute (D_unit)
ac3 = ac3 | #CLID_CAS_LO_MIN_EN_MASK;
ac1 = ac0 - *ar2(#(ICLID_tCfg.sMaxEn));
if (ac1 > #0) execute (D_unit)
ac3 = ac3 | #CLID_CAS_LO_MAX_EN_MASK;
ac0 = *ar1(#(CLID_tSc.Cas.sHiEn));
ac1 = ac0 - *ar2(#(ICLID_tCfg.sMinEn));
if (ac1 < #0) execute (D_unit)
ac3 = ac3 | #CLID_CAS_HI_MIN_EN_MASK;
ac1 = ac0 - *ar2(#(ICLID_tCfg.sMaxEn));
if (ac1 > #0) execute (D_unit)
ac3 = ac3 | #CLID_CAS_HI_MAX_EN_MASK;
ac0 = ac0 - *ar1(#(CLID_tSc.Cas.sLoEn));
ac0 = |ac0|;
ac0 = ac0 - *ar2(#(ICLID_tCfg.sMaxTwist));
if (ac0 > #0) execute (D_unit)
ac3 = ac3 | #CLID_CAS_TWIST_MASK;
ac0 = *ar1(#(CLID_tSc.Cas.sLoFreq));
ac0 = |ac0|;
ac0 = ac0 - *ar2(#(ICLID_tCfg.sMaxFreqDev));
if (ac0 > #0) execute (D_unit)
ac3 = ac3 | #CLID_CAS_LO_FREQ_DEV_MASK;
ac0 = *ar1(#(CLID_tSc.Cas.sHiFreq));
ac0 = |ac0|;
ac0 = ac0 - *ar2(#(ICLID_tCfg.sMaxFreqDev));
if (ac0 > #0) execute (D_unit)
ac3 = ac3 | #CLID_CAS_HI_FREQ_DEV_MASK;
if (ac3 == #0) execute (D_unit)
*ar0(#(CLID_tDb.uCasReg)) = *ar0(#(CLID_tDb.uCasReg)) | #1;
*ar1(#(CLID_tSc.Cas.sTest)) = ac3;
return;
*-------------------------------------------------------------------------*/
.global _clid_cas_move_data_out
_clid_cas_move_data_out
*-------------------------------------------------------------------------*/
;CLID_tDb *pDb = xar0
;CLID_tSc *pSc = xar1
;
xar2 = mar(*ar0(#(CLID_tCasDb.asLoI)));
xar3 = mar(*ar1(#(CLID_tSc.asCasLoI+CLID_CAS_IDX)));
repeat (#(CLID_CAS_FD_SSZ-1))
*ar2+ = *ar3+;
xar2 = mar(*ar0(#(CLID_tCasDb.asLoQ)));
xar3 = mar(*ar1(#(CLID_tSc.asCasLoQ+CLID_CAS_IDX)));
repeat (#(CLID_CAS_FD_SSZ-1))
*ar2+ = *ar3+;
xar2 = mar(*ar0(#(CLID_tCasDb.asHiI)));
xar3 = mar(*ar1(#(CLID_tSc.asCasHiI+CLID_CAS_IDX)));
repeat (#(CLID_CAS_FD_SSZ-1))
*ar2+ = *ar3+;
xar2 = mar(*ar0(#(CLID_tCasDb.asHiQ)));
xar3 = mar(*ar1(#(CLID_tSc.asCasHiQ+CLID_CAS_IDX)));
repeat (#(CLID_CAS_FD_SSZ-1))
*ar2+ = *ar3+;
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -