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