CD_PLAY

Syntax CD_PLAY [start [,end]]
Location SMSQ/E for QPC

This command allows you to play the tracks on an audio CD once it has been initialised. If no parameters are specified, QPC will play the whole of the CD in the CD-ROM drive.

This command will not slow the operation of SMSQ/E and returns immediately that the CD starts playing.

The parameters allow you to specify the start and end tracks to be played. These parameters are given either as track numbers or as sectors in REDBOOK format (if bit 31 of the parameter is set). A sector on an Audio CD is 2352 bytes.

To set bit 31, add the value $80000000 or 2^31

Examples

CD_PLAY

plays the whole disk

CD_PLAY 10

play track 10 to the end of the disk

CD_PLAY 5,CD_TRACKSTART(5)+$80000000

play track 5 only.

A program which will play all of the tracks on an Audio CD in a random order:

100 INPUT 'Has the CD-ROM Drive already been initialised ? [y] ';an$
110 IF an$=='n': CD_INIT
120 IF NOT CD_ISINSERTED
130   IF CD_ISCLOSED : CD_EJECT
140   INPUT 'Place a CD in the drive and press <ENTER> ';an$
150   CD_CLOSE
160   IF NOT CD_ISINSERTED
170     PRINT 'NO CD LOADED ':PAUSE :STOP
180   END IF
190 END IF
200 tracks=CD_LASTTRACK-CD_FIRSTTRACK
210 DIM played% (tracks)
220 FOR i=1 to tracks
230   REPeat Floop
240     play=RND(1 TO tracks)
250     IF played%(play)=0: played%(play)=1: EXIT Floop
260   END REPeat Floop
270   CD_PLAY play,play
280   REPeat Ploop: IF NOT CD_ISPLAYING: EXIT Ploop
290 END FOR i

CROSS-REFERENCE

CD_INIT allows SMSQ/E to recognise a CD drive.

CD_STOP pauses playing

CD_EJECT opens the disk drawer to allow you to insert a new CD.

CD_CLOSE closes the disk drawer.

CD_ISINSERTED allows you to check if a CD is in the drive.