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

📄 sysinfo.h

📁 一个两碟控制的VCD的代码,两碟之间的转动及连续播放,已大量生产的CODE.
💻 H
字号:
/* Copyright 1996, ESS Technology, Inc.					*/
/* SCCSID @(#)sysinfo.h	1.63 4/30/98 */

/*
 * $Log$
 */

#ifndef __SYSINFO_H__
#define __SYSINFO_H__

#ifdef DSC
#include "dsc.h"
#endif

#include "constvar.h"
#include "custom.h"
#include <setjmp.h>

#include "config.h"

/* Make sure that both ABV and PCM are integer multiples of CDDA_chunk. */
#define CDDA_chunk 128 

/* Different drive manufactural */
#define	CD_TOSHIBA	0		/* Toshiba 9269 (not tested!!)	*/
#define CD_MITSUBISHI   0		/* Mitsubish IIS format		*/
#define	CD_THOMSON	0		/* Thomson DSP			*/
#define	CD_SANYO	1		/* Sanyo   CD			*/
#define	CD_PHILIPS	2		/* Philips CD			*/
#define	CD_SONY		3		/* Sony 2500/Samsung    CD	*/
#define	CD_MATSUSHITA	4		/* Matsushita DSP		*/

#ifdef VCDROM
#define RGB_NTSC        0
#define RGB_PAL         1
#endif

/* TV encoder/TV mode selection */
#if (CUST3_515 || CUST3_52 || CUST3_63 || CUST71)
#ifdef CUST71
#define TV_PAL      0   /* Set encoder to PAL mode      */
#define TV_NTSC     1   /* Set encoder to NTSC mode     */
#else
#define	TV_PAL		3	/* Set encoder to PAL mode		*/
#define TV_NTSC		1	/* Set encoder to NTSC mode		*/
#define	TV_AUTO		2	/* Depend on disk being played to set	*/
#define TV_INVALID	0	/* Invalid value			*/
#endif	/* CUST71 */
#else
#ifdef CUST4
#define TV_AUTO_PAL	0	/* TV_AUTO with PAL startup		*/
#define	TV_AUTO		1	/* Depend on disk being played to set	*/
#define	TV_PAL		2	/* Set encoder to PAL mode		*/
#define TV_NTSC		3	/* Set encoder to NTSC mode		*/
#else
#define	TV_PAL		0	/* Set encoder to PAL mode		*/
#define TV_NTSC		1	/* Set encoder to NTSC mode		*/
#define	TV_AUTO		2	/* Depend on disk being played to set	*/
#define TV_INVALID	3	/* Invalid value			*/
#endif /* CUST4 */
#endif /* CUST3_xxx */
/* For showingLogo */
#define	SHOWING_NOLOGO		0
#define	SHOWING_POWERUPLOGO	1
#define	SHOWING_CDDALOGO	1	/* Set to 2 if a different CDDA	*
					 * logo is used.		*/
#if (!CUST3 || CUST71)

#ifdef CUST4
#define	PREPARE_DETECTION
#else
#define	PREPARE_DETECTION	((mvd_version == 0x3208) ? 		\
				 (void) *(char *) x18000000 : 0)
#endif /* CUST4 */

#else

#ifndef NOHOSTPORT
#define ENABLE_DATA_READ        CLEAR_AUX4
#define DISABLE_DATA_READ       SET_AUX4
#else
#define ENABLE_DATA_READ
#define DISABLE_DATA_READ
#endif

#define	PREPARE_DETECTION	      { int i;                   \
					DISABLE_DATA_READ;       \
					for (i = 0; i < 1; i++); \
				      }
#endif

#ifndef IS_TV_NTSC		/* We'll get rid of this via config.h	*/
#ifdef CUST3

#ifdef NOHOSTPORT

#ifdef S215
extern int read_tv_system;
#define IS_TV_NTSC		(read_tv_system & 0x01)
#else
#define EXT_INPUT		(*(int *)x18000000)
#define IS_TV_NTSC		!((EXT_INPUT&0x04) >> 2)
#endif /* S215 */

#else
#define IS_TV_NTSC		(!AUX5_HIGH)
#endif /* NOHOSTPORT */

#else /* CUST3 */ 

#ifdef H1900
#define IS_TV_NTSC		is_tv_ntsc()	       	
#else

#ifdef DSC

#ifdef SERVO
#ifdef DSC_ENABLE_S0S1
#define IS_TV_NTSC      	EAUX5_HIGH
#else
#define IS_TV_NTSC      	EAUX15_LOW
#endif

#else
/*aaaaaaaaa*/
#ifdef USE_NTSC
#define IS_TV_NTSC              (AUX5_HIGH)
#else
#define IS_TV_NTSC              (!AUX5_HIGH)
#endif
#endif SERVO
#else
#define IS_TV_NTSC		(AUX5_LOW)
#endif /* DSC */

#endif /* H1900 */

#endif /* CUST3 */
#endif /* #ifndef IS_TV_NTSC */

#ifdef NO_MICRO
#define DETECT_NTSC		IS_TV_NTSC
#else
#ifdef CUST4
extern unsigned char cust4_TV_mode;
#define DETECT_NTSC		cust4_TV_mode
#else
#define DETECT_NTSC           ((mvd_version == 0x3210) ? \
                              (IS_TV_NTSC) : (mvd[r_hostdmaport] & 0x1))
#endif /* CUST4 */
#endif

#ifndef DSA_FREE_CD		/* We'll get rid of this via config.h	*/
#if (PLAY20 && !SERVO)
/* This is for Philips 6001 only!!! */
#ifdef RESET_CPU
#define RESET_CD_LOW     CLEAR_EAUX2
#define RESET_CD_HIGH    SET_EAUX2
#else
#define RESET_CD_LOW     SET_EAUX2
#define RESET_CD_HIGH    SET_EAUX2
#endif
#else
#define RESET_CD_LOW
#define RESET_CD_HIGH
#endif SERVO
#else
#define	RESET_CD_LOW	DSA_FREE_CD
#define	RESET_CD_HIGH	DSA_RESET_CD
#endif

#ifdef PLAYONLY
GBLDEF_0(volatile int PO_newdata, 0);	/* 1 changing from guess to CDDA*
					 * 2 changing from guess to VCD	*
					 * 3 changing to "guess mode"	*/
GBLDEF(char showingLogo, SHOWING_POWERUPLOGO); /* Which logo is shown	*/
#endif

GBLDEF_0(int VCD_30, 0);
GBLDEF_0(int ready_to_switch, 0);
GBLDEF_0(int audio_is_way_ahead, 0);
GBLDEF_0(int video_is_way_ahead, 0);
GBLDEF_0(int current_task, 0);
GBLDEF(int picture_type, 0xe0);
#ifdef WATCHDOG
GBLDEF_0(jmp_buf err_buf, {0});
#endif

#ifdef SVCD
GBLDEF(int mpeg2      ,    0);
GBLDEF(int speed2     ,    0);
#endif 
GBLDEF(int beam_offset, 16*2);

GBLDEF_0(int VBV_fullness, 0);
GBLDEF_0(int ABV_fullness, 0);
GBLDEF_0(int PCM_fullness, 0);

#ifdef ERROR_CONCEALMENT
/*
 * For error concealment in e0, we can have two modes to handle bad video.
 * By defining concealment_mode to be BLOCKY, we will have blocky and less
 * jerky video. On the other hand, if it is assigned to be JERKY, we will
 * have less blocky but jerky video.
 */
typedef enum {
    BLOCKY,
    JERKY
} CONCEALMENT_MODE;
GBLDEF(CONCEALMENT_MODE concealment_mode, JERKY);

GBLDEF(int Copy_B_in_progress,0);
/*
 * If we get video error packs more than 
 * VID_error_threshold in latest 1 second, we 
 * reset the concealment_mode to JERKY MODE,
 * otherwise we use BLOCKY MODE, which gives
 * us more smooth result.
 * The threshold can be set by customers.(0-15)
 */
#ifdef SUPER_ERROR
GBLDEF(int VID_error_threshold, 10);
#else
GBLDEF(int VID_error_threshold, 5);
#endif
#endif

EXPORT	void	system_reset(void);
EXPORT	void	system_start(void);
EXPORT	void	system_audio_partial_reset(int);
EXPORT	void	hardware_reset(int);

#endif /* __SYSINFO_H__ */

⌨️ 快捷键说明

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