; Track

TrackInfo_SHL	*	4	;log2 of TrackInfo STRUC

TrackInfo       STRUC		;must be 16 bytes long
DataType        INT		;data type of track contents
Offset          INT		;offset within the whole CD
LocalOffset	INT		;offset within the current FILE
FileName        INT		;pointer to filename
                STREND

; Drive

Drive           STRUC
ID              INT
Card            INT
LUN             INT
Type            INT
Reserved        CHAR 12

; Emulation data

LastPosn        INT                             ; Last head address (LBA)
Emulation       INT                             ; Pointer

; This stuff is what we need for each drive

Flags           INT                             ; See below
ImageType       INT                             ; 0=ISO, 1=BINARY, 2=MOTOROLA etc.
FileName	INT
FilePath        CHAR            MaxFileLength
SharedSoundHandle   INT                         ; >0 if Audio playing
BINFiles	INT				; RMA buffer for CUE track filenames
LastBINFile	INT				; pointer to the last FILE filename (temporary)
LastFILEOffset	INT				; offset start for this BIN file (temporary)
LastFILESize	INT				; size of the last file in LBA (temporary)
AudioTrackInfo	INT				; Pointer to the BIN file currently supplying Audio
AudioTrack	INT				; File Handle of Audio track being played
AudioPosnCorrect	INT			; offset to correct Audio position within the current FILE
AudioEnd        INT                             ; end of audio playback
BufferStart     INT                             ; address of stream buffer
BufferPtr       INT                             ; current buffer ptr
BufferFilled    INT                             ; buffer cache filled to here
TerminateAudio  INT                             ; terminating audio address
BufferCounter	INT				; increased on every audio buffer fill
DAnumber        INT                             ; DA# of buffer
AudioCallBack   INT                             ; address of audio CallBack that's scheduled
AudioReadAhead  INT                             ; trigger read-ahead
AudioPlayed     INT                             ; amount played
DiscUsed	INT				; size of complete CD
Tracks          CHAR            TrackInfo_Size*MaxTracks          ; up to 99 tracks
                STREND

Drive_DiscChanged *             1 :SHL: 0       ; Flags
Drive_Locked      *             1 :SHL: 1       ; Draw is locked
Drive_NoDisc      *             1 :SHL: 2       ; No disc loaded
Drive_AudioPause  *             1 :SHL: 3       ; Audio paused
Drive_Mounted     *		1 :SHL: 4	; Mounted

Type_AUDIO      EQU 1
Type_CDG        EQU 2
Type_MODE1_2048 EQU 3
Type_MODE1_2352 EQU 4
Type_MODE2_2336 EQU 5
Type_MODE2_2352 EQU 6
Type_CDI_2336   EQU 7
Type_CDI_2352   EQU 8

Type_BINARY     EQU 1
Type_MOTOROLA   EQU 2
Type_AIF        EQU 3
Type_WAV        EQU 4
Type_MP3        EQU 5

Emulation       STRUC
Tag             INT                             ; CDPM = CD Performance Map
Speed           INT                             ; K per second
Latency         INT                             ; Typical command latency in ms
Used            INT                             ; Number of used readings
                STREND

EmSlot          STRUC
StrokeLen       INT                             ; Stroke length in blocks
Time            INT                             ; Time in ms
                STREND

                END
