ABOUT FDCDTEST ============== PRODUCT DESCRIPTION ------------------- The CD-ROM test utility was designed to test the integrity of the Future Domain CD-ROM Device Driver and CD-ROM drives. Users and Developers will now be able to test all the functions supported by the CD-ROM Driver for problems related to the CD-ROM Driver or the CD-ROM drive itself. This utility is also used in the Future Domain Quality Assurance Test Procedure for each drive supported by the Future Domain CD-ROM Driver. This is performed to ensure that every available function is operational for use with the CD-ROM applications on the market as well as future CD-ROM applications. FDCD test is written to the Microsoft CD-ROM Extensions. For a complete description of all the functions supported by the Microsoft CD-ROM Extensions, you may contact Microsoft Corporation for a copy. TO START FDCDTEST ----------------- To run the FDCDTEST program change directory to where the FDCDTEST.COM file is and at the DOS prompt type the following: fdcdtest The program locates all CD-ROM drives within the system attached to the Future Domain SCSI Controller(s) and prompts for a drive selection. You need to select a CD-ROM drive to test. The Main menu is then displayed. FDCDTEST will abort if the following conditions occur:  The CD-ROM Extensions are not installed.  No CD-ROM drives found attached to the Future Domain SCSI Controller. There are three Function Menus available. These are:  Main Menu  IOCTL Input Menu  IOCTL Output Menu To minimize the screen output, the menus are displayed only once. You may press the ? key to re-display a menu. FUNCTION MENUS -------------- Main Menu --------- This menu is displayed upon startup of the program. Pressing the key from this menu will cause the program to terminate. Following are the descriptions of the options available from the Main menu. 0 - IOCTL INPUT Choose this option to select an IOCTL Input option from the IOCTL Input Menu. 1 - INPUT FLUSH Clears all input buffers and pending requests in the Device Driver. 2 - IOCTL OUTPUT Choose this option to select an IOCTL Output option from the IOCTL Output Menu. 3 - DEVICE OPEN Used by the Dvice Driver to determine the number of callers that are currently using the CD-ROM Device Driver. 4 - DEVICE CLOSE Used by the Device Driver to determine the number of callers that are currently using the CD-ROM Device Driver. 5 - READ LONG A SCSI Read command is issued to the CD-ROM drive with the option of specifying the Addressing Mode and the Data Read Mode. Addressing 0 - High Sierra Mode Modes: 1 - Red Book mode Date Read 0 - Cooked mode : usually the Modes: default mode for EDC/ECC checking which returns a block size of 2048 bytes. 1 - Raw mode - for no EDC/ECC checking, this option returns all 2352 bytes which includes the EDC/ECC data. 6 - READ LONG PREFETCH Same as READ LONG but no data is transferred. 7 - SEEK A SCSI Seek command is issued to the CD-ROM drive with the option of specifying the Addressing Mode. Addressing 0 - High Sierra mode Modes: 1 - Red Book mode 8 - PLAY AUDIO This function is used to play a selected track on an audio disc. Track Number: Any valid track on an audio disc. Play to end of disc: This gives you the option to either play to the end of the disc or just the specified track. 9 - STOP AUDIO This function is used to pause or stop a CD-ROM drive while in Play mode. Selecting this option once will put the drive in Pause mode and selecting this option twice consecutively will put the drive in the Stop mode. A - RESUME AUDIO This function is used to restart Play mode on a CD-ROM drive currently in Pause mode. A "General Failure" error status will occur if the drive is in Stop mode. B - DISPLAY DEVICE STATUS The Device status is a 2-byte value which is returned by the device driver to indicate the command request has successfully been completed. This function displays Bit 8 and 9 of this status which corresponds to the Done and Busy bit. IOCTL Input Menu ---------------- The IOCTL Input menu is displayed by selecting option 0 from the Main menu. Press the key to return to the Main menu. The following section describes the options available from the IOCTL Input menu. 0 - RETURN DRIVER ADDRESS A 4-byte address is displayed indicating where in the system memory the CD-ROM driver is located. 1 - LOCATION OF HEAD Displays the current location of th drive head in High Sierra and Red Book format. 2 - AUDIO CHANNEL INFO Use to display the current Audio Channel control settings. These settings may be changed using the Audio Channel Control IOCTL Output function. There are a total of 4 input and output channels that may be supported by a CD-ROM drive. Valid channels are 0 to 3 which represent the following: Channel 0: Front left Channel 1: Front right Channel 2: Rear left Channel 3: Rear right Input Channel: This is the actual channel that is read from an Audio track on a disc. Output Channel: This is the channel that comes from the drive's amplifier to power the speakers. Volume Control: A value from 0 to 255 indicating the volume setting on the specified channel. A volume control of 0 indicates Mute mode and a volume control of 255 indicats Full volume. 3 - DEVICE STATUS The device status is maintained by the CD-ROM driver to provide a general description of the options currently set and available on the CD-ROM drive. The device status is maDe up of 32 bits which are defined as follows: Bit 0: 0 - Door closed 1 - Door open Bit 1: 0 - Door locked 1 - Door unlocked Bit 2: 0 - Supports only cooked reading 1 - Supports cooked and raw reading Bit 3: 0 - Read only 1 - Read/write Bit 4: 0 - Data read only 1 - Data read and plays audio/video tracks Bit 5: 0 - No interleaving 1 - Supports ISO-9660 interleaving Using interleave size and skip factor Bit 6: 0 - Reserved Bit 7: 0 - No prefetching 1 - Supports prefetching requests Bit 8: 0 - No audio channel manipulation 1 - Supports audio channel manipulation Bit 9: 0 - Supports HSG addressing mode 1 - Supports HSG and red book addressing modes Bit 10: 0 - Reserved Bit 11: 0 - Disc is present in drive 1 - No disc is present in drive Bit 12: 0 - Does not support R-W sub-channels 1 - Supports R-W sub-channels Bit 13-31: 0 - Reserved 4 - RETURN SECTOR SIZE The driver will return a cooked sector size of 2048 bytes and a raw sector size of 2352. 5 - RETURN VOLUME SIZE This function returns the lead-out track which corresponds to the total number of blocks on the disc. The displayed address is in High Sierra format. 6 - MEDIA CHANGED This function is used to determine the current media state of the drive. The returned values are defined as follows: 1 media not changed 0 don't know if changed -1 media changed 7 - AUDIO DISC INFO Displays the first and last track of an audio disc. The lead-out address is also displayed in Red Book format. 8 - AUDIO TRACK INFO Displays the starting Red Book address for each track found on the disc. 9 - AUDIO Q-CHANNEL INFO This function returns the current track number and the running time within the track and disc in Red Book format. A - UPC CODE Use this option to get the UPC/EAN (Universal Product Code) from the disc. Most discs do not contain this code and will cause the driver to return a "Sector not Found" message. Also, if the CD-ROM drive does not support this function, an "Unknown Command" message will be returned by the driver. B - AUDIO STATUS INFO After selecting an audio track to play, this function will display the starting and ending addresses specified by the play request. Will also display the Pause status of drive. IOCTL Output Menu ----------------- The IOCTL Output menu is displayed by selection Option 2 from the Main menu. Press the Enter key to return to the Main menu. The following section describes the options available from the IOCTL Output menu. 0 - EJECT DISC Use this function to eject a disc from the CD-ROM drive. If the drive door is locked, the driver will unlock the door before ejecting. 1 - LOCK DOOR This function will lock the door on a CD-ROM drive. 2 - UNLOCK DOOR This function will cause the drive to unkock the door if previously locked. 3 - RESET DRIVE Use this function to reset and reinitialize the drive. 4 - AUDIO CHANNEL CONTROL This function displays the current Audio Channel control settings and prompts for an Input and Output channel and a Volume control setting for the specified channel. See "IOCTL Input Audio Channel Info" option for additional information. 5 - CLOSE TRAY This function will close the tray on a CD-ROM drive that employs a tray mechanism. ERROR MESSAGES -------------- The CD-ROM driver returns a Status code for every command request that is completed. This code is used to indicate whether the command request was completed successfully or if an error occurred. In the event of an error, the driver will set the Error bit (bit-15) in the status code and will place the error code in bits 0-7. If an error occurs when using this utility, the program will automatically convert the error code to one of the following error messages. Error Code: Error Messages: 0 Write protect violation 1 Unknown unit 2 Drive not ready 3 Unknown command 4 CRC error 5 Bad drive request structure length 6 Seek error 7 Unknown media 8 Sector not found 9 Printer out of paper 10 Write fault 11 Read fault 12 General failure 13 Reserved 14 Reserved 15 Disc change occurred COMMAND CODE TABLE ------------------ The following table shows the menu selection codes as corresponding to the Microsoft CD-ROM Extensions command codes. The numbers in brackets are the IOCTL command sub-codes. FDCDTEST Menu Selection Codes CD-ROM Extensions Codes 0-[0] 3-[0] ADDRESS OF DEVICE DRIVER 0-[1] 3-[1] LOCATION OF HEAD 0-[2] 3-[4] AUDIO CHANNEL INFO 0-[3] 3-[6] DEVICE STATUS 0-[4] 3-[7] RETURN SECTOR SIZE 0-[5] 3-[8] RETURN VOLUME SIZE 0-[6] 3-[9] MEDIA CHANGED 0-[7] 3-[10] AUDIO DISC INFO 0-[8] 3-[11] AUDIO TRACK INFO 0-[9] 3-[12] AUDIO O-CHANNEL INFO 0-[A] 3-[14] UPC CODE 0-[B] 3-[15] AUDIO STATUS INFO 1 7 INPUT FLUSH 2-[0] 12-[0] EJECT DISC 2-[1] 12-[1] LOCK DOOR 2-[2] 12-[1] UNLOCK DOOR 2-[3] 12-[2] RESET DRIVE 2-[4] 12-[3] AUDIO CHANNEL CONTROL 2-[5] 12-[5] CLOSE TRAY 3 13 DEVICE OPEN 4 14 DEVICE CLOSE 5 128 READ LONG 6 130 READ LONG PREFETCH 7 131 SEEK 8 132 PLAY AUDIO 9 133 STOP AUDIO A 136 RESUME AUDIO