6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Nov 24, 2024 12:15 am

All times are UTC




Post new topic Reply to topic  [ 186 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13
Author Message
PostPosted: Sun Sep 29, 2013 9:14 pm 
Offline
User avatar

Joined: Sun Jun 30, 2013 10:26 pm
Posts: 1949
Location: Sacramento, CA, USA
Alienthe wrote:
... There is little (if any?) sample code in SWEET16 here. perhaps worth considering for the
source code repository? And yes, I agree that SWEET16 is elegant. Even the 6502 code that
implements it is elegant.


Woz rules in my book!!

Attachment:
sweet16b.asm [7.16 KiB]
Downloaded 325 times


Mike


Top
 Profile  
Reply with quote  
PostPosted: Mon Sep 30, 2013 7:01 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8514
Location: Midwestern USA
Using a 65C816, you can get "sweet 16" by clearing a bit or two in the status register. :D

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


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 15, 2016 6:21 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10986
Location: England
(Just to note: this thread is one of many with ideas about extending the 6502 architecture. I've posted an attempt at an index to such threads here. There's another flavour of discussion, which is ideas about implementing the 6502 architecture with higher performance. See this recent thread for example. I think it's useful to keep those two kinds of things separate - they are both interesting and useful topics of discussion and areas of work, but they scratch different itches.)


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 17, 2020 11:27 am 
Offline
User avatar

Joined: Tue Aug 11, 2020 3:45 am
Posts: 311
Location: A magnetic field
I had a flash of inspiration and I've been implementing a 65Org32 emulator in C. I'm presently working on an assembler.

It is possible to place four 8 bit opcodes into one 32 bit instruction fetch. In this regard, it is very much like Charles Moore's C18 processor or Seymour Cray's CDC6600, although with the registers and addressing modes that we know and love. It doesn't retain binary compatibility with 6502 or 65816, in part because batches of opcodes precede any subsequent operands. Regardless, it has similar registers and addressing modes to 65816. Specifically, direct, absolute and long. I've arranged function and addressing mode into two nybbles. This regular format allows one operand to be sourced from the usual places. The major differences (apart from 32 bit everywhere) is multiplication which can source one operand from anywhere and a lack of carry flag. This would be a lovely architecture for signal processing but I relatively certain that operand size precludes general use.

Unfortunately, I have a technical problem. I'm developing on Unix. This aids some aspects of development. For example, I use a shebang hack to make a 65Org32 binary work transparently like a native binary. Specifically it is possible to prefix any foreign binary with '#!' and the path of the interpreter. Normally, this technique is used to distinguish text scripting language and dialect, such as the various versions of shell, Perl, Python and Ruby. However, it can also be used to run a 6502 binary as easily as any script. I was hoping to apply this technique in other projects and I hoped that others would similarly benefit in this project and their own work. However, I'm fairly certain that the most likely alpha testers for 65Org32 don't use Unix. This may greatly hinder contributions and feedback.

It would also be useful if a standard format is adopted for opcode maps. This would allow considerable generality within a macro assembler. I enclosed an example in CSV format. The first line defines opcode. The second line defines addressing mode. Subsequent lines may define details such as clock cycles and privileges.


Attachments:
opcode-map.csv [3.3 KiB]
Downloaded 90 times

_________________
Modules | Processors | Boards | Boxes | Beep, Beep! I'm a sheep!
Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 17, 2020 5:30 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10986
Location: England
(Would be good to see this reinvigoration of 65Org32 in a new thread, Sheep64)


Top
 Profile  
Reply with quote  
PostPosted: Thu Sep 17, 2020 7:43 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8546
Location: Southern California
After reading your post two or three times, I still haven't caught how you're going to get the operands in if you fetch four op codes in one read. Most instructions will have operands which will have to come from somewhere. Michel Barry's 65m32 takes an approach that's a little different in that fetching the 32-bit word, it's taking the op code and up to 24 bits (or was it 23?) of operand, and then if you need a wider operand, something in the op code specifies that the operand has to wait for the next 32-bit word to be fetched. This (and your proposal too) is more oriented toward higher performance than keeping as much of the 65xx flavor. It would be good to give it a slightly different name, to avoid confusion.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 186 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13

All times are UTC


Who is online

Users browsing this forum: No registered users and 6 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: