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,294 of 56,720   
   Kent Dickey to gids.rs@sasktel.net   
   Re: SmartPort Query   
   26 Aug 23 13:39:46   
   
   From: kegs@provalid.com   
      
   In article <57208c2d-251c-439a-bede-e8d2ef6c0d45n@googlegroups.com>,   
   I am Rob   wrote:   
   >   
   >> 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.   
      
   It's confusing if you post multiple messages.   
      
   Calling $C70D is the Smartport firmware entry point for a device in slot   
   7 which supports Smartport calls.  If you put a RamFAST SCSI in slot 7,   
   then that entry point will work and it will lost all the mountable   
   volumes on that SCSI card.   
      
   Let's back up.  What card do you have in slot 7?   
      
   Emulators simply support this type of entry point to provide disk images   
   in an easy way that ProDOS fully understands.  Unless you have a   
   particular interest in emulators and how they work, you can ignore   
   emulators.   
      
   You keep mentioning COP $82, but that's something only you are seeing,   
   so you'll have to be more specific.  COP $82 has nothing to do with   
   Smartport in general, nothing to do with the KEGS emulator in specific,   
   and I suspect it isn't really there.   
      
   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).   
      
   Kent   
      
   --- 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