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