*****************************************************************
* Include file for use of the cdx.device (public)               *
*                                                               *
* Revised  1 Jun 93 for release 1.9 of cdx.device               *
* Marty Flickinger                Copyright © 1993  Xetec, Inc. *
*****************************************************************


**** Device command definitions ****

   DEVINIT  0
   DEVCMD   CD_INVALID
   DEVCMD   CD_RESET
   DEVCMD   CD_READ
   DEVCMD   CD_WRITE		;Not Applicable
   DEVCMD   CD_UPDATE
   DEVCMD   CD_CLEAR
   DEVCMD   CD_STOP
   DEVCMD   CD_START
   DEVCMD   CD_FLUSH
   DEVCMD   CD_MOTOR
   DEVCMD   CD_SEEK
   DEVCMD   CD_FORMAT		;Not applicable
   DEVCMD   CD_REMOVE
   DEVCMD   CD_CHANGENUM
   DEVCMD   CD_CHANGESTATE
   DEVCMD   CD_PROTSTATUS
   DEVCMD   CD_TRACKLOCMSF
   DEVCMD   CD_TRACKLOCLSN
   DEVCMD   CD_GETDRIVETYPE
   DEVCMD   CD_NUMTRACKS
   DEVCMD   CD_ADDCHANGEINT
   DEVCMD   CD_REMCHANGEINT
   DEVCMD   CD_CHECKLOCMSF
   DEVCMD   CD_CHECKLOCLSN
   DEVCMD   CD_NUMSECTORS
   DEVCMD   CD_LEADOUT
   DEVCMD   CD_SECTORSIZE
   DEVCMD   CD_ROUTECHANNELS
   DEVCMD   CD_GETROUTE
   DEVCMD   CD_DIRECT
   DEVCMD   CD_ISROM
   DEVCMD   CD_ALLOCATE
   DEVCMD   CD_FREE
   DEVCMD   CD_CURRENTLOCMSF
   DEVCMD   CD_CURRENTLOCLSN
   DEVCMD   CD_STATUS
   DEVCMD   CD_PLAYTRACKS
   DEVCMD   CD_PLAYSEGMSF
   DEVCMD   CD_PLAYSEGLSN
   DEVCMD   CD_PAUSE
   DEVCMD   CD_RESUME
   DEVCMD   CD_STOPAUDIO
   DEVCMD   CD_SKIPFWD
   DEVCMD   CD_SKIPRVS
   DEVCMD   CD_EJECTBUTTON
   DEVCMD   CD_EJECT
   DEVCMD   CD_PLAYSYNCMSF
   DEVCMD   CD_PLAYSYNCLSN
   DEVCMD   CD_SETVOLUME
   DEVCMD   CD_GETVOLUME
   DEVCMD   CD_ADDCHANGER
   DEVCMD   CD_REMCHANGER
   DEVCMD   CD_DISCCHANGE
   DEVCMD   CD_PRIVATE1		;For internal use only!
   DEVCMD   CD_PRIVATE2		;For internal use only!
   DEVCMD   CD_PRIVATE3		;For internal use only!
   DEVCMD   CD_SELECTDISC
   DEVCMD   CD_SETBLOCKSIZE
   DEVCMD   CDXDEV_END


**** Values returned by CD_STATUS ****

STS_NODISC	EQU	0
STS_STOPPED	EQU	1
STS_PLAYING	EQU	2
STS_PAUSED	EQU	3
STS_ENDED	EQU	4	;CDTV only
STS_BADDISC	EQU	5

**** Values returned by CD_GETDRIVETYPE ****

TYPE_UNKNOWN	EQU	0		;No audio support
TYPE_CHINON	EQU	1
TYPE_SONY1	EQU	2
TYPE_SONY2	EQU	3
TYPE_TOSHIBA	EQU	4
TYPE_NEC	EQU	5
TYPE_PIONEER	EQU	6
TYPE_TEXEL	EQU	7
TYPE_TOSHIBA2	EQU	8
TYPE_SCSI2	EQU	9
TYPE_SONY3	EQU	10
TYPE_PHILIPS	EQU	11
TYPE_MATSUSHITA	EQU	12
TYPE_NEC2	EQU	13
TYPE_DENON	EQU	14
TYPE_HITACHI	EQU	15
TYPE_LMS	EQU	16

NUMDRIVETYPES	EQU	17

**** Values used by CD_GETROUTE & CD_ROUTECHANNELS ****

ROUTE_NONE	EQU	0
ROUTE_LEFT	EQU	1
ROUTE_RIGHT	EQU	2

**** DiscChange interrupt flags ****

	BITDEF	DCI,INSERTIONS,0
	BITDEF	DCI,REMOVALS,1

**** Disc "Table Of Contents" Structure ****

   STRUCTURE CDTOC,0
	UBYTE	toc_AddrCtrl		;SubQ flags -- See below
	UBYTE	toc_Track		;Track # (or 1st track)
	ULONG	toc_Position		;MSF or LSN
	LABEL	CDTOC_Sizeof


**** Disc Position/Info (SubQ) Structure ****

   STRUCTURE SubChanQ,0
	UBYTE	sq_Status		;Drive status
	UBYTE	sq_AddrCtrl		;SubQ flags -- see below
	UBYTE	sq_Track		;Track number
	UBYTE	sq_Index		;Index number
	ULONG	sq_DiscPosition		;Position from start of disc
	ULONG	sq_TrackPosition	;Position from start of track
	STRUCT	sq_UPCcode,10		;UPC code in BCD (all FF's if none)
	LABEL	SubChanQ_Sizeof


**** AddrCtrl Flags ****

	BITDEF	QF,PREEMPH,0
	BITDEF	QF,COPYOK,1
	BITDEF	QF,DATATRK,2
	BITDEF	QF,FOURCHAN,3


**** Error Codes ****

CDERR_NoDrive		EQU	44
CDERR_Failed		EQU	45
CDERR_ForeignDrive	EQU	70
CDERR_InUse		EQU	71
CDERR_NoDisc		EQU	72
CDERR_Illegal		EQU	73
CDERR_Stopped		EQU	74
CDERR_BadTrackNum	EQU	75
CDERR_DataTrack		EQU	76
CDERR_BadLocation	EQU	77
CDERR_BadLength		EQU	78
CDERR_DiscUnreadable	EQU	79
CDERR_MSFformat		EQU	80
CDERR_NoData		EQU	81
CDERR_NotSupported	EQU	82


CDXDEVNAME   MACRO
      DC.B   'cdx.device',0
      ENDM
