📄 confg.asm
字号:
;=================================================
;AR0,ACC,ACCB
;E0[60]
;=================confg(confg_flag==-1/0/1)========================
;confg(s,l,d1,d2,d3,d4,isw1,isw2,isw3,isw4)
;-1: confg(s, l, d1a, d2a, d3a, d4a, 0, 1, 1, 1);
;0: confg(s, l, d1a, d2a, d3a, d4a, 1, 1, 1, 1);
;1: confg(s, l, d1b, d2b, d3b, d4b, 1, 1, 1, 1);
;=================================================
.BSS CONFG_FLAG,1
.BSS CONFG_D1,1
.BSS CONFG_D2,1
.BSS CONFG_D3,1
.BSS CONFG_D4,1
;=================================================
CONFG
LACC CONFG_FLAG
BCND CONFG_B,GT
LACC #D1A
SACL CONFG_D1
LACC #D2A
SACL CONFG_D2
LACC #D3A
SACL CONFG_D3
LACC #D4A
SACL CONFG_D4
B CONFG_DO
CONFG_B
LACC #D1B
SACL CONFG_D1
LACC #D2B
SACL CONFG_D2
LACC #D3B
SACL CONFG_D3
LACC #D4B
SACL CONFG_D4
CONFG_DO
;=================================================
;setr(MAXNO+1, 0.0, fctemp);
;=================================================
CLR0 TEMPLPC,10
;=================================================
;if (isw1 != 0) pitchvq(e0, l, d1, idb, bb, "long");
;=================================================
LACC CONFG_FLAG
BCND CONFG_OVER_PIT,LT
LACC #E0
SACL PIT_RAR
CALLD PITCHVQ
LACC CONFG_D1
SACL PIT_BUF
;=================================================
;if (isw2 != 0) pole_con(fc, no, d2, e0, l);// wht
;=================================================
CONFG_OVER_PIT
LACC #LPC
SACL POLE_A
LACC #E0
SACL POLE_XY
CALLD POLE_CON
LACC CONFG_D2
SACL POLE_Z
;=================================================
;movefr(60,e0,syn_s);//wht
;=================================================
;MOVEFR 60,E0,SYN_S
;=================================================
;for (i = 0; i < l; i++)
; { e0[i] = s[i] - e0[i];
; if(fabs(e0[i])>0x7fff) e0[i]= (e0[i]<0)? -0x8000l:0x7fff;
; }
;=================================================
LACC SSUB_ADDR
SAMM AR0
MAR *,AR0
LAR AR1,#E0
LACC #59
SAMM BRCR
RPTB CONFG_SUB_E0-1
LACC *+,0,AR1
SUB *
sacb
ABS
SUB #7FFFH
LACB
BCND CONFG_SUB_TEST_E0,NC ;JUMP IF |S[I]-E[I]|<0X7FFF
;-------
XC 2,GT
LACC #7FFFH
XC 2,LT
LACC #1,15
;-----
CONFG_SUB_TEST_E0
SACL *+,0,AR0
NOP
CONFG_SUB_E0
;=================================================
;if (isw3 != 0) zero_con(fc,no,d3,e0,l);
;=================================================
LACC #LPC
SACL ZERO_A
LACC #E0
SACL ZERO_XY
CALLD ZERO_CON
LACC CONFG_D3
SACL ZERO_Z
;=================================================
;if (isw4 != 0)
; { bwexp_con(gamma2, fc, fctemp, no);
; pole_con(fctemp, no, d4, e0, l); }
;=================================================
;LACC #BWPOW_80
;SACL BW_POW_ADDR
CALL BWEXP_CON
;-----------
LACC #TEMPLPC
SACL POLE_A
LACC #E0
SACL POLE_XY
CALLD POLE_CON
LACC CONFG_D4
SACL POLE_Z
RET
;=================================================
;setr(MAXNO+1, 0.0, fctemp);
;if (isw1 != 0) pitchvq(e0, l, d1, idb, bb, "long");
;if (isw2 != 0) pole_con(fc, no, d2, e0, l);// wht
;movefr(60,e0,syn_s);//wht
;for (i = 0; i < l; i++) e0[i] = s[i] - e0[i];
;if (isw3 != 0) zero_con(fc,no,d3,e0,l);
;if (isw4 != 0)
; { bwexp_con(gamma2, fc, fctemp, no);
; pole_con(fctemp, no, d4, e0, l); }
;=================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -