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

📄 record3.s

📁 关于DVD的MPEG2用的DSP代码,在DSP的实现MPEG的压缩,解压算法.
💻 S
📖 第 1 页 / 共 5 页
字号:
;*****************************************************************************
; (c)2000 Copyright LuxSonor,  Inc. All rights reserved
;; Revision 1.0;;	;	Module:	RECORDING
;;	Initial version: XUE XIANG WAN 9/27/2000
;;	Calling	:     	none;	Called by:	    TEST and MPG 
;*****************************************************************************
;	Return:		r11:                       
;	Param in:       No :    
;	Temp reg:	                                       
;	AGR  reg:	AGR0: pointer for search buffer        
;			AGR1:
;                       AGR2                                    
;	Local buffer:                           
;   			
;                       use MPEG PCM buffer all 2k bytes (used) now in 1400
;;****************************************************************************
;*****************************************************************************

#if ENABLE_REREAD


#define CLASSIC_METHOD        0
#define LINEAR_BUFFER	      0

;*****************************************************************************
;  Next for headfile
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        .nolist                
#include "regdef.h"
#include "regdef2.h"
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#include "stereo_user.h"
#include "user2.h"
#include "memory.h"
#include "memory2.h"
#include "app_mem.h"
	.list
//----------------------------------------------------------------
//----------------------------------------------------------------

//#define         F11025                                // sample frequence for 11.025

                .extern  r0_temp
                .extern  r1_temp
                .extern  r2_temp
                .extern  r3_temp
                .extern  r4_temp
                .extern  r5_temp
                .extern  r6_temp
                .extern  r7_temp
                .extern  r8_temp
                .extern  r9_temp
                .extern  r10_temp
                .extern  BlockSize_temp
                .extern  BlockSkip_temp
                .extern  DMASize_temp 
                 
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
                .extern  record_on_off_flag
                .extern  play_on_off_flag
                .extern  record_fifo_start_address
                .extern  record_fifo_end_address
                .extern  record_fifo_current_address
                .extern  play_fifo_start_address
                .extern  play_fifo_end_address
                .extern  play_fifo_current_address
                .extern  recording_flag
                .extern  playing_flag
                .extern  output_data_buffer
                .extern  frame_count
                                 
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------

                .extern  mic_data_buffer 
                .extern  play_debug_pcm                                  
                .extern  record_debug_pcm

//-----------------------------------------------------------------------
//-----------------------------------------------------------------------

                .extern  power2
                .extern  _dqintab
                .extern  _witab
                .extern  _fitab
                .extern  qtab_723_24
                .extern  se
                .extern  y0
                .extern  sl
                .extern  spl
                .extern  szl
                .extern  rlt

                .extern  al
                .extern  plt
                .extern  dlt
                .extern  bl
                .extern  sg
                .extern  out_buffer
                .extern  in_buffer
                .extern  out_bits
                .extern  in_bits  

//--------------------------------------------------------------------
//--------------------------------------------------------------------

                .extern  mic_frame
                .extern  pcm_fifo_frame
                .extern  reset_fifo_flag1  
                .extern  reset_fifo_flag2
                .extern  pcm_in_debug
                .extern  frame_data_buffer
                .extern  microphone_status   

                .extern  system_time
                .extern  system_time_buffer
                                
//--------------------------------------------------------------------
//--------------------------------------------------------------------

		.global	in_reread_status
		.global	in_normal_status
                                               
//--------------------------------------------------------------------
//--------------------------------------------------------------------

//---------------------------------------------------------------------
//---------------------------------------------------------------------

#ifdef          F11025
                                                                        // begin seg
#define         i_buffer                  0x1340+0x40
#define         recon_var1                0x1344+0x40                   // for reconstruc
#define         recon_var2                0x1348+0x40                   // sub programm param
#define         recon_var3                0x134c+0x40                   // add 40 for 11.025k            

#define         dq_buffer                 0x1350+0x40
#define         r4_buffer_local           0x1354+0x40
#define         r1_buffer_local           0x1358+0x40

//--------------------------------------------------------------------------

#define         wdl                       0x135c+0x40
#define         wd2                       0x1360+0x40
#define         wd3                       0x1364+0x40
#define         wd4                       0x1368+0x40
#define         wd5                       0x136c+0x40
  
#define         p_sgp                     0x1370+0x40
#define         p_pltp                    0x1374+0x40
#define         p_alp                     0x1378+0x40
#define         p_dltp                    0x137c+0x40
#define         p_blp                     0x1380+0x40
#define         p_rltp                    0x1384+0x40
#define         p_pltp_1                  0x1388+0x40
#define         p_dltp_1                  0x138c+0x40
#define         p_rltp_1                  0x1390+0x40
#define         compressed_data_address   0x1700-0x40-0x40   

#else 

#define         i_buffer                  0x1340
#define         recon_var1                0x1344                   // for reconstruc
#define         recon_var2                0x1348                   // sub programm param
#define         recon_var3                0x134c                   // add 40 for 11.025k            

#define         dq_buffer                 0x1350
#define         r4_buffer_local           0x1354
#define         r1_buffer_local           0x1358

//--------------------------------------------------------------------------

#define         wdl                       0x135c
#define         wd2                       0x1360
#define         wd3                       0x1364
#define         wd4                       0x1368
#define         wd5                       0x136c
  
#define         p_sgp                     0x1370
#define         p_pltp                    0x1374
#define         p_alp                     0x1378
#define         p_dltp                    0x137c
#define         p_blp                     0x1380
#define         p_rltp                    0x1384
#define         p_pltp_1                  0x1388
#define         p_dltp_1                  0x138c
#define         p_rltp_1                  0x1390
#define         compressed_data_address   0x1700-0x40   

#endif

//---------------------------------------------------------------------------

#define         input_data_address        0x1300          // mic data buffer 
#define         output_data_address       0x1300

//-----------------------------------------------------------------------------------
//**************************************************************************
//-----------------------------------------------------------------------------------

#if LINEAR_BUFFER

#if SVCD
// size 0x1371FE = 1,274,366
// 0x180000-0x1c0000 test OK
// 0x1c0000-0x200000 test OK
//#define			buffer_first_page_head		0x160000 //0x28ae00

//#define			buffer_first_page_head		0x180000 //0x28ae00  // old
//#define			buffer_third_page_tail		(0x200000-0x8000)    //  old 

#define			buffer_first_page_head		0x178000                    //0x28ae00  // old
#define			buffer_third_page_tail		0x1fc000                    //  old 

#else //SVCD
// size 0x1371FE = 1,274,366
#define			buffer_first_page_head		0x240000 //0x28ae00
#define			buffer_third_page_tail		0x250000
//#define			buffer_first_page_head		0x290000 //0x28ae00
//#define			buffer_third_page_tail		0x3c1ffe
#endif

#else //LINEAR_BUFFER

#if 0     //    for DVD 3 pages buffer ------------------------------------------------
#define         buffer_first_page_head    0x23f4c6        // 201528 bytes 
#define         buffer_first_page_tail    0x2707fe        // use the video frame buffer 
#define         buffer_second_page_head   0x2e80c6        // 201528 bytes
#define         buffer_second_page_tail   0x3193fe        // use the video frame buffer
#define         buffer_third_page_head    0x390cc6        // 201528 bytes
#define         buffer_third_page_tail    0x3c1ffe        // use the video frame buffer
#endif

//#define         buffer_first_page_head    0x000fb600
//#define         buffer_first_page_tail    0x0011d200
//#define         buffer_second_page_head   0x00160a00
//#define         buffer_second_page_tail   0x00182600
//#define         buffer_third_page_head    0x001c5e00
//#define         buffer_third_page_tail    0x001e7a00
#if SVCD
#define FRAME_BASE_OFFSET	0x2c180
#define	buffer_first_page_head	(0x101d80-FRAME_BASE_OFFSET)
#define	buffer_first_page_tail	(0x123980-FRAME_BASE_OFFSET)
#define	buffer_second_page_head	(0x167180-FRAME_BASE_OFFSET)
#define	buffer_second_page_tail	(0x188d80-FRAME_BASE_OFFSET)
#define	buffer_third_page_head	(0x1c3f80-FRAME_BASE_OFFSET)
#define	buffer_third_page_tail	(0x1d4d80-FRAME_BASE_OFFSET)
#else
/**************************************************
ati_dvd/video.bas --white     04-26-2001 11:29:21
PAGE-SIZE:32A00             FRAME-COUNT:4380
TOTAL-SIZE:0x97E00= 622080
TOTAL-FRAME-COUNT:0xCA80= 51840            3240
record time per frame:  5.804989 ms
total record time:  300.9306
**************************************************/
#define       buffer_first_page_head      0x238400
#define       buffer_first_page_tail      0x26AE00
#define       buffer_second_page_head     0x2E1000
#define       buffer_second_page_tail     0x313A00
#define       buffer_third_page_head      0x389C00
#define       buffer_third_page_tail      0x3BC600
#endif //SVCD

#endif	// LINEAR_BUFFER
//-----------------------------------------------------------------------------------
//**************************************************************************
//-----------------------------------------------------------------------------------

                .global  SUB_record
		.text
		.align   4 

//-----------------------------------------------------------------------------------
//--------------------------- Next for record programm --------------------------------
//-----------------------------------------------------------------------------------

SUB_record:
                                         
//-----------------------------------------------------------------------------------                
//-----------------------------------------------------------------------------------
                
                mov    r24,DcacheBase                                 

//-------------------------------------------------------------------------

                movi   DcacheBase, APP_DATA_SEG                  
                dsw    r0,r0_temp
                dsw    r1,r1_temp
                                
                dsw    r2,r2_temp
                dsw    r3,r3_temp
                dsw    r4,r4_temp  
                dsw    r5,r5_temp
                dsw    r6,r6_temp
                dsw    r7,r7_temp
                dsw    r8,r8_temp
                dsw    r9,r9_temp
                dsw    r10,r10_temp
        
                mov    r0,BlockSize
                dsw    r0,BlockSize_temp
                mov    r0,BlockSkip
                dsw    r0,BlockSkip_temp
                mov    r0,DMASize
                dsw    r0,DMASize_temp                  ; protect all programm register 
                
SUB_record_next:
                             
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------

                jsr    r9,real_record                   // to prohibit programm re_in in re_read status     

//-----------------------------------------------------------------------------

SUB_record_end:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -