📄 sysmain.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 + -