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

📄 system_util.c

📁 Sunplus 8202S source code.
💻 C
字号:

void
sysmain_boot_message(void)
{
    printf("Sunplus DVD driver " __DATE__ "\n");
    printf("FSJPEGDATA:%x DataSaved:%x\n",sizeof(FSJPEGDATA),sizeof(DataSaved));
}


void
sysmain_load_setup(void)
{
    //
    // Initialize user setup with default value
    set_default_value();

    //
    // Load user_setup from i2c eeprom
#ifdef FORCE_REWRITE_WHEN_UPGRADE//terry,2004/1/8 05:32PM
    load_user_setup(0);  
#else
    load_user_setup();  
#endif    

#ifdef FORCE_RETURN_TO_DEFAULT_TV_FORMAT
    //
    // restore default TV
    setup_SetTV_default_format();
#endif//FORCE_RETURN_TO_DEFAULT_TV_FORMAT
}


void
sysmain_setup_hardware(void)
{
    //
    // setup TV-encoder output current
#ifdef	IC_8202E
	sp8200tv_setup_dac_current(TV_DAC_A_HALF|TV_DAC_B_QUART|TV_DAC_C_QUART|TV_DAC_D_QUART|TV_DAC_E_QUART|TV_DAC_F_QUART);		// dac f/e/d/c/b quarter-swing
#else
#ifdef TV_USE_HALF_SWING
    tv_dachalf(TV_DAC_F|TV_DAC_E|TV_DAC_D|TV_DAC_C|TV_DAC_B);   // dac f/e/d/c/b half-swing
#else
    tv_dachalf(0); 
#endif
#endif	// IC_8202E

    //
    // setup TV-encoder DAC output
#ifndef TVOUT6_4DAC_ON
#ifdef TV_USE_4_DAC
#ifdef SPHE1000
	tv_dacoff(TV_DAC_F|TV_DAC_E);                               // dac d/c/b/a on ,e,f off
#else
    #ifdef GBM_PORTABLE_DVD
        tv_dacoff(TV_DAC_F|TV_DAC_E);                               // dac d/c/b/a on ,e,f off
    #else    
//gerry add for gbm,when we set to S-VIDEO,tv dac3 will be off,2004-5-13 15:44
#if defined(S_VIDEO_OUT)&&defined(S_VIDEO_SET_TV_DAC3_OFF)
extern UINT8 setup_GetVideoMode(void);
        if(setup_GetVideoMode()==2)           //default S_VIDEO out
        tv_dacoff(TV_DAC_C|TV_DAC_B|TV_DAC_D);                               // dac f/e/d//a on ,b,c off
        else
#endif
        tv_dacoff(TV_DAC_C|TV_DAC_B);                               // dac f/e/d//a on ,b,c off
    #endif    
#endif
#else
    #ifndef SLEEP_WHEN_POWER_ON        //hq,3-11-25 22:39
    	#ifndef USE_SUNPLUS_EMU_BOARD
    		#ifdef SUPPORT_FUNCTION_MENU //Jack added for argus portable dvd
    #ifdef SUPPORT_SPI
    if(pdvd_mode == PDVD_MODE)
    {
      sp8200tv_setup_custom_output(TV_OUT_CScRGB);
      tv_dacoff(TV_DAC_C|TV_DAC_B|TV_DAC_A); 
    }
    else
    #endif
    #endif
    	#endif
    #ifdef GBM_ONLY_CVBS_S_VIDEO_SHOW_COMPOSITE//gerry,2004-7-30 17:11
    tv_dacoff(TV_DAC_F|TV_DAC_E|TV_DAC_D|TV_DAC_C|TV_DAC_B);//turn off dac f/e/d/c/b,gerry,2004-7-30 17:11
    #else//GBM_ONLY_CVBS_S_VIDEO_SHOW_COMPOSITE
    tv_dacoff(0);                   // dac f/e/d/c/b/a on
    #endif//GBM_ONLY_CVBS_S_VIDEO_SHOW_COMPOSITE
#endif
#endif
#endif
}

//terry,2003/8/9 03:48PM
//wanghaoying 2003-8-12 19:38 modified the type of the function
BYTE wait_dsp_port0_5(int port0,int port5,int val,UINT32 risc_waiting_dsp_tm)
{
    UINT32 i;

    if(srv_on == 0) risc_waiting_dsp_tm = 0x1;//terry,2003/8/11 11:41AM
    
    
    for (i=0; i< risc_waiting_dsp_tm; i++) 
    {
         
         if ( (port0==0)||((regs0->dsp24_port[0] & 0x8000) == 0x8000) )
         {
            if( (port5==0)||(regs0->dsp24_port[5]==(UINT32)val) )//wanghaoying 2003-8-12 19:36 modified, please terry confirm
            {
              return 1;
            }
         }
        #if 0//def DVD_SERVO//servo-test 2004-5-3 16:47
        if(srv_on == 1)
            ServoDecMainLoop();// barry add for polling servo status
        #endif
    }    
    
    return 0;
}


void delay_srv_10ms(int tms)
{
    #if defined(SUPPORT_CARD_STORAGE)||defined(SUPPORT_USB)||defined(SPHE8202_CARD_STORAGE)
    if (media_type==MEDIA_CARD)  
    {
    	   delay_1ms(10*tms);
    	   return;
    } 	   
    #endif

#ifndef DVD_SERVO
    delay_1ms(10*tms);
#else	
    if (srv_on==0)   
    {
    	int i;
    	for(i=0;i<tms;i++)
    	{
           delay_1ms(10);
           
           //#ifdef HANYANG_SCAN_KEY
           //check_hanyang_keylight_status();
           //#endif
#if defined(USE_VFDPORT_TO_KEYLIGHT_MINTON)
           check_minton_keylight_status();
#endif
        }
    }
    else
    { 
        int now,old = GET_RTC_15_0();
        int cnt = 0;
    
        do {
            now = GET_RTC_15_0();
            if(old!=now)
            {
                cnt++;
                old=now;
#if defined(USE_VFDPORT_TO_KEYLIGHT_MINTON)
                check_minton_keylight_status();
#endif
        	
        //#ifdef HANYANG_SCAN_KEY
           //check_hanyang_keylight_status();
           //#endif
        	}
        #ifdef DVD_SERVO
            ServoDecMainLoop();// barry add for polling servo status
        #endif
#ifdef HDMI
        HDCP_polling();//Modifed for avoid unknow recursion.chenzhao on 2004-12-14 16:21  
#endif
        }while(cnt<=tms);
   }
#endif   
}


⌨️ 快捷键说明

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