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,292 of 56,720   
   I am Rob to All   
   Re: SmartPort Query   
   25 Aug 23 21:05:26   
   
   From: gids.rs@sasktel.net   
      
   > Devices which support Smartport need to support a ProDOS entry point as    
   > well, where the ProDOS entry point is $Cx0A and Smartport is at $Cx0D.    
   >    
   > The table you are interested in is handled by ProDOS 8 in the System Global    
   > Page at $BF10-$BF2F. It contains the ProDOS entry points for each device,    
   > indexed for slot 1...7 and Drive 1...2 (so 14 total devices supported).    
   > For a IIgs, slot 5 goes to $C50A. Slot 6 (for a Disk II) goes to $D000.    
   > When $D000 is called, code there interprets the ProDOS values in ZP and    
   > effectively calls RWTS and reads the block indicated.    
   > And for KEGS with 7 devices in slot 7, slot 7 drives 1 and 2 point to    
   > $C70A, but the remapped devices are in other slots and go to $FD08.    
   > The ProDOS driver at $FD08 converts the ProDOS call (cmd at $42, unit at    
   > $43, buffer at $44,45 and block at $46,$47) into a Smartport compatible    
   > format and jumps to the address it pulls from $FD6E,X and $FD7D,X where    
   > X = Unit >> 4. So ProDOS will make Smartport calls, and this is how it    
   > handles more than 2 devices per slot. This is internal to ProDOS 8.    
   > The addresses I gave are for ProDOS 2.0.3 which is what I run usually.    
      
   Thanks for replying Kent.    
      
   The thing is, Prodos is not being called to get SmartPort information.  I am   
   using the SmartPort Commander from OpenApple January 1987 which calls $C70D   
   directly.  We can skip slot 5 for now.   
      
   The routine is just   
      
    JSR $C70D   
    DFB 00   ; command   
    DW Parm_List   
    RTS   
      
   PARM_LIST DFB 3    ; # of parms   
    DFB 0   ; unit #   
    DW CTRL_LIST   
    DFB 0    ; sub command   
      
   CTRL_LIST DFB 00   
      
   As a memory dump, it is just:   
      
   300: 20 0D C7 00 07 03 60 03 00 0C 03 00 00   
      
   If this is called directly, it will return the number of devices for slot #7   
   at $030C.  Is it maybe just an emulator thing?  This routine works in Sweet16,   
   GSPort and Kegs, although the number of devices returned is different for each   
   emulator.  But    
   still, are the emulators accessing the table in Prodos?  They shouldn't be.   
      
   --- 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