>> >> ProDOS has an internal mapping table which moved around in earlier versions of ProDOS,
>> > and whose format changed in 2.5. Smart Port devices are numbered 1, 2, 3, ... so they can
>> > live anywhere in the slot space from ProDOS's point of view.
>> >
>> > Is there a table that matches the device number with the slots somewhere in memory? Or is
>> > there some math calculation that is used?
>> >
>> > Normally there would be a device in slot #7 as the boot device and it would be designated
>> > Device #1. But another device card can be in any of the other slots supported by the
>> > SmartPort Protocol as Device #2. Therefore the assumption has to be made that there is a
>> > table some where that matches what slot device #2 is in. I am trying to locate that table.
>> >
>> > The software that I am trying to understand is from OpenApple 1987. It makes no calls to
>> > Prodos, yet it can report the number of devices and all their information through the
>> > SmartPort Protocol at $C70D. What is even more bizarre, is that it recognizes and reports
>> > the correct number of blocks on a 2 gig disk image whether it be formatted to Prodos or
>> > HFS. This information is not stored in a volumes header.
>> >
>> > Is the SmartPort Protocol built into the IIGS ROM, or is it in a slot cards firmware, such
>> > as a SCSI card or CFFA3000?
>> Short answer: both. It's built into the card's firmware. The IIgs has
>> it built-in if slot 5 is set to Smart Port.
>
> Disregard the slot 5 Smartport. I am more interested in the slot 7 Smartport with 12
> devices and support for 2 gig volumes.
What device is in your slot 7?
It's that device's firmware that is going to determine where the device
list is stored.
>> I think you're referring to the January 1987 article on pages
>> 2.89-2.92. Is that right?
>
> Don't know. The software just has the date in the REM statements.
>
>
>> The article talks about various peripherals that support the Smartport
>> protocol converter. Could be an Apple 3.5 Controller (LIRON) card that
>> supports only the UniDisk 3.5, an Apple Memory Expansion (slinky) board,
>> an Apple SCSI card, or the IIgs "slot 5" Smartport protocol converter.
>>
>> Since then, third party product such as the CFFA also support the
>> Smartport protocol converter.
>
>> All of these products maintain the Smartport device list internally and
>> in their own way. This device-list is separate from the ProDOS device
>> list.
>
> I have trouble with statements like these as this makes the assumption that the SmartPort
> device has RAM to store the device list. I have checked the screen holes for the order of
> the devices. And like you said, the SmartPort device list is separate from the Prodos
> device list. Where in RAM is it stored?
It's device-dependent. Long ago I disassemmbled some of the Apple
High-Speed SCSI card's firmware. The HS SCSI card has an 8kB static RAM
on it, that it can map into $C800-$CBFF. It maps its ROM into
$CC00-$CFFF. So, that SmartPort protocol converter, at least, has the
resources to store its own device list. (It also uses the RAM for
maintaining the partition-map from connected SCSI devices.)
>> Also, there is no guarantee that there is a Smartport
>> protocol-supporting card in slot #7. The Open-Apple program scans the
>> slots in lines 100-200 (page 2.90b).
>
> If you check the machine language part of the program, you can see that it calls the
> SmartPort at $C70D. But if there is another SCSI card in slot 2, or slot 4, that device
> gets assigned device #2. But there has to be a table that indicates which slot device #2
> is in. Where is that table or list?
I understand the question, and I agree there ought to be a table
*somewhere*. There also needs to be an agreed-upon arbitration protocol
if there are multiple SmartPort protocol-converters installed in the
same machine, so they don't stomp on each other.
I suspect the CFFA3000 also has RAM to maintain its list of devices. I
ought to dig into that some day.
>> The Open-Apple program is finding out all reported information from the
>> discovered Smartport protocol-converter-supporting peripheral by
>> examining the firmware ID bytes. It then calls the Smartport
>> entry-point in the card's $Csxx firmware.
>
> That is fine if there is only 1 SmartPort device. But a second SmartPort device can be in
> any of the other slots supported by SmartPort protocol. The slots checked in order should
> be S7D1, S7D2, S4D1, S4D2, S2D1, S2D2, S1D1, S1D2, S3D1, S6D1, S6D2, S3D2. Device #2 can
> be in any of the slots after S7D1. Therefore there must be a table to indicate which slot
> device #2 is in so that device can be accesssed using that slots softswitches.
> Put another way. When device #2 is called by the SmartPort Protocol, there should be a
> table somewhere that points to the device in slot 2 instead of slot 4. I have trouble
> believing that the slots get scanned every time in the sequence mentioned above to confirm
> there is a SmartPort device in that slot. If one were to have 12 devices installed, that
> is a lot of wear and tear just to find the slot that the 12th device is in.
I suspect the scan only happens when the card is first accessed, unless
there are identifiable conditions under which it does a rescan. I doubt
it does it often nor would it do it everytime.
I'm curious to know what you discover.