⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pscon.s

📁 samsung 9908DVD源代码,
💻 S
📖 第 1 页 / 共 2 页
字号:
	
	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 + -