Path: utzoo!attcan!uunet!cbmvax!jesup From: jesup@cbmvax.commodore.com (Randell Jesup) Newsgroups: comp.periphs.scsi Subject: Re: NEC CDR-35 portable CDROM drive Message-ID: <12378@cbmvax.commodore.com> Date: 7 Jun 90 03:35:50 GMT References: <12215@shlump.nac.dec.com> <8575@goofy.Apple.COM> Reply-To: jesup@cbmvax (Randell Jesup) Organization: Commodore, West Chester, PA Lines: 58 In article <8575@goofy.Apple.COM> Smyers.S@AppleLink.Apple.COM (Scott Smyers) writes: >Hopefully this state of affairs will improve in the future. The SCSI CAM >committee has formed to address this exact issue. I was a member of that >committee for about the first 10 meetings and at every meeting someone >brings up a problem exactly like you're describing - "I already have a >SCSI bus on my PC - why can't I buy brand X SCSI device and plug it in?" >God and ANSI willing, some day, you will. We already have this on the Amiga. We have a protocol called "scsidirect" which allows you to pass a control structure to the device driver, which will then send your command (and optionally retrieve any sense information). The structure used looks like this: /* ** (C) Copyright 1988 Commodore-Amiga, Inc. ** All Rights Reserved */ ... struct SCSICmd { UWORD *scsi_Data; /* word aligned data for SCSI Data Phase */ /* (optional) data need not be byte aligned */ /* (optional) data need not be bus accessable */ ULONG scsi_Length; /* even length of Data area */ /* (optional) data can have odd length */ /* (optional) data length can be > 2**24 */ ULONG scsi_Actual; /* actual Data used */ UBYTE *scsi_Command; /* SCSI Command (same options as scsi_Data) */ UWORD scsi_CmdLength; /* length of Command */ UWORD scsi_CmdActual; /* actual Command used */ UBYTE scsi_Flags; /* includes intended data direction */ UBYTE scsi_Status; /* SCSI status of command */ UBYTE *scsi_SenseData; /* sense data: filled if SCSIF_[OLD]AUTOSENSE */ /* is set and scsi_Status has CHECK CONDITION */ /* (bit 1) set */ UWORD scsi_SenseLength; /* size of scsi_SenseData, also bytes to */ /* request w/ SCSIF_AUTOSENSE, must be 4..255 */ UWORD scsi_SenseActual; /* amount actually fetched (0 means no sense) */ }; The scsi_Flags also specifies if you want automatic request sense, as well as direction (read or write). Most of our 3rd-party scsi controller developers are now using this, making things very nice. Combined with a standard partitioning method, we can take a drive from one 3rd party controller and plug it into a different controller, and all the partitions will appear (or even boot off it). You can take standard archive programs that talk to scsi tape drives, and use them on any controller, etc, etc. For hard drives, there are several programs for partitioning that read/write the partitioning standard (RigidDiskBlock). Most of these are quite good at doing all the setup of a drive for you automatically, using Inquiry, Read Capacity, etc via the scsidirect protocol. -- Randell Jesup, Keeper of AmigaDos, Commodore Engineering. {uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com BIX: rjesup Common phrase heard at Amiga Devcon '89: "It's in there!"