====== HiMD device control command (0xC2) ====== The device control command is 12 bytes (0x0C), and depending on subcommand, intiates a data transfer from or to the device. The layout of the command block is Byte 00: Command (0xC2) Byte 01: Unknown, sent as zero (maybe LUN?) Byte 02: For some subcommands: Application ID (0 == General?, 1 == MD Audio?, 2 == UMD Audio?) Byte 03: subcommand Byte 04: For some subcommands: Flag bits Byte 05: For the switch interface command: Delay Byte 06: unused, sent as zero Byte 07: Set explicitly to zero for Get Leaf ID - Some Index? Byte 08: Byte count of data transfer Bytes 09-0B: unused === Subcommand 00: Erase HiMD === * Application ID: 0 * Used fields: flags. * Bit 0: IMMED ("immediate": finish SCSI handling before command finishes - must be set on RH-1) * Bit 1: FUA ("force unit access": write now, don't cache) This command completely blanks the medium. This is not possible with Hi-MD 1GB media, as the Disc ID is read-only. Standard MD media completely blanked are usable in standard MD devices. This is the only way getting rid of Hi-MD format on a standard MD medium. === Subcommand 01: Format HiMD === * Application ID: 0 * Used fields: flags. * Bit 0: IMMED ("immediate": finish SCSI handling before command finishes - must be set on RH-1) * Bit 1: FUA ("force unit access": write now, don't cache) * Bit 2: NOFS (Don't generate FAT FS? - must be cleared on RH-1) This command just reinitializes the Hi-MD data structures on the Medium, but it doesn't remove the Hi-MD layout from it. It generally keeps the Disc ID, as this data is stored *outside* of the area accessible using normal read/write instructions, and only this area is reinitialized. === Subcommand 0E: Begin ICV Transaction === * Application ID: 0 * Used fields: none If the command is correctly understood, it starts a transaction that updates FAT, directory and the master ICV all at the same time, or none at all. See [[HiMDDownload]], at timestampe 84.6. The transaction is committed by the new ICV at timestamp 93.2 === Subcommand 0F: Recommend Synchronize Cache === * Application ID: 0 * Used fields: none === Subcommand 10: Switch Interface === === Subcommand 11: Get Leaf ID === === Subcommand 20: Load Audio TOC === * Application ID: 1 or 2 * Used fields: none === Subcommand 21: Pause Audio === * Application ID: 1 or 2 * Used fields: none === Subcommand 22: Play Audio === * Application ID: 1 or 2 * Used fields: none === Subcommand 23: Scan Audio === * Application ID: 1 or 2 * Used fields: flags. * Bit 7: unknown function === Subcommand 24: Search Audio === === Subcommand 25: Seek Audio === === Subcommand 26: Stop Audio === === Subcommand 40: Read Defect List === === Subcommand 41: Read Zone List === === Subcommand 50: Get Time === * Application ID: 0 * Used fields: data size, should be 7 Reads a 7-byte data packet from the Hi-MD unit with the following layout: Byte 00: Flags. Bit 7 = Ex; Bit 6 = Ef; Bit 5 = WP (write protect?) Byte 01: second Byte 02: minute Byte 03: hour Byte 04: day Byte 05: month Byte 06: year === Subcommand 60: Read Audio Status === === Subcommand 90: Set Time === === Subcommand A0: Play audio parts ===