6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Nov 17, 2024 6:39 am

All times are UTC




Post new topic Reply to topic  [ 8 posts ] 
Author Message
 Post subject: psABI for w65 (65816)
PostPosted: Tue Sep 21, 2021 1:07 am 
Offline

Joined: Tue Sep 21, 2021 12:23 am
Posts: 4
As part of a project to allow development of SNES Homebrew using higher level languages, I have developed a psABI (Processor Specific ABI) for the w65 (WDC 65C816) architecture. The ELF sections of the ABI are implemented in a fork of binutils, https://github.com/SNES-Dev/binutils-gdb, which contains an assembler and linker that (for the most part) work today. The remaining sections are planned to be implemented in a fork of gcc, https://github.com/SNES-Dev/gcc, and associated libraries.

The current location of the ABI Working document is https://github.com/SNES-Dev/SNES-Dev/bl ... /abi/v1.md

I would like any feedback from any interested parties.


Last edited by InfernoDeity on Tue Sep 21, 2021 12:16 pm, edited 1 time in total.

Top
 Profile  
Reply with quote  
 Post subject: Re: psABI for w65
PostPosted: Tue Sep 21, 2021 8:16 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10981
Location: England
welcome! Always interesting to see compiler and related developments.

The 'w65' term is new to me - I suggest it would be worthwhile to add (65816) to your subject line, so this thread is more easily found by those with an interest.


Top
 Profile  
Reply with quote  
 Post subject: Re: psABI for w65
PostPosted: Tue Sep 21, 2021 12:16 pm 
Offline

Joined: Tue Sep 21, 2021 12:23 am
Posts: 4
Quote:
The 'w65' term is new to me - I suggest it would be worthwhile to add (65816) to your subject line, so this thread is more easily found by those with an interest.


Yeah, perhaps. w65 is the name of the architecture within config.sub so I've been using that as the name in various places.


Top
 Profile  
Reply with quote  
PostPosted: Fri Oct 01, 2021 1:00 am 
Offline

Joined: Tue Sep 21, 2021 12:23 am
Posts: 4
The location for the document has changed. It now resides in it's own repo, https://github.com/SNES-Dev/abi/v1.md. The Document can also be viewed at https://snes-dev.github.io/abi/v1


Top
 Profile  
Reply with quote  
PostPosted: Fri Oct 01, 2021 4:39 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8493
Location: Midwestern USA
InfernoDeity wrote:
The location for the document has changed. It now resides in it's own repo, https://github.com/SNES-Dev/abi/v1.md. The Document can also be viewed at https://snes-dev.github.io/abi/v1

Just an opinion. but your ABI specification might generate more interest if it were less focused on the SNES. Most of the hobby systems I've seen that are powered by the 65C816 are not associated in any way with the SNES hardware. Also, the Ricoh 5A22 in the SNES is not a true 65C816, as Ricoh added some features that aren't present in the real McCoy. I'm suspecting an ABI specific to the SNES is not going to be portable.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Fri Oct 01, 2021 7:51 am 
Offline
User avatar

Joined: Wed Feb 14, 2018 2:33 pm
Posts: 1487
Location: Scotland
BigDumbDinosaur wrote:
InfernoDeity wrote:
The location for the document has changed. It now resides in it's own repo, https://github.com/SNES-Dev/abi/v1.md. The Document can also be viewed at https://snes-dev.github.io/abi/v1

Just an opinion. but your ABI specification might generate more interest if it were less focused on the SNES. Most of the hobby systems I've seen that are powered by the 65C816 are not associated in any way with the SNES hardware. Also, the Ricoh 5A22 in the SNES is not a true 65C816, as Ricoh added some features that aren't present in the real McCoy. I'm suspecting an ABI specific to the SNES is not going to be portable.


I'm wondering just how many active hobby '816 systems there are out there.... I know of just 2 - mine and yours... I'm not interested in this ABI, so ...

Not counting the Foenix '816 system which has it's own ecosystem to work with (and the Neon816 is dead-end now), there are very few other active '816 systems that I know of (please, everyone fill in the gaps in my knowledge - start a new thread?) However none I've seen are actually doing anything more than a simple Hello world application... There are many SNES systems out there so for this it does make sense to target that platform specifically.

-Gordon

_________________
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/


Top
 Profile  
Reply with quote  
PostPosted: Fri Oct 01, 2021 8:26 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10981
Location: England
Yes, good idea to have a new thread for a survey of 816 builds.

For this thread, InfernoDeity was quite clear at the start about scope: anyone has the right to define the scope of their project. We've seen two opinions about the relative wisdom of that choice - anyone in future can pick one or the other path. As indeed they would do anyway. As it happens, I agree that the SNES is surely a popular platform with an active homebrew scene.

In any case, we can learn from this ABI project even if we don't find it fully applicable for our own purposes.


Top
 Profile  
Reply with quote  
PostPosted: Tue Oct 05, 2021 1:41 am 
Offline

Joined: Tue Sep 21, 2021 12:23 am
Posts: 4
Quote:
Just an opinion. but your ABI specification might generate more interest if it were less focused on the SNES. Most of the hobby systems I've seen that are powered by the 65C816 are not associated in any way with the SNES hardware. Also, the Ricoh 5A22 in the SNES is not a true 65C816, as Ricoh added some features that aren't present in the real McCoy. I'm suspecting an ABI specific to the SNES is not going to be portable.


So, for the record, the abi is defined under the SNES-Dev project as that is where it originated, and that is the primary project I work on it under.
While it was originally intended to be specific to the SNES, and even more specifically SNES-Dev, the psABI is now intended to be a general ABI for the 65c816/w65, and SNES-specific requirements will be relegated to an appropriate machine supplicant. I'm not going to invalidate any argument here, nor am I going to demand that others adopt this, I just want to indicate on record that the scope of the proposed abi is more general than just the SNES.

Also, if there are any components that remain SNES-specific I would consider that a defect in the specification, and would love to hear about it either here or on the issue tracker for the repo. It's possible I did miss something when cleaning up the rest of it.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron