The 65816 as the basis for a virtual 16 bit CPU ("65V16")
Re: The 65816 as the basis for a virtual 16 bit CPU ("65V16"
When we looked at this for the all-16-bit 65Org16, we realised there's no harm in doing 16-bit wide accesses to 8-bit peripherals - you just ignore the upper byte.
- GARTHWILSON
- Forum Moderator
- Posts: 8775
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: The 65816 as the basis for a virtual 16 bit CPU ("65V16"
BigEd wrote:
When we looked at this for the all-16-bit 65Org16, we realised there's no harm in doing 16-bit wide accesses to 8-bit peripherals - you just ignore the upper byte.
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: The 65816 as the basis for a virtual 16 bit CPU ("65V16"
Good point, but not so for the 65Org16 - writes and reads are word-wide. For the '816, indeed, it might be necessary to hook up such a peripheral only to even addresses, with a simple change of address decode. Does that work? I think it does...
- GARTHWILSON
- Forum Moderator
- Posts: 8775
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: The 65816 as the basis for a virtual 16 bit CPU ("65V16"
BigEd wrote:
Good point, but not so for the 65Org16 - writes and reads are word-wide.
Quote:
For the '816, indeed, it might be necessary to hook up such a peripheral only to even addresses, with a simple change of address decode. Does that work? I think it does...
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: The 65816 as the basis for a virtual 16 bit CPU ("65V16"
Quote:
If you want to read or write a 65c22 VIA's timer counter or latches, it's nice to be able to address both bytes at once, which the '816 can do, in a pair of consecutive clocks, all in one instruction.
- BigDumbDinosaur
- Posts: 9428
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: The 65816 as the basis for a virtual 16 bit CPU ("65V16"
Alienthe wrote:
Broccoli requires delicate handling. If you boil it until it changes colour into a green-yellow tinge you have overdone it. It should remain dark green and be a little crispy, or "al dente". Alternatively you can stir fry it - fast and efficient.
x86? We ain't got no x86. We don't NEED no stinking x86!
- BigDumbDinosaur
- Posts: 9428
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: The 65816 as the basis for a virtual 16 bit CPU ("65V16"
GARTHWILSON wrote:
The I/O IC's register-select bits could be shifted up the address bus by one, and A0 would have to go into the chip-select logic so the IC is only selected if A0 is 0.
The ability to read or write byte-sized data is essential to achieving trouble-free I/O. For example, if I wish to output a character to POC's console I would do it by writing a byte to the DUART's channel A transmitter FIFO, which is at offset $03 in the device (absolute address $00D103). If I were to write a word to that offset I would also touch the register at offset $04, which happens to be the auxiliary control register (ACR). Among other things, the ACR is where the baud rate table is selected and the counter/timer is configured. You'd best believe that an errant write on the ACR could cause a major malfunction.
Kludges like excluding odd addresses to avoid writing the MSB are treating the symptom, not the problem, and merely add to the amount of decoding hardware needed to make the system work.
Quote:
This exposes another disadvantage to locking out a trait of the 816 though. If you want to read or write a 65c22 VIA's timer counter or latches, it's nice to be able to address both bytes at once, which the '816 can do, in a pair of consecutive clocks, all in one instruction.
x86? We ain't got no x86. We don't NEED no stinking x86!
- BigDumbDinosaur
- Posts: 9428
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: The 65816 as the basis for a virtual 16 bit CPU ("65V16"
Arlet wrote:
Quote:
If you want to read or write a 65c22 VIA's timer counter or latches, it's nice to be able to address both bytes at once, which the '816 can do, in a pair of consecutive clocks, all in one instruction.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: The 65816 as the basis for a virtual 16 bit CPU ("65V16"
BigDumbDinosaur wrote:
That seems to be a lot of work just to make up for a deficiency in the microprocessor.
Re: The 65816 as the basis for a virtual 16 bit CPU ("65V16"
Yes, it doesn't seem too bad to me - some peripherals just work, some need spaced-out mapping, some will be fine but not optimal.