Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

"I'm not afraid of dying, I just don't want to be there when it happens." -- Woody Allen


computers / comp.sys.apple2 / SmartPort Query

SubjectAuthor
* SmartPort QueryI am Rob
`* SmartPort QueryAntoine Vignau
 `* SmartPort QueryI am Rob
  `* SmartPort QueryI am Rob
   `* SmartPort QueryJoshua Bell
    `* SmartPort QueryI am Rob
     `* SmartPort QueryKent Dickey
      +* SmartPort QueryI am Rob
      |+- SmartPort QueryI am Rob
      |`* SmartPort QueryKent Dickey
      | `* SmartPort QueryI am Rob
      |  +- SmartPort QueryI am Rob
      |  `- SmartPort QueryKent Dickey
      `* SmartPort QueryOliver Schmidt
       `- SmartPort QueryI am Rob

1
SmartPort Query

<f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5492&group=comp.sys.apple2#5492

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a05:620a:8b15:b0:76d:9217:43e7 with SMTP id qw21-20020a05620a8b1500b0076d921743e7mr104120qkn.7.1692780029810;
Wed, 23 Aug 2023 01:40:29 -0700 (PDT)
X-Received: by 2002:a17:903:1c4:b0:1bc:7c69:925c with SMTP id
e4-20020a17090301c400b001bc7c69925cmr5405981plh.10.1692780029344; Wed, 23 Aug
2023 01:40:29 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Wed, 23 Aug 2023 01:40:28 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=207.195.86.45; posting-account=U4TNXwoAAABP4nIJHynAJZ69O_f3LY2g
NNTP-Posting-Host: 207.195.86.45
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>
Subject: SmartPort Query
From: gids.rs@sasktel.net (I am Rob)
Injection-Date: Wed, 23 Aug 2023 08:40:29 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2385
 by: I am Rob - Wed, 23 Aug 2023 08:40 UTC

I have come to the conclusion that Smartport in Slot #7 queries each slot for a device in this order:

Slot 7 Drv 1
Slot 7 Drv 2
Slot 4 Drv 1
Slot 4 Drv 2
Slot 1 Drv 1
Slot 1 Drv 2
Slot 2 Drv 1
Slot 2 Drv 2
Slot 3 Drv 1
Slot 6 Drv 1
Slot 6 Drv 2
Slot 3 Drv 2

for a total of 12 devices. In IIGS emulators, a hard drive disk image is automatically mounted to the next available Slot/Drive. If I have a boot disk in Slot 7 Drv 1, then mount another hard drive, it automatically is inserted as Slot 7 Drv 2 for device #2. And the next hard drive is seen as Slot 4 Drv 1, which makes this device #3.

But on a real IIGS, there may not be a Slot 7 Drv 2 if the volume in Drv 1 is less than 65536 blocks as I believe it is the firmware that sees drive #2.

Therefore, I believe inserting another hard drive in Slot #4 via SCSI/CFFA/SD should be seen as device #2 instead of device #3.

If that is the case, then the Smartport in the firmware of Slot #7 would need to keep a translation table somewhere in memory to know that Device #2 is in Slot 4 Drv 1 and not Slot 7 Drv 2.

Is this the correct assumption, or is it just as simple as the device number being in the order that I laid out above? I am asking what is the arrangement on a real IIGS, and not emulators, as I only have one CFFA card to test this scenario.

Re: SmartPort Query

<d14dea63-f9f0-4133-ba9c-7bff0b803b23n@googlegroups.com>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5496&group=comp.sys.apple2#5496

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a05:6214:190d:b0:649:afa4:5cae with SMTP id er13-20020a056214190d00b00649afa45caemr157944qvb.6.1692866926212;
Thu, 24 Aug 2023 01:48:46 -0700 (PDT)
X-Received: by 2002:a63:3582:0:b0:56a:c549:abb3 with SMTP id
c124-20020a633582000000b0056ac549abb3mr2393814pga.10.1692866925719; Thu, 24
Aug 2023 01:48:45 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Thu, 24 Aug 2023 01:48:45 -0700 (PDT)
In-Reply-To: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=194.196.255.92; posting-account=c4quJwoAAABUj_DOmUN3HIuXxN1tF7gT
NNTP-Posting-Host: 194.196.255.92
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d14dea63-f9f0-4133-ba9c-7bff0b803b23n@googlegroups.com>
Subject: Re: SmartPort Query
From: ntn.vignau@gmail.com (Antoine Vignau)
Injection-Date: Thu, 24 Aug 2023 08:48:46 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1229
 by: Antoine Vignau - Thu, 24 Aug 2023 08:48 UTC

Hi Rob,
Smartport deals with devices, not slots/drives.
Is your mapping done once ProDOS 8 is loaded?
Antoine

Re: SmartPort Query

<617c3da6-38d8-4656-b06e-9bbea05d6706n@googlegroups.com>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5499&group=comp.sys.apple2#5499

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a05:6214:3905:b0:63c:edce:c71e with SMTP id nh5-20020a056214390500b0063cedcec71emr257484qvb.3.1692885347406;
Thu, 24 Aug 2023 06:55:47 -0700 (PDT)
X-Received: by 2002:a17:903:2806:b0:1bc:5182:1ddb with SMTP id
kp6-20020a170903280600b001bc51821ddbmr5422936plb.3.1692885347192; Thu, 24 Aug
2023 06:55:47 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!1.us.feeder.erje.net!3.us.feeder.erje.net!feeder.erje.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Thu, 24 Aug 2023 06:55:46 -0700 (PDT)
In-Reply-To: <d14dea63-f9f0-4133-ba9c-7bff0b803b23n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=207.195.86.45; posting-account=U4TNXwoAAABP4nIJHynAJZ69O_f3LY2g
NNTP-Posting-Host: 207.195.86.45
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com> <d14dea63-f9f0-4133-ba9c-7bff0b803b23n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <617c3da6-38d8-4656-b06e-9bbea05d6706n@googlegroups.com>
Subject: Re: SmartPort Query
From: gids.rs@sasktel.net (I am Rob)
Injection-Date: Thu, 24 Aug 2023 13:55:47 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1866
 by: I am Rob - Thu, 24 Aug 2023 13:55 UTC

> 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.

Re: SmartPort Query

<940b6ab4-d361-41f2-81ee-ec38631aef40n@googlegroups.com>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5500&group=comp.sys.apple2#5500

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a05:6214:4c09:b0:63c:fc34:5bc0 with SMTP id qh9-20020a0562144c0900b0063cfc345bc0mr186460qvb.3.1692885513254;
Thu, 24 Aug 2023 06:58:33 -0700 (PDT)
X-Received: by 2002:a63:b50b:0:b0:563:4342:4307 with SMTP id
y11-20020a63b50b000000b0056343424307mr2839719pge.2.1692885512812; Thu, 24 Aug
2023 06:58:32 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Thu, 24 Aug 2023 06:58:32 -0700 (PDT)
In-Reply-To: <617c3da6-38d8-4656-b06e-9bbea05d6706n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=207.195.86.45; posting-account=U4TNXwoAAABP4nIJHynAJZ69O_f3LY2g
NNTP-Posting-Host: 207.195.86.45
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>
<d14dea63-f9f0-4133-ba9c-7bff0b803b23n@googlegroups.com> <617c3da6-38d8-4656-b06e-9bbea05d6706n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <940b6ab4-d361-41f2-81ee-ec38631aef40n@googlegroups.com>
Subject: Re: SmartPort Query
From: gids.rs@sasktel.net (I am Rob)
Injection-Date: Thu, 24 Aug 2023 13:58:33 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2034
 by: I am Rob - Thu, 24 Aug 2023 13:58 UTC

> > 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.

Re: SmartPort Query

<9dd32c50-4e31-4787-be7a-12cd9da65e76n@googlegroups.com>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5501&group=comp.sys.apple2#5501

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a05:620a:6401:b0:768:421b:a142 with SMTP id pz1-20020a05620a640100b00768421ba142mr323334qkn.4.1692928327543;
Thu, 24 Aug 2023 18:52:07 -0700 (PDT)
X-Received: by 2002:ad4:57a5:0:b0:640:32db:a78b with SMTP id
g5-20020ad457a5000000b0064032dba78bmr285129qvx.9.1692928327274; Thu, 24 Aug
2023 18:52:07 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Thu, 24 Aug 2023 18:52:06 -0700 (PDT)
In-Reply-To: <940b6ab4-d361-41f2-81ee-ec38631aef40n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=198.27.174.78; posting-account=j7exVwoAAAAsgD38YhRB05M2Iy6seT-Q
NNTP-Posting-Host: 198.27.174.78
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>
<d14dea63-f9f0-4133-ba9c-7bff0b803b23n@googlegroups.com> <617c3da6-38d8-4656-b06e-9bbea05d6706n@googlegroups.com>
<940b6ab4-d361-41f2-81ee-ec38631aef40n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9dd32c50-4e31-4787-be7a-12cd9da65e76n@googlegroups.com>
Subject: Re: SmartPort Query
From: inexorabletash@gmail.com (Joshua Bell)
Injection-Date: Fri, 25 Aug 2023 01:52:07 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3130
 by: Joshua Bell - Fri, 25 Aug 2023 01:52 UTC

On Thursday, August 24, 2023 at 6:58:34 AM UTC-7, I am Rob wrote:
> > > 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.

Re: SmartPort Query

<3d788c73-abbf-40a4-930d-1a2e0830ef38n@googlegroups.com>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5502&group=comp.sys.apple2#5502

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a05:620a:12e9:b0:76d:8cc1:5463 with SMTP id f9-20020a05620a12e900b0076d8cc15463mr306431qkl.15.1692939435058;
Thu, 24 Aug 2023 21:57:15 -0700 (PDT)
X-Received: by 2002:a05:620a:8d05:b0:76d:8404:eef7 with SMTP id
rb5-20020a05620a8d0500b0076d8404eef7mr300388qkn.10.1692939434828; Thu, 24 Aug
2023 21:57:14 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!3.us.feeder.erje.net!2.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Thu, 24 Aug 2023 21:57:14 -0700 (PDT)
In-Reply-To: <9dd32c50-4e31-4787-be7a-12cd9da65e76n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=207.195.86.119; posting-account=U4TNXwoAAABP4nIJHynAJZ69O_f3LY2g
NNTP-Posting-Host: 207.195.86.119
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>
<d14dea63-f9f0-4133-ba9c-7bff0b803b23n@googlegroups.com> <617c3da6-38d8-4656-b06e-9bbea05d6706n@googlegroups.com>
<940b6ab4-d361-41f2-81ee-ec38631aef40n@googlegroups.com> <9dd32c50-4e31-4787-be7a-12cd9da65e76n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3d788c73-abbf-40a4-930d-1a2e0830ef38n@googlegroups.com>
Subject: Re: SmartPort Query
From: gids.rs@sasktel.net (I am Rob)
Injection-Date: Fri, 25 Aug 2023 04:57:15 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: I am Rob - Fri, 25 Aug 2023 04:57 UTC

> > > > 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.

Re: SmartPort Query

<ucbpel$dp4p$1@dont-email.me>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5503&group=comp.sys.apple2#5503

  copy link   Newsgroups: comp.sys.apple2
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: kegs@provalid.com (Kent Dickey)
Newsgroups: comp.sys.apple2
Subject: Re: SmartPort Query
Date: Sat, 26 Aug 2023 02:53:09 -0000 (UTC)
Organization: provalid.com
Lines: 44
Message-ID: <ucbpel$dp4p$1@dont-email.me>
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com> <940b6ab4-d361-41f2-81ee-ec38631aef40n@googlegroups.com> <9dd32c50-4e31-4787-be7a-12cd9da65e76n@googlegroups.com> <3d788c73-abbf-40a4-930d-1a2e0830ef38n@googlegroups.com>
Injection-Date: Sat, 26 Aug 2023 02:53:09 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="1e5d98e5bad08bf1c4e191de14bd5f16";
logging-data="451737"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19w23O1Uz+G1BptlC/F80E1"
Cancel-Lock: sha1:eWiBy+9zBteyh7XCHCxIrnYxtdo=
X-Newsreader: trn 4.0-test76 (Apr 2, 2001)
Originator: kegs@provalid.com (Kent Dickey)
 by: Kent Dickey - Sat, 26 Aug 2023 02:53 UTC

In article <3d788c73-abbf-40a4-930d-1a2e0830ef38n@googlegroups.com>,
I am Rob <gids.rs@sasktel.net> wrote:
>> That's the only Slot/Drive to SmartPort device number mapping I'm aware o=
>f, 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 w=
>ith Prodos and there are no calls made by Prodos to the SmartPort. The cal=
>l to the SmartPort uses the same logic as Prodos, but they are not connecte=
>d.
>
>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 findi=
>ng the built-in SmartPort whereas the device number for Prodos are for the =
>external slots. Eventually though, the SmartPort has to access the externa=
>l slots where the SCSI/SD/CFFA card is with the hard drive connected. Ther=
>efore a device number assigned by the SmartPort needs to be mapped to a slo=
>t where a compatible SmartPort device is found. You can have a SCSI card i=
>n slot 7 and slot 2, skipping slots 4, 5 and 6, but the SmartPort assigns d=
>evice 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.

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.

Kent

Re: SmartPort Query

<57208c2d-251c-439a-bede-e8d2ef6c0d45n@googlegroups.com>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5504&group=comp.sys.apple2#5504

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a05:622a:1b8d:b0:40f:c886:ef3a with SMTP id bp13-20020a05622a1b8d00b0040fc886ef3amr505409qtb.3.1693022727372;
Fri, 25 Aug 2023 21:05:27 -0700 (PDT)
X-Received: by 2002:a05:6214:a44:b0:649:7b86:8aaa with SMTP id
ee4-20020a0562140a4400b006497b868aaamr606714qvb.0.1693022727160; Fri, 25 Aug
2023 21:05:27 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!tncsrv06.tnetconsulting.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Fri, 25 Aug 2023 21:05:26 -0700 (PDT)
In-Reply-To: <ucbpel$dp4p$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=207.195.86.119; posting-account=U4TNXwoAAABP4nIJHynAJZ69O_f3LY2g
NNTP-Posting-Host: 207.195.86.119
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>
<940b6ab4-d361-41f2-81ee-ec38631aef40n@googlegroups.com> <9dd32c50-4e31-4787-be7a-12cd9da65e76n@googlegroups.com>
<3d788c73-abbf-40a4-930d-1a2e0830ef38n@googlegroups.com> <ucbpel$dp4p$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <57208c2d-251c-439a-bede-e8d2ef6c0d45n@googlegroups.com>
Subject: Re: SmartPort Query
From: gids.rs@sasktel.net (I am Rob)
Injection-Date: Sat, 26 Aug 2023 04:05:27 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3441
 by: I am Rob - Sat, 26 Aug 2023 04:05 UTC

> 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.

Re: SmartPort Query

<a3b26698-d915-451b-aed7-a34888c3440bn@googlegroups.com>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5505&group=comp.sys.apple2#5505

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a05:620a:c4c:b0:765:a4f2:51ec with SMTP id u12-20020a05620a0c4c00b00765a4f251ecmr662905qki.4.1693023308779;
Fri, 25 Aug 2023 21:15:08 -0700 (PDT)
X-Received: by 2002:ad4:55cc:0:b0:63c:f455:6942 with SMTP id
bt12-20020ad455cc000000b0063cf4556942mr470803qvb.9.1693023308636; Fri, 25 Aug
2023 21:15:08 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Fri, 25 Aug 2023 21:15:08 -0700 (PDT)
In-Reply-To: <57208c2d-251c-439a-bede-e8d2ef6c0d45n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=207.195.86.119; posting-account=U4TNXwoAAABP4nIJHynAJZ69O_f3LY2g
NNTP-Posting-Host: 207.195.86.119
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>
<940b6ab4-d361-41f2-81ee-ec38631aef40n@googlegroups.com> <9dd32c50-4e31-4787-be7a-12cd9da65e76n@googlegroups.com>
<3d788c73-abbf-40a4-930d-1a2e0830ef38n@googlegroups.com> <ucbpel$dp4p$1@dont-email.me>
<57208c2d-251c-439a-bede-e8d2ef6c0d45n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a3b26698-d915-451b-aed7-a34888c3440bn@googlegroups.com>
Subject: Re: SmartPort Query
From: gids.rs@sasktel.net (I am Rob)
Injection-Date: Sat, 26 Aug 2023 04:15:08 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2600
 by: I am Rob - Sat, 26 Aug 2023 04:15 UTC

> 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.

I just realized that this can't be an emulator thing either as the OpenApple SmartPort Commander was written for the actual IIGS. So should work on real hardware. The last instruction in ROM at $C70D is a COP 81.

Is there a ROM dump somewhere for the co-processor that handles this call?

Re: SmartPort Query

<uccvb2$jg1b$1@dont-email.me>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5506&group=comp.sys.apple2#5506

  copy link   Newsgroups: comp.sys.apple2
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: kegs@provalid.com (Kent Dickey)
Newsgroups: comp.sys.apple2
Subject: Re: SmartPort Query
Date: Sat, 26 Aug 2023 13:39:46 -0000 (UTC)
Organization: provalid.com
Lines: 82
Message-ID: <uccvb2$jg1b$1@dont-email.me>
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com> <3d788c73-abbf-40a4-930d-1a2e0830ef38n@googlegroups.com> <ucbpel$dp4p$1@dont-email.me> <57208c2d-251c-439a-bede-e8d2ef6c0d45n@googlegroups.com>
Injection-Date: Sat, 26 Aug 2023 13:39:46 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="1e5d98e5bad08bf1c4e191de14bd5f16";
logging-data="639019"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/i4A4NbTbp5kgovjvHLU7c"
Cancel-Lock: sha1:5pHzCLPTGSiNwbGeEFTVdDcfAu8=
Originator: kegs@provalid.com (Kent Dickey)
X-Newsreader: trn 4.0-test76 (Apr 2, 2001)
 by: Kent Dickey - Sat, 26 Aug 2023 13:39 UTC

In article <57208c2d-251c-439a-bede-e8d2ef6c0d45n@googlegroups.com>,
I am Rob <gids.rs@sasktel.net> 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

Re: SmartPort Query

<a07798c6-9dcb-451d-b6bd-3467431f5e0an@googlegroups.com>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5508&group=comp.sys.apple2#5508

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a05:622a:1311:b0:412:1e76:f3e0 with SMTP id v17-20020a05622a131100b004121e76f3e0mr113114qtk.2.1693108512125;
Sat, 26 Aug 2023 20:55:12 -0700 (PDT)
X-Received: by 2002:a17:90b:b11:b0:263:3727:6045 with SMTP id
bf17-20020a17090b0b1100b0026337276045mr4663585pjb.4.1693108511677; Sat, 26
Aug 2023 20:55:11 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!fdn.fr!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Sat, 26 Aug 2023 20:55:10 -0700 (PDT)
In-Reply-To: <uccvb2$jg1b$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=207.195.86.118; posting-account=U4TNXwoAAABP4nIJHynAJZ69O_f3LY2g
NNTP-Posting-Host: 207.195.86.118
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>
<3d788c73-abbf-40a4-930d-1a2e0830ef38n@googlegroups.com> <ucbpel$dp4p$1@dont-email.me>
<57208c2d-251c-439a-bede-e8d2ef6c0d45n@googlegroups.com> <uccvb2$jg1b$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a07798c6-9dcb-451d-b6bd-3467431f5e0an@googlegroups.com>
Subject: Re: SmartPort Query
From: gids.rs@sasktel.net (I am Rob)
Injection-Date: Sun, 27 Aug 2023 03:55:12 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: I am Rob - Sun, 27 Aug 2023 03:55 UTC

> It's confusing if you post multiple messages.

I apologize. There is no "edit" button. I am using google groups.

> 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.

Don't have a monitor for my real IIGS at the moment, so makes it hard to cross-check the firmware routines with the emulators. So am using Sweet16, GSPlus and Kegs.
I am assuming that the SmartPort software Protocol is part of ROM. We can ignore the external hardware Smartport connections. Bit even without any cards in any slots, the SmartPort should still be available to be called, correct? This should return a "No devices available" or an error of some sort..

> Let's back up. What card do you have in slot 7?

Right now, just using the emulators mentioned above. But if my reall IIGS was up and running, it would have either the CFFA v2.0 or CFFA3000 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.

No. I am more trying to understand the software from the Open Apple magazine that accesses the SmartPort and displays each volumes information.

> 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.

Again, I am using emulators, but the ROM's (01 and 03) should have been ripped from a real IIGS. If you follow the code starting at $C70D in Kegs, just before the RTS there is a COP 81. This shows up in all the emulators. I may have misinterpreted what was being pulled off the stack and pushed back on to know where the RTS actually returns to. But my understanding is that the return address is after the 3 bytes that follow the JSR $C70D.


> 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).

Right. I understand how Prodos works. I am trying to link how the software from the Open Apple magazine ties into Prodos.
The software uses this calculation to find the SmartPort entry.

AD=49152+7*256 ; $C700
SM=AD+peek(AD+255)+3 ; $C7FF

SM then has a value of $C70D.

At this point, the software is the same for both real IIGS and emulators. I am unable though to confirm what is at $C7FF on a real IIGS. I am assuming it is the value $0A, then when 3 is added to it, it becomes $0D as well. This should mean that the SmartPort entry point on a real IIGS is at $C70D, correct?

But is $C70D only available when a SCSI/SD/CFFA card is installed? I always thought the SmartPort was built into ROM on the IIGS. This might be where my confusion is.

But still. it nags me that the OpenApple software makes no reference to calling Prodos in any way. If needed, I can post the software.

Re: SmartPort Query

<80679eda-60cd-4d89-aab5-3557e61b5b09n@googlegroups.com>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5509&group=comp.sys.apple2#5509

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:ad4:4f06:0:b0:63d:32a7:5257 with SMTP id fb6-20020ad44f06000000b0063d32a75257mr669179qvb.4.1693116345605;
Sat, 26 Aug 2023 23:05:45 -0700 (PDT)
X-Received: by 2002:a17:90a:b313:b0:26d:5ce:b77f with SMTP id
d19-20020a17090ab31300b0026d05ceb77fmr4724627pjr.1.1693116345099; Sat, 26 Aug
2023 23:05:45 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Sat, 26 Aug 2023 23:05:44 -0700 (PDT)
In-Reply-To: <a07798c6-9dcb-451d-b6bd-3467431f5e0an@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=207.195.86.118; posting-account=U4TNXwoAAABP4nIJHynAJZ69O_f3LY2g
NNTP-Posting-Host: 207.195.86.118
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>
<3d788c73-abbf-40a4-930d-1a2e0830ef38n@googlegroups.com> <ucbpel$dp4p$1@dont-email.me>
<57208c2d-251c-439a-bede-e8d2ef6c0d45n@googlegroups.com> <uccvb2$jg1b$1@dont-email.me>
<a07798c6-9dcb-451d-b6bd-3467431f5e0an@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <80679eda-60cd-4d89-aab5-3557e61b5b09n@googlegroups.com>
Subject: Re: SmartPort Query
From: gids.rs@sasktel.net (I am Rob)
Injection-Date: Sun, 27 Aug 2023 06:05:45 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: I am Rob - Sun, 27 Aug 2023 06:05 UTC

> No. I am more trying to understand the software from the Open Apple magazine that accesses the SmartPort and displays each volumes information.
> > 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 am using emulators, but the ROM's (01 and 03) should have been ripped from a real IIGS. If you follow the code starting at $C70D in Kegs, just before the RTS
> there is a COP 81. This shows up in all the emulators. I may have misinterpreted what was being pulled off the stack and pushed back on to know where the RTS actually > returns to. But my understanding is that the return address is after the 3 bytes that follow the JSR $C70D.

My mistake. I incorrectly assumed the C700 firmware was part of the ROM image that the emulators use. So I didn't check with the other emulator firmwares to compare the $C70D routine. It turns out that the COP 81 is only used in Sweet16.

But the confusion still remains as to where the SmartPort call taps into Prodos.

Re: SmartPort Query

<ucf7ro$ab0q$1@solani.org>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5511&group=comp.sys.apple2#5511

  copy link   Newsgroups: comp.sys.apple2
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: ol.sc@web.de (Oliver Schmidt)
Newsgroups: comp.sys.apple2
Subject: Re: SmartPort Query
Date: Sun, 27 Aug 2023 10:17:29 GMT
Message-ID: <ucf7ro$ab0q$1@solani.org>
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com> <940b6ab4-d361-41f2-81ee-ec38631aef40n@googlegroups.com> <9dd32c50-4e31-4787-be7a-12cd9da65e76n@googlegroups.com> <3d788c73-abbf-40a4-930d-1a2e0830ef38n@googlegroups.com> <ucbpel$dp4p$1@dont-email.me>
Injection-Date: Sun, 27 Aug 2023 10:17:28 -0000 (UTC)
Injection-Info: solani.org;
logging-data="338970"; mail-complaints-to="abuse@news.solani.org"
Cancel-Lock: sha1:XpyBOSL5NTrF6UbjGmuYWiioq4U=
X-Newsreader: Forte Free Agent 1.21/32.243
X-User-ID: eJwNwgERwDAIA0BLpCVkyOko+Jew3T93IEoeDOdwHtBt7q0X6KoynoXobb3GjxLq/EHUKD0+JCkRCg==
 by: Oliver Schmidt - Sun, 27 Aug 2023 10:17 UTC

Hi Kent,

>The table you are interested in is handled by ProDOS 8 in the System Global
>Page at $BF10-$BF2F.

My understanding is that for the SmartPort implementation built into
the IIgs, there's another indirection through a table at $E1/0FC0.

Regards,
Oliver

Re: SmartPort Query

<662c1b11-fd0c-4a42-adfc-ee9889169155n@googlegroups.com>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5512&group=comp.sys.apple2#5512

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a05:6214:162c:b0:641:89b5:e1e8 with SMTP id e12-20020a056214162c00b0064189b5e1e8mr810147qvw.13.1693180046122;
Sun, 27 Aug 2023 16:47:26 -0700 (PDT)
X-Received: by 2002:a05:622a:174c:b0:412:2493:d7fb with SMTP id
l12-20020a05622a174c00b004122493d7fbmr116455qtk.0.1693180045988; Sun, 27 Aug
2023 16:47:25 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Sun, 27 Aug 2023 16:47:25 -0700 (PDT)
In-Reply-To: <ucf7ro$ab0q$1@solani.org>
Injection-Info: google-groups.googlegroups.com; posting-host=207.195.86.118; posting-account=U4TNXwoAAABP4nIJHynAJZ69O_f3LY2g
NNTP-Posting-Host: 207.195.86.118
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com>
<940b6ab4-d361-41f2-81ee-ec38631aef40n@googlegroups.com> <9dd32c50-4e31-4787-be7a-12cd9da65e76n@googlegroups.com>
<3d788c73-abbf-40a4-930d-1a2e0830ef38n@googlegroups.com> <ucbpel$dp4p$1@dont-email.me>
<ucf7ro$ab0q$1@solani.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <662c1b11-fd0c-4a42-adfc-ee9889169155n@googlegroups.com>
Subject: Re: SmartPort Query
From: gids.rs@sasktel.net (I am Rob)
Injection-Date: Sun, 27 Aug 2023 23:47:26 +0000
Content-Type: text/plain; charset="UTF-8"
 by: I am Rob - Sun, 27 Aug 2023 23:47 UTC

> >The table you are interested in is handled by ProDOS 8 in the System Global
> >Page at $BF10-$BF2F.
> My understanding is that for the SmartPort implementation built into
> the IIgs, there's another indirection through a table at $E1/0FC0.

If that is the case, then I can now see how Prodos might initialize that table. Thanks for that Oliver. I can now follow the code to see where it leads.

Re: SmartPort Query

<uch1b5$1hgvm$1@dont-email.me>

  copy mid

https://news.novabbs.org/computers/article-flat.php?id=5513&group=comp.sys.apple2#5513

  copy link   Newsgroups: comp.sys.apple2
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: kegs@provalid.com (Kent Dickey)
Newsgroups: comp.sys.apple2
Subject: Re: SmartPort Query
Date: Mon, 28 Aug 2023 02:38:29 -0000 (UTC)
Organization: provalid.com
Lines: 90
Message-ID: <uch1b5$1hgvm$1@dont-email.me>
References: <f90f1538-dd1f-4bfe-a035-d71f21fc971an@googlegroups.com> <57208c2d-251c-439a-bede-e8d2ef6c0d45n@googlegroups.com> <uccvb2$jg1b$1@dont-email.me> <a07798c6-9dcb-451d-b6bd-3467431f5e0an@googlegroups.com>
Injection-Date: Mon, 28 Aug 2023 02:38:29 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="8ab312727523386cef79aa53cc43a2e9";
logging-data="1623030"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+GQq+DrPJUv6tc00gwmIqf"
Cancel-Lock: sha1:+fhVdOu5e++pKdkAsVTY5flg1vk=
X-Newsreader: trn 4.0-test76 (Apr 2, 2001)
Originator: kegs@provalid.com (Kent Dickey)
 by: Kent Dickey - Mon, 28 Aug 2023 02:38 UTC

In article <a07798c6-9dcb-451d-b6bd-3467431f5e0an@googlegroups.com>,
I am Rob <gids.rs@sasktel.net> wrote:
>> 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).
>
>Right. I understand how Prodos works. I am trying to link how the
>software from the Open Apple magazine ties into Prodos.
>The software uses this calculation to find the SmartPort entry.
>
>AD=49152+7*256 ; $C700
>SM=AD+peek(AD+255)+3 ; $C7FF
>
>SM then has a value of $C70D.
>
>At this point, the software is the same for both real IIGS and
>emulators. I am unable though to confirm what is at $C7FF on a real
>IIGS. I am assuming it is the value $0A, then when 3 is added to it, it
>becomes $0D as well. This should mean that the SmartPort entry point on
>a real IIGS is at $C70D, correct?
>
>But is $C70D only available when a SCSI/SD/CFFA card is installed? I
>always thought the SmartPort was built into ROM on the IIGS. This might
>be where my confusion is.
>
>But still. it nags me that the OpenApple software makes no reference to
>calling Prodos in any way. If needed, I can post the software.

I'm going to state again, Smartport is two different things:

1) The disk port on the back of a IIgs and //c which allows plugging in
3.5" and 5.25" floppy drives (and other things).

2) A software convention for OS'es and hardware that lets old OS'es use
new hardware without needing special drivers. I call this the
Smartport firmware interface. This firmware lives in the
$Cnxx slot space. 5.25" floppies DO NOT support this interface.
3.5" floppy controllers, SCSI controllers, any mass storage
controller, and emulators wanting to support "hard drive" partitions
do support it. This is NOT in the ROM of the system, it's on
the plug-in card itself (the card ROM).

Smartport Firmware is at a level below ProDOS, but above hardware. $Cx0D
is one of the Smartport firmware entry points (the other, $Cx0A is a similar
interface, but more limited, and called the ProDOS firmware entry point,
but it's just a simplified version that's easier for ProDOS to support,
and it only support two drives in this slot).

On a IIgs, the 3.5" controller is in slot 5, the IIgs defaults to making
slot 5 map to the internal ROM and features. So the ROM of the machine
provides the code at $C5xx. And that code DOES support the Smartport
Firmware, so that ProDOS can use the 3.5" drives. If you make slot 5
"Your Card", then this goes away, and you cannot access the 3.5" drives
anymore.

The description of this firmware interface is the Apple IIgs Firmware
Reference, Chapter 7 "Smartport Firmware". This is the documentation for
how plug-in cards should work to allow OS'es to call $Cn0D and $Cn0A
to make the card work with ProDOS and GSOS. This says how OS'es can
detect a card supports the Smartport Firmware (which involves reading
$CnFF), and what cards need to support to be compatible.
Really, you should read that, it should make lots of things clearer.

So, if you are using a "Smartport Exerciser", this is calling $Cn0D
entry points for all cards it finds, and it does not need to make any
ProDOS calls at all, or look at any ProDOS. You could make a Smartport
Exerciser which ran under DOS 3.3. If you plug a SCSI card (or CFFA3000,
or whatever) into a II+, you could run that Smartport Exerciser under
DOS 3.3 and see the mounted volumes (well, it may not work, since this
is running code on the card, and that card may require a 65c02 or something).

In KEGS, the $C7xx space is not ROM, it's a fake card KEGS creates. It's
emulating a plug-in card providing hard drive access in slot 7. KEGS, out
of laziness, just copies the $C5xx ROM to this area, since the built-in
3.5" drive is a Smartport-compatible device. I don't know what Sweet16
does, and it shouldn't matter.

On a real IIgs, there is nothing at $C7FF. Slot 7 on a IIgs defaults to
"Your card", and if you don't have a card in slot 7, it will be nothing.
If you change the settings to make it "Appletalk in slot 7", then it will
be the Appletalk ROM in slot 7--and that does not have Smartport Firmware.

Kent

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor