📄 pscon.s
字号:
brad %f33
eadd C, D
;-------
%22
eld B, RPD0.TriFrame
%2
ecp C, B
nop
bra EC2, %f33 ;GE
eld A, @RP0+S1 ;[inc 1]
eadd C, #1
bnzd R6, %b2
eld @RP3+D1, A ;[inc 1]
;-------
%33
eld A, RPD0.OneFrame
ecld R6, A
sub R6, #1
eld RP0, RPD1.b00_0
eld RP2, RP0
erpn RP2, A
%3
eld B, @RP2+S1 ;[inc 1]
bnzd R6, %b3
eld @RP0+D1, B ;[inc 1]
;-------
ecld R6, A
sub R6, #1
eld rp2, #0x7ffe ;ldy
%4
/*
ldw R0, @[A8+0]
ecld B, R0
efs8 B
;esra B ;1-BIT SHR
add R8, #2
cmpu GE, R8, R2
brf %f1
ld R8, R3
%1
bnzd R6, %b4
eld @RP0+D1, B ;[inc 1]
*/
//ldy
eld b, @rp2+s0
;esra B ;1-BIT SHR
.if OUTPUT_MODE != OUT_2CH
eld si, @rp2+s0 ; dummy read
eld si, @rp2+s0
;eld si, @rp2+s0
.if OUTPUT_MODE == OUT_8CH
eld si, @rp2+s0 ; dummy read
.endif
.endif
esra b
eld si, b
eld b, @rp2+s0
.if OUTPUT_MODE != OUT_2CH
eld si, @rp2+s0 ; dummy read
eld si, @rp2+s0
;eld si, @rp2+s0
.if OUTPUT_MODE == OUT_8CH
eld si, @rp2+s0 ; dummy read
.endif
.endif
esra b
eadd b, si
bnzd R6, %b4
eld @RP0+D1, B
; ldw @[A10+PSconIbufferRPointer+2], R8
psSkipUpdBuf
;--------------------------------------------------------------------------
eld B, RPD0.TriFrame
ecld R6, A
sub R6, #1
eld RP0, RPD1.b00_0
eld RP3, RPD1.b00_3
erpn RP0, A
erpn RP3, C
%5
ecp C, B
nop
bra EC2, %f10 ;GE
eld A, @RP0+S1 ;[inc 1]
eadd C, #1
bnzd R6, %b5
eld @RP3+D1, A ;[inc 1]
;-------
eld A, B
esub A, C
ecld R6, A
cmp GT, R6, #0
brf %f10
sub R6, #1
eld A, #0
%6
bnzd R6, %b6
eld @RP3+D1, A ;[inc 1]
%10
bra CalcEnergy
;---------------------------------------
StereoSMode
eld RP2, RPD1.b00_2
eld RP1, RP2
erpn RP1, B
%1
eld A, @RP0+S1 ;[inc 1]
eld @RP3+D1, A ;[inc 1]
eld A, @RP1+S1 ;[inc 1]
bnzd R6, %b1
eld @RP2+D1, A ;[inc 1]
;-------
eld B, RPD0.OverlapLen
eld RP0, RPD1.b00_0
erpn RP0, B
eld RP1, RPD1.b00_1
erpn RP1, B
esub D, B
ecld R6, D
sub R6, #1
;-------
eld A, RPD1.Mode
ecp A, #FAST
nop
bra EC0, %f22 ;EQ
;-------
%2
eld A, @RP0+S1 ;[inc 1]
eld @RP3+D1, A ;[inc 1]
eld A, @RP1+S1 ;[inc 1]
bnzd R6, %b2
eld @RP2+D1, A ;[inc 1]
brad %f33
eadd C, D
;-------
%22
eld B, RPD0.TriFrame
%2
ecp C, B
nop
bra EC2, %f33 ;GE
eld A, @RP0+S1 ;[inc 1]
eld @RP3+D1, A ;[inc 1]
eadd C, #1
eld A, @RP1+S1 ;[inc 1]
bnzd R6, %b2
eld @RP2+D1, A ;[inc 1]
;-------
%33
eld A, RPD0.OneFrame
ecld R6, A
sub R6, #1
eld RP0, RPD1.b00_0
eld RP3, RP0
erpn RP3, A
eld RP1, RPD1.b00_1
eld RP2, RP1
erpn RP2, A
%3
eld B, @RP3+S1 ;[inc 1]
eld @RP0+D1, B ;[inc 1]
eld B, @RP2+S1 ;[inc 1]
bnzd R6, %b3
eld @RP1+D1, B ;[inc 1]
;-------
ecld R6, A
sub R6, #1
eld rp2, #0x7ffe ;ldy
%4
/*
ldw R0, @[A8+0]
ecld B, R0
efs8 B
;esra B ;1-BIT SHR
eld @RP0+D1, B ;[inc 1]
ldw R0, @[A8+2]
ecld B, R0
efs8 B
;esra B ;1-BIT SHR
add R8, #4
cmpu GE, R8, R2
brf %f1
ld R8, R3
%1
bnzd R6, %b4
eld @RP1+D1, B ;[inc 1]
*/
//ldy
eld b, @rp2+s0
;esra B ;1-BIT SHR
eld @RP0+D1, B ;[inc 1]
.if OUTPUT_MODE != OUT_2CH
eld b, @rp2+s0 ; dummy read
eld b, @rp2+s0
;eld b, @rp2+s0
.if OUTPUT_MODE == OUT_8CH
eld b, @rp2+s0 ; dummy read
.endif
.endif
eld b, @rp2+s0
;esra B ;1-BIT SHR
eld @RP1+D1, B ;[inc 1]
.if OUTPUT_MODE != OUT_2CH
eld b, @rp2+s0 ; dummy read
eld b, @rp2+s0
;eld b, @rp2+s0
.if OUTPUT_MODE == OUT_8CH
eld b, @rp2+s0 ; dummy read
.endif
.endif
bnzd R6, %b4
nop
; ldw @[A10+PSconIbufferRPointer+2], R8
psSkipUpdBufS
;--------------------------------------------------------------------------
eld B, RPD0.TriFrame
ecld R6, A
sub R6, #1
eld RP0, RPD1.b00_0
eld RP3, RPD1.b00_3
erpn RP0, A
erpn RP3, C
eld RP1, RPD1.b00_1
eld RP2, RPD1.b00_2
erpn RP1, A
erpn RP2, C
%5
ecp C, B
nop
bra EC2, CalcEnergy ;GE
eld A, @RP0+S1 ;[inc 1]
eld @RP3+D1, A ;[inc 1]
eadd C, #1
eld A, @RP1+S1 ;[inc 1]
bnzd R6, %b5
eld @RP2+D1, A ;[inc 1]
;-------
eld A, B
esub A, C
ecld R6, A
cmp GT, R6, #0
brf CalcEnergy
sub R6, #1
eld A, #0
%6
eld @RP3+D1, A ;[inc 1]
bnzd R6, %b6
eld @RP2+D1, A ;[inc 1]
;---------------------------------------
CalcEnergy
eld D, RPD0.Engy1
eld RPD0.Engy0, D
eld C, RPD0.Engy2
eld RPD0.Engy1, C
;---------------------------------------
jsr Speed_Sub
;---------------------------------------
pop A14
ret
;==========================================================================
; void Speed_Sub(void)
;==========================================================================
Speed_Sub::
push A14
jsr Speed_Sub1
esec1 #FNEB
ld R0, #FALSE
eld A, RPD0.SynF1
eld B, RPD0.OneFrame
ecp A, B
nop
bra EC1, %f1 ;NE
eld A, RPD0.Kbfo
eld RPD0.Kpnt, A
ld R0, #TRUE
%1
;-------
eld B, RPD0.Kpnt
eld A, RPD1.Mode
ecp A, #FAST
nop
bra EC0, %f1 ;EQ
eld A, #50
eld RPD0.BndIdx, A
esub A, B
brad %f2
eld RPD0.OverlapLen, A
%1
;-------
eld A, #50
eadd A, B
eld RPD0.OverlapLen, A
eadd A, B
eld RPD0.BndIdx, A
%2
;-------
cmp EQ, R0, #TRUE
brt %f55
;-------
eld A, #MAX_16
ecr MA0
eld MA0L, A
esla8 A
eld Y1, A
eld B, RPD0.OverlapLen
eld P, B
er NQ
esla MA0
jsr DIV_24
eld D, MA0L
esla8 D
ecld R6, B
sub R6, #1
eld C, #0
eld RP0, RPD1.b00_0
eld RP3, RPD1.b00_3
eld RP1, RPD1.b00_1
eld RP2, RPD1.b00_2
eld A, RPD0.SynLen
eld B, RPD0.Kpnt
eadd A, B
erpn RP3, A
erpn RP2, A
esec1 #FLTB
ldb R0, @[A9+PSC_Chidx]
;-------
%30
eadd C, D
;-------
eld A, Y1 ;Y1=MAX_16<<8
esub A, C
eld X0, A
eld Y0, @RP3+S0 ;[no inc]
emul X0Y0, X1,@RP0+S1 ;24x16 [inc 1]
eld Y0, C
emld MA0, X1Y0 ;16x24
eadd MA0, P
;-------
eld A, MA0RN
ecp A, #MAX_16
nop
bra EC1, %f1 ;LT
eld A, #MAX_16
bra %f2
%1
ecp A, #MIN_16
nop
bra EC2, %f2 ;GE
eld A, #MIN_16
%2
eld @RP3+D1, A ;[inc 1]
;-------
cmp EQ, R0, #MONO
brt %f20
;-------
eld Y0, @RP2+S0 ;[no inc]
emul X0Y0, X1,@RP1+S1 ;24x16 [inc 1]
eld Y0, C
emld MA0, X1Y0 ;16x24
eadd MA0, P
;-------
eld A, MA0RN
ecp A, #MAX_16
nop
bra EC1, %f1 ;LT
eld A, #MAX_16
bra %f2
%1
ecp A, #MIN_16
nop
bra EC2, %f2 ;GE
eld A, #MIN_16
%2
eld @RP2+D1, A ;[inc 1]
;-------
%20
sub R6, #1
brt %b30
;-------
%55
eld A, RPD0.Kpnt
eld RPD0.Kbfo, A
pop A14
ret
;//==========================================================================//
;// [1] PITCH RELATION FUNCTIONs
;//==========================================================================//
.if OS_MODE!=S_ONLY
;==========================================================================
; void Pitch_Fnct(void)
;==========================================================================
Pitch_Fnct::
push A14
jsr Pitch_Buff
;=======================================[check Init]
ldw R0, @[A10+CodecStartFlag] ; 2B
cmp EQ, R0, #TRUE
brt Do_PitchFnct
jsr Pcon_Init
eld A, #FALSE
eld RPD1.PSboth, A
ld R0, #TRUE
ldw @[A10+CodecStartFlag], R0 ; 2B
bra End_PitchFnct
;=======================================[check Init]
Do_PitchFnct
ldb R0, @[A9+PSC_Pidx]
ecld A, R0
efz16 A
eld B, A
eadd A, #SemiToneTab
eld RP1, A
eld A, @RP1+S0
eld RPD1.Pvalue, A
eld C, RPD1.SpeedTab1
ldb R0, @[A9+PSC_Pidx] ;P_ONLY
;ldb R0, @[A9+Sidx] ;PS_BOTH
ecld B, R0
efz16 B
eadd B, C
eld RP1, B
eld B, @RP1+S0
eld RPD1.Svalue, B
eld A, #1
eld RPD0.Kbgn, A
jsr SpeedModule
eld D, #FALSE
ld R6, #0
eld A, RPD0.SynLen
ecld R1, A
eld A, RPD1.Pfrac
eld B, #REF_VALUE
eld C, RPD1.Pvalue
esec1 #FLTB
%10
eadd A, C
%5
ecp A, B
nop
bra EC1, %f1 ;LT
esub A, B
brad %b5
add R6, #1
%1
cmp GE, R6, R1
brf %b10
cmp GT, R6, R1
brf %f1
eld D, #TRUE
%1
eld RPD1.onesamp, D
jsr PitchModule
End_PitchFnct
pop A14
ret
;==========================================================================
; void Pitch_Buff(void)
;==========================================================================
Pitch_Buff::
eld A, #PtBuff0
eld RPD0, A
eld RPD1, #PtBuff1
eld RPD1.BufSel, A
eld B, #PdwBuf
eld RPD1.Bunja, B
eadd B, #2
eld RPD1.18, B
eadd B, #2
eld RPD0.2, B
eadd B, #2
eld RPD1.17, B
eadd B, #2
eld RPD0.1, B
ldb R0, @[A9+PSC_FrameNo]
;-------[ MP3 ]-------------------------
cmp EQ, R0, #FN_288
brt Pbuff_MP3
cmp EQ, R0, #FN_576
brt Pbuff_MP3
;-------[ MP1 / MP2 ]-------------------
cmp EQ, R0, #FN_384
brt Pbuff_MPG
cmp EQ, R0, #FN_768
brt Pbuff_MPG
;-------[ WMA ]-------------------------
cmp EQ, R0, #FN_256
brt Pbuff_WMA
cmp EQ, R0, #FN_512
brt Pbuff_WMA
;---------------------------------------
;-----------< DEFAULT : MP3 >--------------------------------------------------
Pbuff_MP3
eld A, #MP3PdBuff_L
eld RPD1.0, A
eld A, #MP3PsBuff_L
eld RPD1.3, A
eld A, #MP3PdBuff_R
eld RPD1.1, A
eld A, #MP3PsBuff_R
eld RPD1.2, A
ret
;------------------------------------------------------------------------------
Pbuff_MPG
eld A, #MPGPdBuff_L
eld RPD1.0, A
eld A, #MPGPsBuff_L
eld RPD1.3, A
eld A, #MPGPdBuff_R
eld RPD1.1, A
eld A, #MPGPsBuff_R
eld RPD1.2, A
ret
;------------------------------------------------------------------------------
Pbuff_WMA
eld A, #WMAPdBuff_L
eld RPD1.0, A
eld A, #WMAPsBuff_L
eld RPD1.3, A
eld A, #WMAPdBuff_R
eld RPD1.1, A
eld A, #WMAPsBuff_R
eld RPD1.2, A
ret
.endif ;OS!=S_ONLY
_set_mode:
ldw r3, @[a10+NumberOfSample]
cmp eq, r3, #384
brf %f1
ld r2, #FN_384
ldb @[a9+PSC_FrameNo], r2
ld r11, #1
bra %f50
%1:
cmp eq, r3, #576
brf %f1
ld r2, #FN_576
ldb @[a9+PSC_FrameNo], r2
ld r11, #1
bra %f50
%1:
cmp eq, r3, #576*2
brf %f10
ld r2, #FN_576
ldb @[a9+PSC_FrameNo], r2
ld r11, #2
%50:
ret
%10:
bra $
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -