Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!swrinde!ucsd!ucsdhub!celit!rory From: rory@fps.com (Thomas (Rory) Bolt) Newsgroups: comp.sys.mac.hardware Subject: Re: Sharing the SCSI bus? Message-ID: <4945@celit.fps.com> Date: 6 Dec 89 19:30:11 GMT References: <1989Nov29.030959.27969@Neon.Stanford.EDU> <8252@pogo.WV.TEK.COM> <1989Dec5.165138.5192@Neon.Stanford.EDU> Sender: daemon@fps.com Reply-To: rory@fps.com (Thomas (Rory) Bolt) Distribution: na Organization: Bolt Technologies Lines: 78 In article <1989Dec5.165138.5192@Neon.Stanford.EDU> kaufman@Neon.Stanford.EDU (Marc T. Kaufman) writes: >In article <8252@pogo.WV.TEK.COM> daveb@pogo.WV.TEK.COM (Dave Butler) writes: >>I'm finding this discussion of Apple SCSI quite interesting. I've been trying >>to determine the differences between Apple SCSI and ANSI SCSI. So far, I've >>been told that Apple SCSI doesn't use the ATN line. Is this true, and if so, >>how does the initiator send messages? > >The ATN line is usable (note that I didn't say "used"). The MacOS provides >a SelectWithATN command, but only allows 1 byte to be sent before ATN is >negated - thus precluding IDENTIFY. > Why would this preclude the IDENTIFY message? The standard IDENTIFY message is only one byte. The EXTENDED IDENTIFY message may be several bytes, however, this is a moot point anyway as I will explain below. >>how does the initiator send messages? Also the book "Inside Macintosh Vol IV" >>states on page 286 that Mac implements both arbitration and disconnect / >>reselection; I find it disturbing to find out that this is not so. > >I had never noticed that. You're right, it does. They lied. > No, Inside Macintosh is correct. You do not understand SCSI protocol. >>anyone please tell me the specific differences between Apple and ANSI SCSI, as >>well as any other "gotchas" (like not implementing arbitration, when the >>documentation says otherwise)? > The Macintosh DOES support arbitration. (via SCSIget) >> PS. If there is an actual document with this information, I'd love to >> know its name, and how to get it. > >I suggest "Mac Nosy" by Jasik Designs. > I suggest the ANSI SCSI specification X3T9. The problem is that Apple provided a low level interface to the SCSI protocol chip. This means that people who wish to write SCSI device drivers MUST understand the SCSI protocol. "Mac Nosy" will tell you what the Macintosh SCSI manager does, NOT HOW TO USE IT. >Marc Kaufman (kaufman@Neon.stanford.edu) The attention line of the SCSI bus is used to signify that the initiator is capable of handling messages. Specifically, if the initiator asserts attention during the selection sequence to REQUEST that the target go to a message out phase. If the target is capable of supporting messages other than COMMAND COMPLETE, it will respond to this request by proceeding to the message out phase after selection. As I have stated in my previous posting, the TARGET controls the bus phase sequence AND determines how many bytes of data should be sent after selection has occured. This means that the target will determine when to disconnect/reconnect (once the initiator has indicated it supports this), how many bytes of message data it wants, etc. THIS IS WHY THE ATTENTION LINE EXISTS, SO THAT THE INITIATOR (WHO IS NO LONGER BUS MASTER) CAN SIGNAL THE TARGET (WHICH IS BUS MASTER) THAT IT WANTS A MESSAGE OUT PHASE. The attention line is used only to request a message phase, it DOES NOT have to be asserted for every byte of the message and does not guarantee that a message phase will occur. The Macintosh SCSI manager does supply all the pieces necessary to support disconnect/reconnect. I have personally implemented it for several companies. AS I SAID IN MY PREVIOUS POSTING, PLEASE STOP SPREADING MIS-INFORMATION. I highly advise you to read the ANSI specification for SCSI and make sure you UNDERSTAND it before you post further on this subject. Apple has provided all of the tools neccessary to support a fully ANSI compliant, single initiator, arbitrating system capable of supporting disconnect/reconnect. Individual driver writers choose how much they are willing to support. KNOWN PROBLEMS/LIMITATIONS: 1) Apple's ROM boot code is not very robust, boot will fail if another initiator is using the bus. 2) The system will only be as robust as the least compliant driver allows. 3) Using Apple's traps incurs moderate overhead for implementations which handle the SCSI protocol as a finite state automata. This overhead may be insignificant compared with the access time of the device. Rory Bolt (rory@fps.com)