📄 gaecepca.s54
字号:
*-------------------------------------------------------------------------*
* *
* THIS IS AN UNPUBLISHED WORK CONTAINING CONFIDENTIAL AND PROPRIETARY *
* INFORMATION. IF PUBLICATION OCCURS, THE FOLLOWING NOTICE APPLIES: *
* "COPYRIGHT 2003 MICHAEL TSIROULNIKOV, ALL RIGHTS RESERVED" *
* *
*-------------------------------------------------------------------------*/
.mmregs
.include "gaeci.h54"
.sect ".ftext3"
_IN_SHFT .set (3)
_EN_SHFT .set (1)
_NORM_SHFT .set (15)
_REG2 .set (1 << 8); load high!!!!
.ref _gaec_utl_en2log
;-------------------------------------------------------------------------
.global _gaec_epc_in
;-------------------------------------------------------------------------
_gaec_epc_in
;S16 *psSav = a(ar2),
;S32 *pslXcAcc = sp(1),
;S16 *psXc = sp(2),
;S16 *psIn = sp(3),
;S32 *plsReg = sp(4) - reused
;
stlm a, ar2
ssbx sxm
nop
mvmm ar2, ar3
mar *+ar3(#(GAEC_FR_SZ/2))
rpt #(GAEC_EPC_SSZ-1)
mvdd *ar3+, *ar2+
mvdk *sp(3), ar3
stm #GAEC_FR_SZ/2-1, brc
rptb Q11-1
ld *ar3+, 16, a
add *ar3+, 16, a
sth a, -_IN_SHFT, *ar2+
Q11
mar *ar2-
mvmm ar2, ar3
mvdk *sp(1), ar4
stm #GAEC_EPC_MAXD-1, brc
rptb Q12-1
rptz a, #GAEC_FR_SZ/2-1
mac *ar2-, *ar3-, a
dld *ar4, b
sub b, a
add a, -_EN_SHFT, b
dst b, *ar4+
mar *+ar2(#GAEC_FR_SZ/2)
mar *+ar3(#GAEC_FR_SZ/2-1)
Q12
mar *+ar4(#(-GAEC_EPC_MAXD*2))
dld *ar4, a
mvdk *sp(4), ar3
dadd *ar3, a
dst a, *ar4
exp a
nop
norm a
sth a, *sp(4)
ld #(1<<12), 16, a
rpt #(16-1)
subc *sp(4), a
stl a, *sp(3)
addm #-1, *(t)
mvdk *sp(2), ar3
stm #GAEC_EPC_MAXD-1, brc
rptb Q13-1
dld *ar4+, a
norm a
maca *sp(3)
sth a, (16-_NORM_SHFT), *ar3+
Q13
ret
;-------------------------------------------------------------------------
.global _gaec_epc_corr
;-------------------------------------------------------------------------
_gaec_epc_corr
; GAEC_tDb *pDb, = a
; GAEC_tScEpc *pSc = sp(1)
;
stlm a, ar2
ssbx sxm
nop
mvdk *sp(1), ar3
;
; snd
mvmm ar3, ar4
mar *+ar4(#GAEC_tScEpc.asEpcSnd + GAEC_EPC_MIND)
rptz a, #(GAEC_EPC_MAXD-GAEC_EPC_MIND-1)
squra *ar4+, a
add #_REG2, 16, a
call _gaec_utl_en2log
stl a, *ar3(#(GAEC_tScEpc.sEpcSnd))
;
; rcv
mvmm ar3, ar4
mar *+ar4(#GAEC_tScEpc.asEpcRcv + GAEC_EPC_MIND)
rptz a, #(GAEC_EPC_MAXD-GAEC_EPC_MIND-1)
squra *ar4+, a
add #_REG2, 16, a
call _gaec_utl_en2log
stl a, *ar3(#(GAEC_tScEpc.sEpcRcv))
;
;
mvmm ar3, ar4
mar *+ar4(#GAEC_tScEpc.asEpcSnd + GAEC_EPC_MIND)
mvmm ar3, ar5
mar *+ar5(#GAEC_tScEpc.asEpcRcv + GAEC_EPC_MIND)
rptz a, #(GAEC_EPC_MAXD-GAEC_EPC_MIND-1)
mac *ar4+, *ar5+, a
ld #0, b
max a
call _gaec_utl_en2log
stl a, *ar3(#(GAEC_tScEpc.sEpcXcr))
;
;
; ld *ar3(#(GAEC_tScEpc.sEpcXcr)), a
ld *ar3(#(GAEC_tScEpc.sEpcSnd)), b
add *ar3(#(GAEC_tScEpc.sEpcRcv)), b
sub b, -1, a
ld #-30*GAEC_1DB, b
max a
stl a, *ar2(#(GAEC_tDb.sEpcXcr))
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -