home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.sys.apple2      Discussion about Apple II micros      56,720 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 56,289 of 56,720   
   I am Rob to All   
   Re: SmartPort Query   
   24 Aug 23 21:57:14   
   
   From: gids.rs@sasktel.net   
      
   > > > > Hi Rob,    
   > > > > Smartport deals with devices, not slots/drives.    
   > > > > Is your mapping done once ProDOS 8 is loaded?    
   > > > > Antoine    
   > > > Right. But even the Smartport would need to use the softswitches to   
   access a slot card. Which should mean there has to be a mapping of some kind   
   to know which slot a device is in. I have come across an instance where it   
   would be a benefit to be    
   able to translate between the two.    
   > > >    
   > > > As far as I know the mapping has nothing to do with Prodos 8. If you   
   follow the routine at $C70D (entry to the Smartport), it ends in COP 82. This   
   co-processor routine must have a routine to map a slot to a device number.    
   > > I should add that the SmartPort device number does not match Prodos device   
   table at $BF30.   
   > ProDOS-8 2.0.x (and unofficial 2.4 and FX) construct an internal mapping   
   from ProDOS unit number (the things listed in DEVLST at $BF30, which encode   
   the mapped slot/drive, which is exposed via BASIC.SYSTEM but also needed for   
   the DEVADR table at $BF10)    
   to the SmartPort device number. This mapping is not exposed externally, and   
   the location in memory changes from version to version of ProDOS. When you   
   make an MLI call with a unit number ProDOS will consult the table to figure   
   out what device number to    
   use for the SmartPort call. In the ProDOS sources the table is spunit (and   
   also spvectlo/spvecthi).    
   >    
   > ProDOS 1.2...1.9 mirror a 3rd and 4th device in S5 to S2,D1/2 only, and   
   leave DEVADR entries pointing at $C5xx. There's no need for a table, just   
   hardcoded logic.    
   >    
   > That's the only Slot/Drive to SmartPort device number mapping I'm aware of,   
   but I'm still a n00b. Apologies if this is off topic.   
      
   That is incorrect.  Prodos does not know anything about SmartPort and vice   
   versa.  When you do a status call with SmartPort, there is no interaction with   
   Prodos and there are no calls made by Prodos to the SmartPort.  The call to   
   the SmartPort uses the    
   same logic as Prodos, but they are not connected.   
      
   The only device numbers that are used in the Smartport are for slots 5 and 7   
   (device numbers being 50 and 70).  But these device numbers are for finding   
   the built-in SmartPort whereas the device number for Prodos are for the   
   external slots.  Eventually    
   though, the SmartPort has to access the external slots where the SCSI/SD/CFFA   
   card is with the hard drive connected.  Therefore a device number assigned by   
   the SmartPort needs to be mapped to a slot where a compatible SmartPort device   
   is found.  You can    
   have a SCSI card in slot 7 and slot 2, skipping slots 4, 5 and 6, but the   
   SmartPort assigns device number of 1 and 2 for those two used slots.    
   Therefore a table has to be saved somewhere in memory to match a device number   
   with the slot so the correct    
   softswitches can be accessed for that device.   
      
   I am trying to locate that table in memory.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca