📄 tgasm.s54
字号:
*------------------------------------------------------------------------*
* *
* THIS IS AN UNPUBLISHED WORK CONTAINING CONFIDENTIAL AND PROPRIETARY *
* INFORMATION. IF PUBLICATION OCCURS, THE FOLLOWING NOTICE APPLIES: *
* "COPYRIGHT 2001 MIKET DSP SOLUTIONS, ALL RIGHTS RESERVED" *
* *
*-------------------------------------------------------------------------*
.mmregs
; keep as in tg.h
TG_FR_SZ .equ (40)
.sect ".tg_data"
.include "tgsin.h54"
.text
.if 0
*/
#include "tg.h"
#include "tgsin.cc"
/*--------------------- local defs ----------------------------------------*/
/*--------------------- public vars ---------------------------------------*/
/*--------------------- local vars ----------------------------------------*/
/*--------------------- local functions -----------------------------------*/
/*--------------------- public functions ---------------------------------*/
/*-------------------------------------------------------------------------*/
void tg_add_sine2C
/*-------------------------------------------------------------------------*/
(
TG_tTone *pTone,
S16 *pTo
)
{
S32 ac0;
S32 ac1;
S32 ac2;
S32 ac3 = pTone->sPhase;
S16 t0, t1;
int k;
for (k = 0; k < TG_FR_SZ/2; k++)
{
ac3 = ac3 + pTone->sFreq;
ac2 = ac3 >> 8;
t0 = (S16)(ac2 & 0xff);
ac3 = ac3 + pTone->sFreq;
ac2 = ac3 >> 8;
t1 = (S16)(ac2 & 0xff);
ac0 = ((S32)*pTo++)<<15;
ac1 = ((S32)*pTo--)<<15;
ac0 = ac0 + TG_asSin[t0] * (S32) (pTone->sAmp);
ac1 = ac1 + TG_asSin[t1] * (S32) (pTone->sAmp);
*pTo++ = (S16)(ac0>>15);
*pTo++ = (S16)(ac1>>15);
}
pTone->sPhase = (S16)ac3;
}
/*
.endif
.global _tg_add_sine2
_tg_add_sine2
;
; input:
; a = pwave
; sp(1) = pTo
;
; assumes
; TG_tTone is
; sPhase (offset 0)
; sAmp (offset 1)
; sFreq (offset 2)
;
stlm a, ar2
ssbx frct
ssbx sxm
mvdk *sp(1), ar3
mvdk *ar2+, ar4; ; load initial phase
ld *ar2+, t; ; load amplitude
mvdk *ar2-, ar0 ; load frequency
stm #(TG_FR_SZ-1), brc;
rptb L055-1
mar *ar4+0
nop
nop
ldm ar4, a
ld a, -8, a
add #_TG_asSin, a
stlm a, ar5
nop
nop
mpy *ar5, a
stl b, *ar3+
L055
mar *ar2-
mvkd ar4, *ar2
rsbx frct
ret
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -