Path: utzoo!attcan!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!wuarchive!zaphod.mps.ohio-state.edu!usc!apple!mattd From: mattd@Apple.COM (Matt Deatherage) Newsgroups: comp.sys.apple2 Subject: Re: Two questions Message-ID: <44644@apple.Apple.COM> Date: 9 Sep 90 19:04:26 GMT References: <1990Sep8.073212.2278@wrkof.incom.de> Organization: Apple Computer Inc., Cupertino, CA Lines: 54 In article <1990Sep8.073212.2278@wrkof.incom.de> spock@wrkof.incom.de (Martin Georg) writes: > >1) One friend tried to use a Laser 800KB Unidisk-compatible disk drive >connected via the UCD on his IIgs under GS/OS (System 5.02). On boot- >up, the System popped up a message stating something like: Unidisk re- >quires a driver. Please install driver and reboot system". He did that >and rebooted but the message still popped up. Of course the driver was >turn on (active) using the Finder's IconInfo dialog. >Does someone use this configuration on his IIgs??? Is there a special >driver needed (I think the system will use a generated driver if no >special driver is available...). Is there a special Laser 3.5"-driver >available??? > This is partly Central Point's fault and partly Apple's fault, and partly the fault of copy-protected programs. For every SmartPort device there is a type and a subtype. The type identifies the generic type of device connected (such as "3.5 disk" or "SCSI hard disk"). Unfortunately, there's no place in the definition to identify the *specific* kind of device (such as "Unidisk 3.5" or "Apple 3.5 drive"). What some people did, encouraged by faulty Apple documentation, is look at the "subtype" byte which is really a byte of flags. Bit 7 is set if the device supports Extended SmartPort, bit 6 is set if the device supports disk-switched errors, etc. You can probably see this coming - you can't use the same byte as an ID byte and as a byte of flags. For example, the built-in drive in the IIc Plus has characteritics that make its subtype be $00. That's the same as the documented subtype of the Unidisk, but the IIc Plus drive does not support the Unidisk device-specific calls. Central Point deliberately chose to return subtype $C0 for Apple 3.5 drives attached to the UDC so copy-protected programs looking for the $C0 subtype byte would run correctly. Unfortunately, their interface doesn't support the Extended SmartPort protocol one of those bits says is present. When GS/OS tries to use it, the system crashes. The UniDisk driver adds more disk-switched detection to what's in the drive and as such will only work when attached to the internal port (GS/OS slot number $0005). As the generated drivers are created (which one would be for something attached to a UDC, as it can't be in internal slot 5), the Device Dispatcher tries to kick out generated drivers for Apple peripherals that it knows need loaded drivers. The UniDisk is one of these - without a loaded driver you will eventually confuse the drive, miss disk switches and probably write cached information (like directories) to the wrong disk. What Central Point needs to do is write a generic 3.5" driver that claims all the 3.5" drives attached to the UDC and handles them appropriately. -- ============================================================================ Matt Deatherage, Apple Computer, Inc. | "The opinions represented here are Developer Technical Support, Apple II | not necessarily those of Apple Group. Personal mail only, please. | Computer, Inc. Remember that." ============================================================================