Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

It's hard to think of you as the end result of millions of years of evolution.


devel / comp.emulators.apple2 / Re: SmartPort device assignments

SubjectAuthor
* SmartPort device assignmentsI am Rob
`* Re: SmartPort device assignmentsKent Dickey
 `* Re: SmartPort device assignmentsI am Rob
  +- Re: SmartPort device assignmentsI am Rob
  `* Re: SmartPort device assignmentsI am Rob
   `* Re: SmartPort device assignmentsJerry Penner
    `* Re: SmartPort device assignmentsI am Rob
     `- Re: SmartPort device assignmentsJerry Penner

1
SmartPort device assignments

<f5340119-5b7f-4100-9c0e-5b98ca77bd4en@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=449&group=comp.emulators.apple2#449

 copy link   Newsgroups: comp.emulators.apple2
X-Received: by 2002:ad4:4aed:0:b0:649:e981:2552 with SMTP id cp13-20020ad44aed000000b00649e9812552mr208205qvb.10.1692885976790;
Thu, 24 Aug 2023 07:06:16 -0700 (PDT)
X-Received: by 2002:a05:6a00:1f0e:b0:68b:dab2:b65e with SMTP id
be14-20020a056a001f0e00b0068bdab2b65emr1254717pfb.2.1692885976515; Thu, 24
Aug 2023 07:06:16 -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.emulators.apple2
Date: Thu, 24 Aug 2023 07:06:15 -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: <f5340119-5b7f-4100-9c0e-5b98ca77bd4en@googlegroups.com>
Subject: SmartPort device assignments
From: gids...@sasktel.net (I am Rob)
Injection-Date: Thu, 24 Aug 2023 14:06:16 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1616
 by: I am Rob - Thu, 24 Aug 2023 14:06 UTC

Does any one know how the SmartPort assigns a slot/drive to a device number? Is it just as simple as using a look-up table in the order of:

Dev 1 = Slot 7 Drv 1
Dev 2 = Slot 7 Drv 2
Dev 3 = Slot 4 Drv 1
Dev 4 = Slot 4 Drv 2
Dev 5 = Slot 1 Drv 1
Dev 6 = Slot 1 Drv 2
Dev 7 = Slot 2 Drv 1
Dev 8 = Slot 2 Drv 2
Dev 9 = Slot 3 Drv 1
Dev 10 = Slot 6 Drv 1
Dev 11 = Slot 6 Drv 2
Dev 12 = Slot 3 Drv 2

or is there a translation table stored somewhere in memory?

If Kent will respond, I would like to know how you handled the COP 82 instruction at the end of the $C70D routine (entry to SmartPort) in your Kegs emulator,

Re: SmartPort device assignments

<uc8a63$3jg4g$1@dont-email.me>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=450&group=comp.emulators.apple2#450

 copy link   Newsgroups: comp.emulators.apple2
Path: i2pn2.org!i2pn.org!paganini.bofh.team!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: keg...@provalid.com (Kent Dickey)
Newsgroups: comp.emulators.apple2
Subject: Re: SmartPort device assignments
Date: Thu, 24 Aug 2023 19:14:11 -0000 (UTC)
Organization: provalid.com
Lines: 60
Message-ID: <uc8a63$3jg4g$1@dont-email.me>
References: <f5340119-5b7f-4100-9c0e-5b98ca77bd4en@googlegroups.com>
Injection-Date: Thu, 24 Aug 2023 19:14:11 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="caf09074e0d02f3d3b322fb39e8c6a0e";
logging-data="3784848"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+ApIOwA08NODbzLp5oj5JR"
Cancel-Lock: sha1:vPtIZ6rbJA7hxmZAWwh92j2eVxQ=
X-Newsreader: trn 4.0-test76 (Apr 2, 2001)
Originator: kegs@provalid.com (Kent Dickey)
 by: Kent Dickey - Thu, 24 Aug 2023 19:14 UTC

In article <f5340119-5b7f-4100-9c0e-5b98ca77bd4en@googlegroups.com>,
I am Rob <gids.rs@sasktel.net> wrote:
>Does any one know how the SmartPort assigns a slot/drive to a device
>number? Is it just as simple as using a look-up table in the order of:
>
>Dev 1 = Slot 7 Drv 1
>Dev 2 = Slot 7 Drv 2
>Dev 3 = Slot 4 Drv 1
>Dev 4 = Slot 4 Drv 2
>Dev 5 = Slot 1 Drv 1
>Dev 6 = Slot 1 Drv 2
>Dev 7 = Slot 2 Drv 1
>Dev 8 = Slot 2 Drv 2
>Dev 9 = Slot 3 Drv 1
>Dev 10 = Slot 6 Drv 1
>Dev 11 = Slot 6 Drv 2
>Dev 12 = Slot 3 Drv 2
>
>or is there a translation table stored somewhere in memory?
>
>If Kent will respond, I would like to know how you handled the COP 82
>instruction at the end of the $C70D routine (entry to SmartPort) in your
>Kegs emulator,

Smartport is two things: a physical port you can plug 3.5", 5.25", etc.
drives into, and a software convention so OS's can communicate with devices
they may not have a "driver" for.

The software convention: If the $Cnxx ROM space for a slot appears to be
bootable, and $CnFF=0A, then it supports Smartport calls at $C70D, and
ProDOS calls at $C70A. The ProDOS entry point at $C70A supports just
two devices and supports just 65535 blocks, but the $C70D "Smarport" entry
point supports many more devices, I think 127, and can support up to
24-bit block numbers (or 32-bit block numbers, for Extended Smartport).

ProDOS 8 can only support two devices per "slot", so it remaps drives to
"virtual" slots. If slot 1 is a printer, for example, with no drives,
then ProDOS 8 can map 2 drives from another slot to be s1d1 and s1d2.
In this way, ProDOS 8 can support up to 14 devices, but s3d2 can only be
/RAM.

I don't know off the top of my head how ProDOS 8 manages this, but I do
know it was constantly changing, and the latest non-Apple ProDOS 2.5x does it
differently than any official release. Technote ProDOS #20 talks about
this remapping, and ProDOS Technote #23 talks about the versions of
ProDOS 8, which seems to say ProDOS 2.0.1 was the first to automatically
do this remapping.

ProDOS 16/GSOS doesn't have to deal with this 2-devices-per-slot restriction,
and can support lots more devices (I don't know the actual limit offhand).

KEGS doesn't use COP $82. KEGS does something really dumb, and compares
all instruction fetch addresses to see if it is to $00C70D, and if it is, it
calls do_c70d() in smartport.c. No matter what code you try to place at
$C70D, KEGS will interpret it as a smartport call to s7dx devices if you
execute at that address. And this is done for $C700 and $C70A as well.
So "PR#7" in KEGS runs no code from the $C700 space at all, it doesn't matter
what's there. I have plans to change this, but it's not a high priority.

Kent

Re: SmartPort device assignments

<c9f9c755-64b1-4e83-af11-a16a419ae897n@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=451&group=comp.emulators.apple2#451

 copy link   Newsgroups: comp.emulators.apple2
X-Received: by 2002:a05:622a:1309:b0:40d:b839:b5bb with SMTP id v9-20020a05622a130900b0040db839b5bbmr438719qtk.2.1692938773987;
Thu, 24 Aug 2023 21:46:13 -0700 (PDT)
X-Received: by 2002:a25:3c87:0:b0:d78:215f:ba5f with SMTP id
j129-20020a253c87000000b00d78215fba5fmr135433yba.9.1692938773763; Thu, 24 Aug
2023 21:46:13 -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.emulators.apple2
Date: Thu, 24 Aug 2023 21:46:13 -0700 (PDT)
In-Reply-To: <uc8a63$3jg4g$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: <f5340119-5b7f-4100-9c0e-5b98ca77bd4en@googlegroups.com> <uc8a63$3jg4g$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c9f9c755-64b1-4e83-af11-a16a419ae897n@googlegroups.com>
Subject: Re: SmartPort device assignments
From: gids...@sasktel.net (I am Rob)
Injection-Date: Fri, 25 Aug 2023 04:46:13 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 5320
 by: I am Rob - Fri, 25 Aug 2023 04:46 UTC

> >Does any one know how the SmartPort assigns a slot/drive to a device
> >number? Is it just as simple as using a look-up table in the order of:
> >
> >Dev 1 = Slot 7 Drv 1
> >Dev 2 = Slot 7 Drv 2
> >Dev 3 = Slot 4 Drv 1
> >Dev 4 = Slot 4 Drv 2
> >Dev 5 = Slot 1 Drv 1
> >Dev 6 = Slot 1 Drv 2
> >Dev 7 = Slot 2 Drv 1
> >Dev 8 = Slot 2 Drv 2
> >Dev 9 = Slot 3 Drv 1
> >Dev 10 = Slot 6 Drv 1
> >Dev 11 = Slot 6 Drv 2
> >Dev 12 = Slot 3 Drv 2
> >
> >or is there a translation table stored somewhere in memory?
> >
> >If Kent will respond, I would like to know how you handled the COP 82
> >instruction at the end of the $C70D routine (entry to SmartPort) in your
> >Kegs emulator,
> Smartport is two things: a physical port you can plug 3.5", 5.25", etc.
> drives into, and a software convention so OS's can communicate with devices
> they may not have a "driver" for.
>
> The software convention: If the $Cnxx ROM space for a slot appears to be
> bootable, and $CnFF=0A, then it supports Smartport calls at $C70D, and
> ProDOS calls at $C70A. The ProDOS entry point at $C70A supports just
> two devices and supports just 65535 blocks, but the $C70D "Smarport" entry
> point supports many more devices, I think 127, and can support up to
> 24-bit block numbers (or 32-bit block numbers, for Extended Smartport).
>
> ProDOS 8 can only support two devices per "slot", so it remaps drives to
> "virtual" slots. If slot 1 is a printer, for example, with no drives,
> then ProDOS 8 can map 2 drives from another slot to be s1d1 and s1d2.
> In this way, ProDOS 8 can support up to 14 devices, but s3d2 can only be
> /RAM.
>
> I don't know off the top of my head how ProDOS 8 manages this, but I do
> know it was constantly changing, and the latest non-Apple ProDOS 2.5x does it
> differently than any official release. Technote ProDOS #20 talks about
> this remapping, and ProDOS Technote #23 talks about the versions of
> ProDOS 8, which seems to say ProDOS 2.0.1 was the first to automatically
> do this remapping.
>
> ProDOS 16/GSOS doesn't have to deal with this 2-devices-per-slot restriction,
> and can support lots more devices (I don't know the actual limit offhand)..
>
> KEGS doesn't use COP $82. KEGS does something really dumb, and compares
> all instruction fetch addresses to see if it is to $00C70D, and if it is, it
> calls do_c70d() in smartport.c. No matter what code you try to place at
> $C70D, KEGS will interpret it as a smartport call to s7dx devices if you
> execute at that address. And this is done for $C700 and $C70A as well.
> So "PR#7" in KEGS runs no code from the $C700 space at all, it doesn't matter
> what's there. I have plans to change this, but it's not a high priority.

Thank you for your explanation. That explains a lot how Kegs is doing it. I imagine other emulators like Sweet16 do something similar.

On a real computer, though, there are no calls to the SmartPort from Prodos 8, and SmartPort should not know anything about Prodos and therefore the Prodos device table is off limits to the SmartPort. But the Smartport has to know how to access the slots and map a device number to a slot.

In your emulator, the slot assignment for a SmartPort device is just continguous with the slot/drive assignments listed above. But on a real computer you can have a hard drive (connected to a SCSI card/SD/CFFA card) in slot 7 and another Smartport compatible card in slot 2. The Smartport will recognize these slots as device #1 and device #2. But there has to be a table some where that maps a device number to its slot/drive pair so the device can be accessed by the softswitches needed for that device. Thus the device number has to be mapped to a device in a certain slot and stored in a table. I am trying to locate where in memory that mapping table is.

Re: SmartPort device assignments

<aa68fd2d-564d-4177-8d61-0d62e04904b2n@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=452&group=comp.emulators.apple2#452

 copy link   Newsgroups: comp.emulators.apple2
X-Received: by 2002:a05:620a:8bca:b0:76e:e880:c30c with SMTP id qy10-20020a05620a8bca00b0076ee880c30cmr20689qkn.0.1693253755178;
Mon, 28 Aug 2023 13:15:55 -0700 (PDT)
X-Received: by 2002:a05:6a00:15c6:b0:68b:dbad:7ae1 with SMTP id
o6-20020a056a0015c600b0068bdbad7ae1mr5032765pfu.5.1693253754684; Mon, 28 Aug
2023 13:15:54 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.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.emulators.apple2
Date: Mon, 28 Aug 2023 13:15:54 -0700 (PDT)
In-Reply-To: <0ee2a0f9-3b62-4f7a-aa15-d476510115d6n@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: <f5340119-5b7f-4100-9c0e-5b98ca77bd4en@googlegroups.com>
<uc8a63$3jg4g$1@dont-email.me> <c9f9c755-64b1-4e83-af11-a16a419ae897n@googlegroups.com>
<0ee2a0f9-3b62-4f7a-aa15-d476510115d6n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <aa68fd2d-564d-4177-8d61-0d62e04904b2n@googlegroups.com>
Subject: Re: SmartPort device assignments
From: gids...@sasktel.net (I am Rob)
Injection-Date: Mon, 28 Aug 2023 20:15:55 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2082
 by: I am Rob - Mon, 28 Aug 2023 20:15 UTC

> ProDOS has an internal mapping table which moved around in earlier versions of ProDOS, and whose format changed in 2.5. Smart Port devices are numbered 1, 2, 3, ... so they can live anywhere in the slot space from ProDOS's point of view.

Is there a table that matches the device number with the slots somewhere in memory? Or is there some math calculation that is used?

Normally there would be a device in slot #7 as the boot device and it would be designated Device #1. But another device card can be in any of the other slots supported by the SmartPort Protocol as Device #2. Therefore the assumption has to be made that there is a table some where that matches what slot device #2 is in. I am trying to locate that table.

Re: SmartPort device assignments

<f873e44d-5a4a-418f-8f66-949a0224cf29n@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=453&group=comp.emulators.apple2#453

 copy link   Newsgroups: comp.emulators.apple2
X-Received: by 2002:a05:620a:41e:b0:76d:d254:f3c0 with SMTP id 30-20020a05620a041e00b0076dd254f3c0mr728404qkp.4.1693254283923;
Mon, 28 Aug 2023 13:24:43 -0700 (PDT)
X-Received: by 2002:a05:6a00:178f:b0:68a:ce39:32b4 with SMTP id
s15-20020a056a00178f00b0068ace3932b4mr6032641pfg.0.1693254283648; Mon, 28 Aug
2023 13:24:43 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.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.emulators.apple2
Date: Mon, 28 Aug 2023 13:24:43 -0700 (PDT)
In-Reply-To: <0ee2a0f9-3b62-4f7a-aa15-d476510115d6n@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: <f5340119-5b7f-4100-9c0e-5b98ca77bd4en@googlegroups.com>
<uc8a63$3jg4g$1@dont-email.me> <c9f9c755-64b1-4e83-af11-a16a419ae897n@googlegroups.com>
<0ee2a0f9-3b62-4f7a-aa15-d476510115d6n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f873e44d-5a4a-418f-8f66-949a0224cf29n@googlegroups.com>
Subject: Re: SmartPort device assignments
From: gids...@sasktel.net (I am Rob)
Injection-Date: Mon, 28 Aug 2023 20:24:43 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2633
 by: I am Rob - Mon, 28 Aug 2023 20:24 UTC

> ProDOS has an internal mapping table which moved around in earlier versions of ProDOS, and whose format changed in 2.5. Smart Port devices are numbered 1, 2, 3, ... so they can live anywhere in the slot space from ProDOS's point of view.

Is there a table that matches the device number with the slots somewhere in memory? Or is there some math calculation that is used?

Normally there would be a device in slot #7 as the boot device and it would be designated Device #1. But another device card can be in any of the other slots supported by the SmartPort Protocol as Device #2. Therefore the assumption has to be made that there is a table some where that matches what slot device #2 is in. I am trying to locate that table.

The software that I am trying to understand is from OpenApple 1987. It makes no calls to Prodos, yet it can report the number of devices and all their information through the SmartPort Protocol at $C70D. What is even more bizarre, is that it recognizes and reports the correct number of blocks on a 2 gig disk image whether it be formatted to Prodos or HFS. This information is not stored in a volumes header.

Is the SmartPort Protocol built into the IIGS ROM, or is it in a slot cards firmware, such as a SCSI card or CFFA3000?

Re: SmartPort device assignments

<yubleduijei.fsf@jpen.ca>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=454&group=comp.emulators.apple2#454

 copy link   Newsgroups: comp.emulators.apple2
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: jerry...@jpen.ca (Jerry Penner)
Newsgroups: comp.emulators.apple2
Subject: Re: SmartPort device assignments
Date: Mon, 28 Aug 2023 22:04:21 -0600
Organization: A noiseless patient Spider
Lines: 54
Message-ID: <yubleduijei.fsf@jpen.ca>
References: <f5340119-5b7f-4100-9c0e-5b98ca77bd4en@googlegroups.com>
<uc8a63$3jg4g$1@dont-email.me>
<c9f9c755-64b1-4e83-af11-a16a419ae897n@googlegroups.com>
<0ee2a0f9-3b62-4f7a-aa15-d476510115d6n@googlegroups.com>
<f873e44d-5a4a-418f-8f66-949a0224cf29n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="517ae29c9faf79e33bb0bd0054e4ebb1";
logging-data="2210601"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/AamuqWEpNjZ0GF5NAw/vQ"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Cancel-Lock: sha1:tNyUd222QhW6FJVvODPIiU40ks0=
sha1:5L6lPn8mf90SPMXsD4zxM41sZw8=
 by: Jerry Penner - Tue, 29 Aug 2023 04:04 UTC

I am Rob <gids.rs@sasktel.net> writes:

>> ProDOS has an internal mapping table which moved around in earlier versions of ProDOS,
> and whose format changed in 2.5. Smart Port devices are numbered 1, 2, 3, ... so they can
> live anywhere in the slot space from ProDOS's point of view.
>
> Is there a table that matches the device number with the slots somewhere in memory? Or is
> there some math calculation that is used?
>
> Normally there would be a device in slot #7 as the boot device and it would be designated
> Device #1. But another device card can be in any of the other slots supported by the
> SmartPort Protocol as Device #2. Therefore the assumption has to be made that there is a
> table some where that matches what slot device #2 is in. I am trying to locate that table.
>
> The software that I am trying to understand is from OpenApple 1987. It makes no calls to
> Prodos, yet it can report the number of devices and all their information through the
> SmartPort Protocol at $C70D. What is even more bizarre, is that it recognizes and reports
> the correct number of blocks on a 2 gig disk image whether it be formatted to Prodos or
> HFS. This information is not stored in a volumes header.
>
> Is the SmartPort Protocol built into the IIGS ROM, or is it in a slot cards firmware, such
> as a SCSI card or CFFA3000?

Short answer: both. It's built into the card's firmware. The IIgs has
it built-in if slot 5 is set to Smart Port.

I think you're referring to the January 1987 article on pages
2.89-2.92. Is that right?

The article talks about various peripherals that support the Smartport
protocol converter. Could be an Apple 3.5 Controller (LIRON) card that
supports only the UniDisk 3.5, an Apple Memory Expansion (slinky) board,
an Apple SCSI card, or the IIgs "slot 5" Smartport protocol converter.

Since then, third party product such as the CFFA also support the
Smartport protocol converter.

All of these products maintain the Smartport device list internally and
in their own way. This device-list is separate from the ProDOS device
list.

Also, there is no guarantee that there is a Smartport
protocol-supporting card in slot #7. The Open-Apple program scans the
slots in lines 100-200 (page 2.90b).

The Open-Apple program is finding out all reported information from the
discovered Smartport protocol-converter-supporting peripheral by
examining the firmware ID bytes. It then calls the Smartport
entry-point in the card's $Csxx firmware.

--
--
Jerry jerry+a2 at jpen.ca

Re: SmartPort device assignments

<42e4dd2d-6989-4780-9815-da1fa2b9302dn@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=455&group=comp.emulators.apple2#455

 copy link   Newsgroups: comp.emulators.apple2
X-Received: by 2002:a05:620a:957:b0:76f:130a:c957 with SMTP id w23-20020a05620a095700b0076f130ac957mr154105qkw.11.1693285253084;
Mon, 28 Aug 2023 22:00:53 -0700 (PDT)
X-Received: by 2002:a05:6a00:1404:b0:68a:5e6f:9975 with SMTP id
l4-20020a056a00140400b0068a5e6f9975mr508543pfu.1.1693285252788; Mon, 28 Aug
2023 22:00:52 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!panix!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.emulators.apple2
Date: Mon, 28 Aug 2023 22:00:52 -0700 (PDT)
In-Reply-To: <yubleduijei.fsf@jpen.ca>
Injection-Info: google-groups.googlegroups.com; posting-host=207.195.86.156; posting-account=U4TNXwoAAABP4nIJHynAJZ69O_f3LY2g
NNTP-Posting-Host: 207.195.86.156
References: <f5340119-5b7f-4100-9c0e-5b98ca77bd4en@googlegroups.com>
<uc8a63$3jg4g$1@dont-email.me> <c9f9c755-64b1-4e83-af11-a16a419ae897n@googlegroups.com>
<0ee2a0f9-3b62-4f7a-aa15-d476510115d6n@googlegroups.com> <f873e44d-5a4a-418f-8f66-949a0224cf29n@googlegroups.com>
<yubleduijei.fsf@jpen.ca>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <42e4dd2d-6989-4780-9815-da1fa2b9302dn@googlegroups.com>
Subject: Re: SmartPort device assignments
From: gids...@sasktel.net (I am Rob)
Injection-Date: Tue, 29 Aug 2023 05:00:53 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 5858
 by: I am Rob - Tue, 29 Aug 2023 05:00 UTC

> >> ProDOS has an internal mapping table which moved around in earlier versions of ProDOS,
> > and whose format changed in 2.5. Smart Port devices are numbered 1, 2, 3, ... so they can
> > live anywhere in the slot space from ProDOS's point of view.
> >
> > Is there a table that matches the device number with the slots somewhere in memory? Or is
> > there some math calculation that is used?
> >
> > Normally there would be a device in slot #7 as the boot device and it would be designated
> > Device #1. But another device card can be in any of the other slots supported by the
> > SmartPort Protocol as Device #2. Therefore the assumption has to be made that there is a
> > table some where that matches what slot device #2 is in. I am trying to locate that table.
> >
> > The software that I am trying to understand is from OpenApple 1987. It makes no calls to
> > Prodos, yet it can report the number of devices and all their information through the
> > SmartPort Protocol at $C70D. What is even more bizarre, is that it recognizes and reports
> > the correct number of blocks on a 2 gig disk image whether it be formatted to Prodos or
> > HFS. This information is not stored in a volumes header.
> >
> > Is the SmartPort Protocol built into the IIGS ROM, or is it in a slot cards firmware, such
> > as a SCSI card or CFFA3000?
> Short answer: both. It's built into the card's firmware. The IIgs has
> it built-in if slot 5 is set to Smart Port.

Disregard the slot 5 Smartport. I am more interested in the slot 7 Smartport with 12 devices and support for 2 gig volumes.

> I think you're referring to the January 1987 article on pages
> 2.89-2.92. Is that right?

Don't know. The software just has the date in the REM statements.

> The article talks about various peripherals that support the Smartport
> protocol converter. Could be an Apple 3.5 Controller (LIRON) card that
> supports only the UniDisk 3.5, an Apple Memory Expansion (slinky) board,
> an Apple SCSI card, or the IIgs "slot 5" Smartport protocol converter.
>
> Since then, third party product such as the CFFA also support the
> Smartport protocol converter.

> All of these products maintain the Smartport device list internally and
> in their own way. This device-list is separate from the ProDOS device
> list.

I have trouble with statements like these as this makes the assumption that the SmartPort device has RAM to store the device list. I have checked the screen holes for the order of the devices. And like you said, the SmartPort device list is separate from the Prodos device list. Where in RAM is it stored?


> Also, there is no guarantee that there is a Smartport
> protocol-supporting card in slot #7. The Open-Apple program scans the
> slots in lines 100-200 (page 2.90b).

If you check the machine language part of the program, you can see that it calls the SmartPort at $C70D. But if there is another SCSI card in slot 2, or slot 4, that device gets assigned device #2. But there has to be a table that indicates which slot device #2 is in. Where is that table or list?

> The Open-Apple program is finding out all reported information from the
> discovered Smartport protocol-converter-supporting peripheral by
> examining the firmware ID bytes. It then calls the Smartport
> entry-point in the card's $Csxx firmware.

That is fine if there is only 1 SmartPort device. But a second SmartPort device can be in any of the other slots supported by SmartPort protocol. The slots checked in order should be S7D1, S7D2, S4D1, S4D2, S2D1, S2D2, S1D1, S1D2, S3D1, S6D1, S6D2, S3D2. Device #2 can be in any of the slots after S7D1. Therefore there must be a table to indicate which slot device #2 is in so that device can be accesssed using that slots softswitches.

Put another way. When device #2 is called by the SmartPort Protocol, there should be a table somewhere that points to the device in slot 2 instead of slot 4. I have trouble believing that the slots get scanned every time in the sequence mentioned above to confirm there is a SmartPort device in that slot. If one were to have 12 devices installed, that is a lot of wear and tear just to find the slot that the 12th device is in.

Re: SmartPort device assignments

<yubwmxcl1e4.fsf@jpen.ca>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=456&group=comp.emulators.apple2#456

 copy link   Newsgroups: comp.emulators.apple2
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: jerry...@jpen.ca (Jerry Penner)
Newsgroups: comp.emulators.apple2
Subject: Re: SmartPort device assignments
Date: Wed, 30 Aug 2023 14:29:39 -0600
Organization: A noiseless patient Spider
Lines: 108
Message-ID: <yubwmxcl1e4.fsf@jpen.ca>
References: <f5340119-5b7f-4100-9c0e-5b98ca77bd4en@googlegroups.com>
<uc8a63$3jg4g$1@dont-email.me>
<c9f9c755-64b1-4e83-af11-a16a419ae897n@googlegroups.com>
<0ee2a0f9-3b62-4f7a-aa15-d476510115d6n@googlegroups.com>
<f873e44d-5a4a-418f-8f66-949a0224cf29n@googlegroups.com>
<yubleduijei.fsf@jpen.ca>
<42e4dd2d-6989-4780-9815-da1fa2b9302dn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="75af12c51b9f4615d20f6e04c2edfec3";
logging-data="3029270"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19Wz16DwNLRrZk2fycVKNXU"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Cancel-Lock: sha1:jGgdlyR8idWs25xOWa/GG/71eVQ=
sha1:au4Kl3R7ygEI46phWemoF1qtde8=
 by: Jerry Penner - Wed, 30 Aug 2023 20:29 UTC

I am Rob <gids.rs@sasktel.net> writes:

>> >> ProDOS has an internal mapping table which moved around in earlier versions of ProDOS,
>> > and whose format changed in 2.5. Smart Port devices are numbered 1, 2, 3, ... so they can
>> > live anywhere in the slot space from ProDOS's point of view.
>> >
>> > Is there a table that matches the device number with the slots somewhere in memory? Or is
>> > there some math calculation that is used?
>> >
>> > Normally there would be a device in slot #7 as the boot device and it would be designated
>> > Device #1. But another device card can be in any of the other slots supported by the
>> > SmartPort Protocol as Device #2. Therefore the assumption has to be made that there is a
>> > table some where that matches what slot device #2 is in. I am trying to locate that table.
>> >
>> > The software that I am trying to understand is from OpenApple 1987. It makes no calls to
>> > Prodos, yet it can report the number of devices and all their information through the
>> > SmartPort Protocol at $C70D. What is even more bizarre, is that it recognizes and reports
>> > the correct number of blocks on a 2 gig disk image whether it be formatted to Prodos or
>> > HFS. This information is not stored in a volumes header.
>> >
>> > Is the SmartPort Protocol built into the IIGS ROM, or is it in a slot cards firmware, such
>> > as a SCSI card or CFFA3000?
>> Short answer: both. It's built into the card's firmware. The IIgs has
>> it built-in if slot 5 is set to Smart Port.
>
> Disregard the slot 5 Smartport. I am more interested in the slot 7 Smartport with 12
> devices and support for 2 gig volumes.

What device is in your slot 7?

It's that device's firmware that is going to determine where the device
list is stored.

>> I think you're referring to the January 1987 article on pages
>> 2.89-2.92. Is that right?
>
> Don't know. The software just has the date in the REM statements.
>
>
>> The article talks about various peripherals that support the Smartport
>> protocol converter. Could be an Apple 3.5 Controller (LIRON) card that
>> supports only the UniDisk 3.5, an Apple Memory Expansion (slinky) board,
>> an Apple SCSI card, or the IIgs "slot 5" Smartport protocol converter.
>>
>> Since then, third party product such as the CFFA also support the
>> Smartport protocol converter.
>
>> All of these products maintain the Smartport device list internally and
>> in their own way. This device-list is separate from the ProDOS device
>> list.
>
> I have trouble with statements like these as this makes the assumption that the SmartPort
> device has RAM to store the device list. I have checked the screen holes for the order of
> the devices. And like you said, the SmartPort device list is separate from the Prodos
> device list. Where in RAM is it stored?

It's device-dependent. Long ago I disassemmbled some of the Apple
High-Speed SCSI card's firmware. The HS SCSI card has an 8kB static RAM
on it, that it can map into $C800-$CBFF. It maps its ROM into
$CC00-$CFFF. So, that SmartPort protocol converter, at least, has the
resources to store its own device list. (It also uses the RAM for
maintaining the partition-map from connected SCSI devices.)

>> Also, there is no guarantee that there is a Smartport
>> protocol-supporting card in slot #7. The Open-Apple program scans the
>> slots in lines 100-200 (page 2.90b).
>
> If you check the machine language part of the program, you can see that it calls the
> SmartPort at $C70D. But if there is another SCSI card in slot 2, or slot 4, that device
> gets assigned device #2. But there has to be a table that indicates which slot device #2
> is in. Where is that table or list?

I understand the question, and I agree there ought to be a table
*somewhere*. There also needs to be an agreed-upon arbitration protocol
if there are multiple SmartPort protocol-converters installed in the
same machine, so they don't stomp on each other.

I suspect the CFFA3000 also has RAM to maintain its list of devices. I
ought to dig into that some day.

>> The Open-Apple program is finding out all reported information from the
>> discovered Smartport protocol-converter-supporting peripheral by
>> examining the firmware ID bytes. It then calls the Smartport
>> entry-point in the card's $Csxx firmware.
>
> That is fine if there is only 1 SmartPort device. But a second SmartPort device can be in
> any of the other slots supported by SmartPort protocol. The slots checked in order should
> be S7D1, S7D2, S4D1, S4D2, S2D1, S2D2, S1D1, S1D2, S3D1, S6D1, S6D2, S3D2. Device #2 can
> be in any of the slots after S7D1. Therefore there must be a table to indicate which slot
> device #2 is in so that device can be accesssed using that slots softswitches.

> Put another way. When device #2 is called by the SmartPort Protocol, there should be a
> table somewhere that points to the device in slot 2 instead of slot 4. I have trouble
> believing that the slots get scanned every time in the sequence mentioned above to confirm
> there is a SmartPort device in that slot. If one were to have 12 devices installed, that
> is a lot of wear and tear just to find the slot that the 12th device is in.

I suspect the scan only happens when the card is first accessed, unless
there are identifiable conditions under which it does a rescan. I doubt
it does it often nor would it do it everytime.

I'm curious to know what you discover.

--
--
Jerry jerry+a2 at jpen.ca

1
server_pubkey.txt

rocksolid light 0.9.7
clearnet tor