From: kegs@provalid.com   
      
   In article ,   
   I am Rob wrote:   
   >> I've explained how ProDOS 2.0.1 and later automatically remap   
   >> devices--if a slot 7 smartport-compatible device has 7 volumes, ProDOS   
   >> 2.0.01 will remap devices 3-7 to appear to be in other slots, since it   
   >> knows which slots are really empty. But on ProDOS versions before that,   
   >> devices like RamFAST would peek into the $BF10-$BF2F ProDOS device table   
   >> and insert their extra volumes as other slots, say slot 4 or slot 1.   
   >> This was a bad idea since multiple cards had no good way to prevent from   
   >> stomping all over each other, so most cards which could do this had a   
   >> way to disable it (and you should disable it, and use ProDOS 2.0.1 and   
   >> later, ProDOS 2.0.3 was the last official release).   
   >   
   >Right. I understand how Prodos works. I am trying to link how the   
   >software from the Open Apple magazine ties into Prodos.   
   >The software uses this calculation to find the SmartPort entry.   
   >   
   >AD=49152+7*256 ; $C700   
   >SM=AD+peek(AD+255)+3 ; $C7FF   
   >   
   >SM then has a value of $C70D.   
   >   
   >At this point, the software is the same for both real IIGS and   
   >emulators. I am unable though to confirm what is at $C7FF on a real   
   >IIGS. I am assuming it is the value $0A, then when 3 is added to it, it   
   >becomes $0D as well. This should mean that the SmartPort entry point on   
   >a real IIGS is at $C70D, correct?   
   >   
   >But is $C70D only available when a SCSI/SD/CFFA card is installed? I   
   >always thought the SmartPort was built into ROM on the IIGS. This might   
   >be where my confusion is.   
   >   
   >But still. it nags me that the OpenApple software makes no reference to   
   >calling Prodos in any way. If needed, I can post the software.   
      
   I'm going to state again, Smartport is two different things:   
      
   1) The disk port on the back of a IIgs and //c which allows plugging in   
    3.5" and 5.25" floppy drives (and other things).   
      
   2) A software convention for OS'es and hardware that lets old OS'es use   
    new hardware without needing special drivers. I call this the   
    Smartport firmware interface. This firmware lives in the   
    $Cnxx slot space. 5.25" floppies DO NOT support this interface.   
    3.5" floppy controllers, SCSI controllers, any mass storage   
    controller, and emulators wanting to support "hard drive" partitions   
    do support it. This is NOT in the ROM of the system, it's on   
    the plug-in card itself (the card ROM).   
      
   Smartport Firmware is at a level below ProDOS, but above hardware. $Cx0D   
   is one of the Smartport firmware entry points (the other, $Cx0A is a similar   
   interface, but more limited, and called the ProDOS firmware entry point,   
   but it's just a simplified version that's easier for ProDOS to support,   
   and it only support two drives in this slot).   
      
   On a IIgs, the 3.5" controller is in slot 5, the IIgs defaults to making   
   slot 5 map to the internal ROM and features. So the ROM of the machine   
   provides the code at $C5xx. And that code DOES support the Smartport   
   Firmware, so that ProDOS can use the 3.5" drives. If you make slot 5   
   "Your Card", then this goes away, and you cannot access the 3.5" drives   
   anymore.   
      
   The description of this firmware interface is the Apple IIgs Firmware   
   Reference, Chapter 7 "Smartport Firmware". This is the documentation for   
   how plug-in cards should work to allow OS'es to call $Cn0D and $Cn0A   
   to make the card work with ProDOS and GSOS. This says how OS'es can   
   detect a card supports the Smartport Firmware (which involves reading   
   $CnFF), and what cards need to support to be compatible.   
   Really, you should read that, it should make lots of things clearer.   
      
   So, if you are using a "Smartport Exerciser", this is calling $Cn0D   
   entry points for all cards it finds, and it does not need to make any   
   ProDOS calls at all, or look at any ProDOS. You could make a Smartport   
   Exerciser which ran under DOS 3.3. If you plug a SCSI card (or CFFA3000,   
   or whatever) into a II+, you could run that Smartport Exerciser under   
   DOS 3.3 and see the mounted volumes (well, it may not work, since this   
   is running code on the card, and that card may require a 65c02 or something).   
      
   In KEGS, the $C7xx space is not ROM, it's a fake card KEGS creates. It's   
   emulating a plug-in card providing hard drive access in slot 7. KEGS, out   
   of laziness, just copies the $C5xx ROM to this area, since the built-in   
   3.5" drive is a Smartport-compatible device. I don't know what Sweet16   
   does, and it shouldn't matter.   
      
   On a real IIgs, there is nothing at $C7FF. Slot 7 on a IIgs defaults to   
   "Your card", and if you don't have a card in slot 7, it will be nothing.   
   If you change the settings to make it "Appletalk in slot 7", then it will   
   be the Appletalk ROM in slot 7--and that does not have Smartport Firmware.   
      
   Kent   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|