; Track

TrackInfo       STRUC
DataType        INT
Offset          INT
FileName        INT
                INT
                STREND

; Drive

Drive           STRUC

; These three items are used to identify a drive from the fake
; SCSI id passed to us.

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
Handle          INT                             ; File handle
ImageType       INT                             ; 0=ISO, 1=BINARY, 2=MOTOROLA etc.
FileName        CHAR            256
Tracks          CHAR            TrackInfo_Size*100          ; up to 99 tracks
SharedSoundHandle   INT                         ; >0 if Audio playing
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                             ; >0 if Audio to unload
DAnumber        INT                             ; DA# of buffer
AudioCallBack   INT                             ; >0 if CallBack raised
AudioReadAhead  INT                             ; trigger read-ahead
AudioPlayed     INT                             ; amount played
                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

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
