📄 ster_window16.s
字号:
;************************************************************************
; (c)1996 Copyright LuxSonor, Inc. All rights reserved
;
; Revision 1.0
;
;
; Module: Windowing test code
;
; Initial version: Chialun Lu 1/24/97
; Modified: Cecile Foret 2/11/97
; Jinshi Huang 12/1/98 for LS388/LS500
; Calling : none
; Called by: fir16.S
; Return: none
; Param in: r5= start point for matched sequence
; r6= start point for goal sequence
; r7= start point for output sequence
; Temp reg:
; AGR reg:
; Localarea buffer:
; Register for return adress=r11
;************************************************************************
.nolist
#include "regdef2.h"
#include "memory2.h"
.list
.data
.global SUB_ster_windowing
SUB_ster_windowing:
;********* set up the pointers ******************************************
movi AGRAdr0,window0 ; ptr on window, decrement
movi AGRSiz0, 0xffff ; linear buffer
movi AGRInc0, 0xfffe ; Decrement
nop ; work around for interrupt bug
nop ; work around for interrupt bug
movi r0, window1 ; ptr on window, increment
mov AGRAdr1, r7 ; ptr on output sequence
movi AGRSiz1, 0xffff ; linear buffer
movi AGRInc1, 2*2 ; increment: skip one channel on two
#ifdef EFFECT
mov AGRAdr5, r5 ; a5 = pos1+length+deltac+0x1000
movi AGRInc5, 1*2 ; increment of one sample
movi AGRSiz5, 0xffff ; linear buffer
mov AGRAdr4, r6 ; a4 = pos1+N+deltap+0x1000
movi AGRSiz4, 0xffff ; linear buffer
movi AGRInc4, 1*2 ; increment of one sample
#else //EFFECT
mov AGRAdr3, r5 ; a3 = pos1+length+deltac+0x1000
movi AGRInc3, 1*2 ; increment of one sample
movi AGRSiz3, 0xffff ; linear buffer
mov AGRAdr2, r6 ; a2 = pos1+N+deltap+0x1000
movi AGRSiz2, 0xffff ; linear buffer
movi AGRInc2, 1*2 ; increment of one sample
#endif //EFFECT
;**************************************
;***** desable interrupt mask *********
movi TrapReg, 0x0
nop
nop
;**************************************
;**************************************
;********* do the windowing ********************************************
loop 0,window_1 ; loop 256 times !!
mult1:
#ifdef EFFECT
mulhf r2,i4,a0(-2)
movhf r4, l0
maddhf r2,r4,a5(2)
nop
#else
mulhf r2,i2,a0(-2)
movhf r4, l0
maddhf r2,r4,a3(2)
#endif //EFFECT
rndhf i1, r2
addi r0, 2 ; increments ptr on output sequence
window_1:
;**************************************
;***** enable interrupt mask **********
movi TrapReg, 0x24
;**************************************
;**************************************
j r11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -