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

📄 dsa.h

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

/*
 * $Log$
 */

#ifndef	_dsa_h_
#define	_dsa_h_

#include "common.h"
#include "custom.h"

/************************************************************************
 * Global defines.							*
 ************************************************************************/
/* CD type								*/
#define	CD_UNKNOWN		0	/* Has to be 0			*/
#define	CD_CDDA			1
#define	CD_CDI			2
#define	CD_VCD			3
#define	CD_NODISC		4

/* "VIDEO_CD" and "ENTRYVCD" strings					*/
#define	VIDE	0x56494445		/* "VIDE" */
#define	O_CD	0x4f5f4344		/* "O_CD" */
#define	ENTR	0x454e5452		/* "ENTR" */
#define	YVCD	0x59564344		/* "YVCD" */

/* "CD-I" string							*/
#define	CD_I	0x43442d49		/* "CD-I" */

/* Global error code (for communication with external micro processor)	*/
#define	ERR_LTOC	0x80	/* LTOC error ("Disc error")		*/
#define	ERR_UNKNOWNCD	0x81	/* Unknown CD type ("Unknown CD type")	*/
#define	ERR_TRAYEMPTY	0x82	/* Empty CD tray ("Insert CD")		*/
#define	ERR_DISCERR	0x83	/* Disc error ("Disc error")		*/
#define	ERR_DSAMODE	0x84	/* DSA mode error ("CD drive error")	*/
#define	ERR_DSADAC	0x85	/* DSA DAC error ("CD drive error")	*/
#define	ERR_DSARELEASE	0x86	/* DSA release A->B error ("CD driver")	*/
#define	ERR_DSAA2B	0x87	/* DSA go A->B error			*/
#define	ERR_GETSECTOR   0x90	/* getSector error			*/
#define	ERR_EARLYQUIT	0x91	/* User requests to quit		*/
#define	ERR_EXCEEDTK	0x92	/* Too many tracks			*/
#define	ERR_EXCEEDSEG	0x93	/* Too many segments			*/
#define	ERR_PLAYSECTORS	0x94	/* playSectors error			*/


#ifdef SONY3D
/* tray state */
#define TRAY_OPENED             1
#define TRAY_CLOSED             2
#define TRAY_OPENING            3
#define TRAY_CLOSING            4
#endif


#ifdef SERVO_6003
/* Philips 6003 CD loader define */
#define ROTATE_CLOCK_MOVE         DSC_set_aux(1, 0, 0x20)
#define ROTATE_CLOCK_ANTI_MOVE    DSC_set_aux(1, 0, 0x10)
#define ROTATE_STOP               DSC_set_aux(1, 1, 0x30)
#define TRAY_OPEN                 DSC_set_aux(1, 0, 0x01)
#define TRAY_CLOSE                DSC_set_aux(1, 0, 0x02)
#define TRAY_STOP                 DSC_set_aux(1, 1, 0x03)
#define CD_UP_IS_HIGH             EAUX10_HIGH     /*test up CD */
#define CD_UP_IS_LOW              EAUX10_LOW      /*test down CD*/
#define DISC_1_IS_HIGH            EAUX6_HIGH      /*test disc is not in disc-1*/
#define DISC_1_IS_LOW             EAUX6_LOW       /*test disc is disc-1*/
#define TRAY_SH_IS_HIGH           EAUX11_HIGH     /*test loader is moving*/
#define TRAY_SH_IS_LOW            EAUX11_LOW      /*test loader has stopped*/
#define TRISTATE_6003_EAUX        { DSC_set_aux(0, 2, 0x40); \
				    DSC_set_aux(1, 2, 0x0c); }
EXPORT  int eject_6003_retry;    /* philips 6003 loader open/close retry flag */
#endif
EXPORT  unsigned char cd_opened;           /* 1 -> CD is open               */

/************************************************************************
 * Shared data type.							*
 ************************************************************************/
typedef struct _cd_info {
    unsigned char type;
#ifdef CUST6  /* CUST6 servo module assume unsigned char for '..track' */
    unsigned char firsttrack;		/* first track # 		*/
    unsigned char lasttrack;		/* last track # 		*/
#else
    int firsttrack;		/* first track # 			*/
    int lasttrack;		/* last track # 			*/
#endif /* CUST6 */
    unsigned int  leadout;	/* lead out time			*/
} CDINFO;


/************************************************************************
 * Global variables.							*
 ************************************************************************/
#ifdef PLAY20
GBLDEF_0(char tv_changed, 0);
#ifndef SERVO2545
GBLDEF_0(unsigned int servo_track, 0);	/* Track number reported by servo   */
#endif	/* SERVO2545 */
#endif	/* PLAY20 */
GBLDEF_0(int play_clip, 0);

#ifdef SGAME
EXPORT  unsigned char vcd_game_loaded;
#endif

EXPORT  int             stop_timer;
EXPORT	int		power_up;
EXPORT	CDINFO		CDinfo;
EXPORT	int		CDinited;
EXPORT	char		forceDSAabort;
EXPORT	int		first_seg_ad;
EXPORT	int		num_of_track;
EXPORT	int		bcd_num_of_track;
EXPORT	int		tdm_played;
EXPORT  unsigned int	err_code;
EXPORT  unsigned int	servo_track_changed;

EXPORT	unsigned int	servo_info;
EXPORT	unsigned int	last_servo_info;
EXPORT	unsigned char 	program_on;
/************************************************************************
 * Exported functions (called from routines in EPROM)			*
 ************************************************************************/
EXPORT	int		dsa_open(void);
#ifndef CUST3
EXPORT	int		dsa_close(int power_down);
#else
EXPORT	int		dsa_close();
#endif
EXPORT	int		dsa_pause(void);
EXPORT	int		dsa_pauserelease(void);
EXPORT	int 		dsa_get_disc_status(unsigned char *status);
EXPORT	int		dsa_release(unsigned int, unsigned int);
EXPORT	int		dsa_stop(void);
EXPORT	int		dsa_ltoc(unsigned int *, int);
EXPORT	int		dsa_rotate_disk(int direction);
EXPORT	void		receive_dsa(void);
EXPORT  void            dsa_reset();
EXPORT	int		initCD(void);
EXPORT	int		abortLtoc(void);
EXPORT	int		playCDDA(int, int, int);

EXPORT	int		currentTVmode;
EXPORT	void		fill_screen(int color);
EXPORT	unsigned char	*CDI_ptr;
EXPORT  int             getSectors(unsigned int, int, int);
#if (VCDROM || JUMPGAME)
EXPORT	void		JumpGame();
#endif

/************************************************************************
 * Exported functions (called from routines in SRAM)			*
 ************************************************************************/
EXPORT	void		service_dsa(int);
EXPORT  unsigned char   screen_display;

#ifdef TWO_CDS
/* contrl  open && close */
#define TRAY_OPEN                 DSC_set_aux(0, 0, 0x08)  /* CLEAR_EAUX3 */
#define TRAY_CLOSE                DSC_set_aux(0, 0, 0x10)  /* CLEAR_EAUX4 */
#define TRAY_STOP                 DSC_set_aux(0, 1, 0x18)  /* SET 3,4 HIGH*/

#define DISC_SW_IS_HIGH           EAUX8_HIGH   /* test disc_1 has disc */
#define DISC_SW_IS_LOW            EAUX8_LOW    /* test disc_2 has disc */  

#define DISC_1_CLOSE_IS_HIGH      EAUX10_HIGH   /* test disc_1 is not close  */
#define DISC_1_CLOSE_IS_LOW       EAUX10_LOW    /* test disc_1 is close */
#define DISC_1_OPEN_IS_HIGH       EAUX13_HIGH    /* test disc_1 is not open  */
#define DISC_1_OPEN_IS_LOW        EAUX13_LOW     /* test disc_1 is open  */

#define DISC_2_CLOSE_IS_HIGH      EAUX14_HIGH   /* test disc_2 is not close  */
#define DISC_2_CLOSE_IS_LOW       EAUX14_LOW    /* test disc_2 is close */
#define DISC_2_OPEN_IS_HIGH       EAUX1_HIGH   /* test disc_2 is not open  */
#define DISC_2_OPEN_IS_LOW        EAUX1_LOW    /* test disc_2 is open  */

EXPORT  unsigned char    led_flag;
EXPORT  unsigned char    closing;
EXPORT  unsigned char    opening;
EXPORT  void          put_keycode(int);
EXPORT  int cd_disc_slot;
EXPORT  void            trans_dsa(int, int);
EXPORT  int rotate_timer;
EXPORT  int             two_initCD(void);
#endif


#endif /* _dsa_h_ */

⌨️ 快捷键说明

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