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

📄 sysmain.c

📁 代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考
💻 C
字号:
/*
** FILE
** sysmain.c
**
** DESCRIPTION
**
** sysmain.c now contains system-level init functions, which
** must resides in ROM (well, non-volatile devices that is
** reliable through failure.)
**
** *NOTE* this file is split from mainproc.c.
*/
#include "config.h"
#include "global.h"
#include "macro.h"
#include "regmap.h"
#include "dma.h"
#include "mon.h"
#include "verify.h"
#include "func.h"
#include "util.h"
#include "cd.h"
#include "reset.h"

#include "epp.h"
#include "sio.h"
#include "cdfunc.h"
#include "dsa.h"
#include "fs9660.h"

#include "osd.h"
#include "gpio.h"
#include "set.h"
#include "servo.h"

#include "auctrl.h"
#include "ircmd.h"
#include "vfd.h"
#include "memmap.h"
#include "hwsetup.h"
#include "bitop.h"
#include "reset.h"
#include "framebuf.h"

//in iop.c
extern void iop_init(const BYTE *, int);

//in uart.c
extern void UART_init(BYTE);

//hwsetup.c
extern void Servo_init(void);

//in jpeg.c
extern void jpeg_test(void);

//in dma.c
extern void init_video_clock(void);

//in ogt_rom.c
extern void ogt_test(void);
extern void disable_video(void);
//extern void osd_disable(void);
extern void pbcoff_init(void);
void    download_code_to_sdram(unsigned char *, unsigned char *);
extern void DispDiscTite(BYTE Time);

extern void delay(int);					/*ZHX 122703 */

//#define   TITLE_DELAY
//#define   NOTITLE
//#define   MONE_READTOC
//#define   MONE_CTRL_FLOW
//#define   TEST_SDRAM
//#define   TEST_ROM
//#define   TEST_DISCMAN

#define DISC_OPEN                   (int)(-1)
#define DISC_NONE                   (int)(-2)

#define DISC_NOT_SUPPORT    (int)(-4)

#ifdef   SAMSUNG_SERVO
unsigned char cdrw_enable = 1;  //1-detect cd-rw disc  ;0- do not detect cd-rw disc at all!
#endif

#ifdef COMPRESS_MODULE  
extern  UINT16  unDriverFlag;
extern  void    Fs9660DrvInit(void);
extern  void    LoadFuduDrv(void);
extern  void    LoadFixDrv(void);
#endif

void game_stuff()
{
// avoid to overlap game IRAM region 0x400~0xc00,never remove this for everything
    asm volatile ("nop");
    asm volatile ("nop");
    asm volatile ("nop");
    asm volatile ("nop");
}

/*
** InitVar
*/
extern BYTE audio_mode; //huziqin use 2003-6-26 9:04
void InitVar(void)
{

#ifdef COMPRESS_MODULE  
    unDriverFlag=0;
#endif  
    
    /*
     ** Clear state
     */
    UISetKYNorm();
    UISetNMNorm();
    ircmd_cancel(ALL_CNL);


    /*
     ** PBC flow control
     */
#ifdef START_UP_PBC_ON
    if(!CheckUIState(VCD_STATE_STOP))   //wyf 2-4-25 21:34.
    {
        ClearPSDList();                         //psd_st.psd_list_id = 0x0;
        // Joseph 20021112 add for 
        // Game Disc -> TrayOut -> Play MP3/JPG Disc -> Play/Pause function fails       
        CLR_PSD_STATE();
    }
#else
    if(bDiscType & NES_DISC){                  //ZHX 112702
      if(!CheckUIState(VCD_STATE_STOP)) 
        {
          ClearPSDList();
          CLR_PSD_STATE();
        }
    }
    else {
    InvalidPSDList();                           //psd_st.psd_list_id = 0xffff
    CLR_PSD_STATE();
    }
#endif
    bPbcOff = 0;                                    //jhuang power on default value

    
    /*
     **FUDU/SCODE status
     */

#ifdef IR_FDFC_ON                               //jhuang2002/5/17
    UISetFDFC_OP_MANUAL();              //璽弄璽佰も笆家Α
    UISetFDFC_STOP();                           //璽弄璽佰

⌨️ 快捷键说明

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