I'm new to 6502, I know a tiny, tiny bit of assembly and the very basics of what most of the pins do. Basically fresh out of Ben Eater's first 6502 video, plus some messing around on my own. I might be a little early on in learning about this stuff to be wondering about something like this but how would a dual 6502 system work?
The idea I had was that they'd share ROM, but I didn't get past that. Not sure how they'd interface with each other or the ROM.
Dual 6502 in Logisim Evolution?
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Dual 6502 in Logisim Evolution?
brieee wrote:
I'm new to 6502, I know a tiny, tiny bit of assembly and the very basics of what most of the pins do. Basically fresh out of Ben Eater's first 6502 video, plus some messing around on my own. I might be a little early on in learning about this stuff to be wondering about something like this but how would a dual 6502 system work?
The idea I had was that they'd share ROM, but I didn't get past that. Not sure how they'd interface with each other or the ROM.
The idea I had was that they'd share ROM, but I didn't get past that. Not sure how they'd interface with each other or the ROM.
Do some searches on forum content for starts. Multi-processor 6502 systems have long been a topic of discussion here. Also worth looking at are some of the old Commodore IEEE-488 disk drives, which used two 6502s.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Dual 6502 in Logisim Evolution?
Welcome, brieee!
The simplest and most often mentioned set up is that the two devices share (almost) all of memory - RAM and ROM. That's relatively straightforward because the 6502 can be considered as using the bus (or needing to use the bus) for only half the clock cycle. There are two halves, so two CPUs can share. It's not totally straightforward - as BDD says, you could usefully do some searching and reading.
Less common is to put two CPUs into communication by sharing some kind of communication channel: could be an 8 bit port, or two VIAs, or Acorn's Tube chip, or a number of other possibilities, including dual-port RAM.
In both cases, designing and organising the software so the combination is useful is the major part of the work.
The simplest and most often mentioned set up is that the two devices share (almost) all of memory - RAM and ROM. That's relatively straightforward because the 6502 can be considered as using the bus (or needing to use the bus) for only half the clock cycle. There are two halves, so two CPUs can share. It's not totally straightforward - as BDD says, you could usefully do some searching and reading.
Less common is to put two CPUs into communication by sharing some kind of communication channel: could be an 8 bit port, or two VIAs, or Acorn's Tube chip, or a number of other possibilities, including dual-port RAM.
In both cases, designing and organising the software so the combination is useful is the major part of the work.
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: Dual 6502 in Logisim Evolution?
This is one of the recent multiprocessor topics:
A multiprocessor system with mainly just the 6502 (?)
A multiprocessor system with mainly just the 6502 (?)
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?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
Re: Dual 6502 in Logisim Evolution?
If you're good with working out designs from schematics (or just want to learn to do that), the are various examples of commercial systems that did this reliably.
One, as BDD mentioned above, are some of the Commodore floppy drive subsystems. You might start with retroabandon/cbm:dos-1.0/ where I have collected some of the documentation and ROMs for the 2040/3040/4040 series, along with references to further sources. That's also got a start on the disassembly of the ROMs if you want to work out what's going on on the software side.
Another is the Fujitsu FM-7, which had a 6809 "main" CPU that talked to a second 6809 "sub" CPU that handled graphics and a few other things. These communicated through a 256-byte area of shared memory; the schematics are fairly clear about how all this worked. (Note that, though the processor is different, the 6502 uses essentially the same bus and timing systems that Motorola used.)
One, as BDD mentioned above, are some of the Commodore floppy drive subsystems. You might start with retroabandon/cbm:dos-1.0/ where I have collected some of the documentation and ROMs for the 2040/3040/4040 series, along with references to further sources. That's also got a start on the disassembly of the ROMs if you want to work out what's going on on the software side.
Another is the Fujitsu FM-7, which had a 6809 "main" CPU that talked to a second 6809 "sub" CPU that handled graphics and a few other things. These communicated through a 256-byte area of shared memory; the schematics are fairly clear about how all this worked. (Note that, though the processor is different, the 6502 uses essentially the same bus and timing systems that Motorola used.)
Curt J. Sampson - github.com/0cjs