Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

To invent, you need a good imagination and a pile of junk. -- Thomas Edison


computers / comp.sys.apple2 / Exposing peripheral card API

SubjectAuthor
* Exposing peripheral card APIAnthony Ortiz
+- Re: Exposing peripheral card APIfadden
`* Re: Exposing peripheral card APIAnthony Lawther
 `* Re: Exposing peripheral card APIAnthony Ortiz
  `- Re: Exposing peripheral card APIAnthony Lawther

1
Exposing peripheral card API

<299a3dd6-d95d-4009-83ff-c4c46744a09fn@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=4593&group=comp.sys.apple2#4593

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a05:620a:2788:b0:6b6:2012:405e with SMTP id g8-20020a05620a278800b006b62012405emr21387911qkp.18.1660153722336;
Wed, 10 Aug 2022 10:48:42 -0700 (PDT)
X-Received: by 2002:ac8:7d91:0:b0:342:b2bb:edcd with SMTP id
c17-20020ac87d91000000b00342b2bbedcdmr22444512qtd.468.1660153722163; Wed, 10
Aug 2022 10:48:42 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.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.sys.apple2
Date: Wed, 10 Aug 2022 10:48:41 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=96.246.98.130; posting-account=_28MFgoAAAAsc-6dxO-CT0K1QNWF5LF1
NNTP-Posting-Host: 96.246.98.130
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <299a3dd6-d95d-4009-83ff-c4c46744a09fn@googlegroups.com>
Subject: Exposing peripheral card API
From: anthonyp...@gmail.com (Anthony Ortiz)
Injection-Date: Wed, 10 Aug 2022 17:48:42 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1862
 by: Anthony Ortiz - Wed, 10 Aug 2022 17:48 UTC

Hello world!

I'd like to gradually expose quite a bit of functionality on my card so I expect the API is going to be pretty big, so I'd appreciate some advice on how best to structure the API interface to make it really easy to program with. The card has a Raspberry Pi on it and I use bit-banging to create a bus between the Apple II address/data bus and the Pi's GPIO pins, and the GPIO seems more than capable of working at 1mhz speeds so it can 'keep up' with the Apple II. What I'd like to do is gradually add API support for things the Pi can provide, such as HDMI monitor and all the resolutions a PI supports, 8gb of RAM, TCP/IP over wired/WIFI, USB storage/audio/printer, 1.5ghz co-processor capabilities, etc...

Any thoughts on how best to expose this type of API for easy consumption?

Re: Exposing peripheral card API

<2f7bff7f-8d80-43b2-931b-60e52798b60dn@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=4597&group=comp.sys.apple2#4597

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:a37:43d2:0:b0:6b9:a7e2:ca24 with SMTP id q201-20020a3743d2000000b006b9a7e2ca24mr5349820qka.338.1660228910082;
Thu, 11 Aug 2022 07:41:50 -0700 (PDT)
X-Received: by 2002:a37:8245:0:b0:6b5:9078:267 with SMTP id
e66-20020a378245000000b006b590780267mr23661846qkd.684.1660228909856; Thu, 11
Aug 2022 07:41:49 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.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, 11 Aug 2022 07:41:49 -0700 (PDT)
In-Reply-To: <299a3dd6-d95d-4009-83ff-c4c46744a09fn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=24.130.68.111; posting-account=UAtoeQoAAADrX7T-MHdWWRC4Fzf0dsLP
NNTP-Posting-Host: 24.130.68.111
References: <299a3dd6-d95d-4009-83ff-c4c46744a09fn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2f7bff7f-8d80-43b2-931b-60e52798b60dn@googlegroups.com>
Subject: Re: Exposing peripheral card API
From: thefad...@gmail.com (fadden)
Injection-Date: Thu, 11 Aug 2022 14:41:50 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1353
 by: fadden - Thu, 11 Aug 2022 14:41 UTC

On Wednesday, August 10, 2022 at 10:48:43 AM UTC-7, anthon...@gmail.com wrote:
> Any thoughts on how best to expose this type of API for easy consumption?

Something like SmartPort? Single entry point with parameters on the stack?

Re: Exposing peripheral card API

<1916846245.682384785.586586.alawther-spammenot.mac.com@nntp.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=4619&group=comp.sys.apple2#4619

  copy link   Newsgroups: comp.sys.apple2
Path: i2pn2.org!i2pn.org!aioe.org!lUYyJz+cc5yzm/NNfFCPZA.user.46.165.242.75.POSTED!not-for-mail
From: alawt...@spammenot.mac.com (Anthony Lawther)
Newsgroups: comp.sys.apple2
Subject: Re: Exposing peripheral card API
Date: Wed, 17 Aug 2022 08:48:18 +0900
Organization: Aioe.org NNTP Server
Message-ID: <1916846245.682384785.586586.alawther-spammenot.mac.com@nntp.aioe.org>
References: <299a3dd6-d95d-4009-83ff-c4c46744a09fn@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="33944"; posting-host="lUYyJz+cc5yzm/NNfFCPZA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: NewsTap/5.5 (iPhone/iPod Touch)
Cancel-Lock: sha1:A5vY3gpqxl1uQcP0gJwMMnMPh54=
X-Notice: Filtered by postfilter v. 0.9.2
 by: Anthony Lawther - Tue, 16 Aug 2022 23:48 UTC

Anthony Ortiz <anthonypaulo@gmail.com> wrote:
> Hello world!
>
> I'd like to gradually expose quite a bit of functionality on my card so I
> expect the API is going to be pretty big, so I'd appreciate some advice
> on how best to structure the API interface to make it really easy to
> program with. The card has a Raspberry Pi on it and I use bit-banging to
> create a bus between the Apple II address/data bus and the Pi's GPIO
> pins, and the GPIO seems more than capable of working at 1mhz speeds so
> it can 'keep up' with the Apple II. What I'd like to do is gradually add
> API support for things the Pi can provide, such as HDMI monitor and all
> the resolutions a PI supports, 8gb of RAM, TCP/IP over wired/WIFI, USB
> storage/audio/printer, 1.5ghz co-processor capabilities, etc...
>
> Any thoughts on how best to expose this type of API for easy consumption?
>

If the Pi is snooping every phase of every bus cycle you could copy the
interfaces of standard peripheral cards (Uthernet II for IP, SSC for
printers, video phase of the data bus for native video) and then maybe
Smartport for storage and any new facilities you want to add. By allowing
the one card to logically appear in multiple slots (user programmed e.g.
Uthernet II in Slot 1, SSC in Slot 2, Mouse card in Slot 4, Smartport in
Slot 5, Disk ][ in Slot 6) backed by emulated peripherals on the Pi you
could tap into much of the existing software base and only need to create
new Apple software to take advantage of the new features.

With the user programming of functions to slots, you could even have a
helper program in the Apple interrogate the slots for physical cards and
disallow use of occupied slots to avoid bus contention. If you want to get
really adventurous you could require your card be placed in Slot 7 and have
it subvert the boot process by appearing as a boot device, pushing the
helper program to system RAM as a boot block, interrogating the slots to
identify physical cards, allow the user to decide how to manage any
conflicts detected, and then continue the boot process as normal. That
would slow down every boot, so it might be something you’d want to be able
to disable or only perform when a certain key combination is detected.

Re: Exposing peripheral card API

<461be480-2cc0-4b73-b50f-f20030b57db4n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=4620&group=comp.sys.apple2#4620

  copy link   Newsgroups: comp.sys.apple2
X-Received: by 2002:ad4:5bad:0:b0:476:e202:32eb with SMTP id 13-20020ad45bad000000b00476e20232ebmr20136015qvq.3.1660700697427;
Tue, 16 Aug 2022 18:44:57 -0700 (PDT)
X-Received: by 2002:a05:622a:1485:b0:343:781b:d1b with SMTP id
t5-20020a05622a148500b00343781b0d1bmr18706056qtx.536.1660700697219; Tue, 16
Aug 2022 18:44:57 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border-2.nntp.ord.giganews.com!border-1.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.apple2
Date: Tue, 16 Aug 2022 18:44:57 -0700 (PDT)
In-Reply-To: <1916846245.682384785.586586.alawther-spammenot.mac.com@nntp.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=96.246.98.130; posting-account=_28MFgoAAAAsc-6dxO-CT0K1QNWF5LF1
NNTP-Posting-Host: 96.246.98.130
References: <299a3dd6-d95d-4009-83ff-c4c46744a09fn@googlegroups.com> <1916846245.682384785.586586.alawther-spammenot.mac.com@nntp.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <461be480-2cc0-4b73-b50f-f20030b57db4n@googlegroups.com>
Subject: Re: Exposing peripheral card API
From: anthonyp...@gmail.com (Anthony Ortiz)
Injection-Date: Wed, 17 Aug 2022 01:44:57 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 35
 by: Anthony Ortiz - Wed, 17 Aug 2022 01:44 UTC

On Tuesday, August 16, 2022 at 7:48:21 PM UTC-4, Anthony Lawther wrote:
> If the Pi is snooping every phase of every bus cycle you could copy the
> interfaces of standard peripheral cards (Uthernet II for IP, SSC for
> printers, video phase of the data bus for native video) and then maybe
> Smartport for storage and any new facilities you want to add. By allowing
> the one card to logically appear in multiple slots (user programmed e.g.
> Uthernet II in Slot 1, SSC in Slot 2, Mouse card in Slot 4, Smartport in
> Slot 5, Disk ][ in Slot 6) backed by emulated peripherals on the Pi you
> could tap into much of the existing software base and only need to create
> new Apple software to take advantage of the new features.
>
> With the user programming of functions to slots, you could even have a
> helper program in the Apple interrogate the slots for physical cards and
> disallow use of occupied slots to avoid bus contention. If you want to get
> really adventurous you could require your card be placed in Slot 7 and have
> it subvert the boot process by appearing as a boot device, pushing the
> helper program to system RAM as a boot block, interrogating the slots to
> identify physical cards, allow the user to decide how to manage any
> conflicts detected, and then continue the boot process as normal. That
> would slow down every boot, so it might be something you’d want to be able
> to disable or only perform when a certain key combination is detected.

Wow, these are some great ideas! I really like making it logically appearing in multiple slots and leveraging existing code, and I had no idea slot 7 could be used that way... You've given me a lot to think about, thank you!

Re: Exposing peripheral card API

<1340423737.682477979.106987.alawther-spammenot.mac.com@nntp.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=4626&group=comp.sys.apple2#4626

  copy link   Newsgroups: comp.sys.apple2
Path: i2pn2.org!i2pn.org!aioe.org!jhVZafvi+L5yJCfoFuOIBg.user.46.165.242.75.POSTED!not-for-mail
From: alawt...@spammenot.mac.com (Anthony Lawther)
Newsgroups: comp.sys.apple2
Subject: Re: Exposing peripheral card API
Date: Thu, 18 Aug 2022 11:03:35 +0900
Organization: Aioe.org NNTP Server
Message-ID: <1340423737.682477979.106987.alawther-spammenot.mac.com@nntp.aioe.org>
References: <299a3dd6-d95d-4009-83ff-c4c46744a09fn@googlegroups.com>
<1916846245.682384785.586586.alawther-spammenot.mac.com@nntp.aioe.org>
<461be480-2cc0-4b73-b50f-f20030b57db4n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="51445"; posting-host="jhVZafvi+L5yJCfoFuOIBg.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: NewsTap/5.5 (iPhone/iPod Touch)
X-Notice: Filtered by postfilter v. 0.9.2
Cancel-Lock: sha1:MpSh1NdtVVe1p/WwLDXhG1Cavc8=
 by: Anthony Lawther - Thu, 18 Aug 2022 02:03 UTC

Anthony Ortiz <anthonypaulo@gmail.com> wrote:
> On Tuesday, August 16, 2022 at 7:48:21 PM UTC-4, Anthony Lawther wrote:
>> If the Pi is snooping every phase of every bus cycle you could copy the
>> interfaces of standard peripheral cards (Uthernet II for IP, SSC for
>> printers, video phase of the data bus for native video) and then maybe
>> Smartport for storage and any new facilities you want to add. By allowing
>> the one card to logically appear in multiple slots (user programmed e.g.
>> Uthernet II in Slot 1, SSC in Slot 2, Mouse card in Slot 4, Smartport in
>> Slot 5, Disk ][ in Slot 6) backed by emulated peripherals on the Pi you
>> could tap into much of the existing software base and only need to create
>> new Apple software to take advantage of the new features.
>>
>> With the user programming of functions to slots, you could even have a
>> helper program in the Apple interrogate the slots for physical cards and
>> disallow use of occupied slots to avoid bus contention. If you want to get
>> really adventurous you could require your card be placed in Slot 7 and have
>> it subvert the boot process by appearing as a boot device, pushing the
>> helper program to system RAM as a boot block, interrogating the slots to
>> identify physical cards, allow the user to decide how to manage any
>> conflicts detected, and then continue the boot process as normal. That
>> would slow down every boot, so it might be something you’d want to be able
>> to disable or only perform when a certain key combination is detected.
>
> Wow, these are some great ideas! I really like making it logically
> appearing in multiple slots and leveraging existing code, and I had no
> idea slot 7 could be used that way... You've given me a lot to think about, thank you!
>

I suggest Slot 7 because it is polled first in the boot sequence. There are
some signals that are only connected to Slot 7, but every slot has the full
buffered address bus, data bus, R/W’, and clocks. The capability needs to
come from the Pi watching the buses and managing the interactions with the
Apple.
If people had a card sitting in Slot 7 that made use of the extra signals
(mostly relevant to video) then that card would most likely not have the
ROM signature of a boot device and with your card in Slot 6 the same boot
subversion approach could work.
Another thing to note is that Slot 7 is last in the DMA and interrupt
priority chains. If you haven’t looked at Jim Sather’s ‘Understanding the
Apple IIe’ then I highly recommend it. Chapter 7 gives a thorough look at
the card slots.

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor