Project: BBC Micro and 65816
Project: BBC Micro and 65816
I've been working with richarde over the last year and a half on various evolutions of an idea to build something meaningful with a 65816 and a BBC micro. For various values of work, and meaningful.
I'm in the process of putting together a website, but meantime this gallery should give an idea of what we've been up to.
I've done the minority of the work, but it's a joint effort, and we've helped keep each other interested in the project. Now we've reached the stage of a CPLD on PCB we (ahem, mostly richarde) can tweak the logic in a matter of minutes without any desoldering or even de-socketing - we've several ideas of where to take this. Compared to breadboard or verowire, it's ... well, it doesn't compare.
This topic, then, for questions and comments about the project and (soon) the website.
I'm in the process of putting together a website, but meantime this gallery should give an idea of what we've been up to.
I've done the minority of the work, but it's a joint effort, and we've helped keep each other interested in the project. Now we've reached the stage of a CPLD on PCB we (ahem, mostly richarde) can tweak the logic in a matter of minutes without any desoldering or even de-socketing - we've several ideas of where to take this. Compared to breadboard or verowire, it's ... well, it doesn't compare.
This topic, then, for questions and comments about the project and (soon) the website.
- BigDumbDinosaur
- Posts: 9428
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Project: BBC Micro and 65816
BigEd wrote:
I've been working with richarde over the last year and a half on various evolutions of an idea to build something meaningful with a 65816 and a BBC micro. For various values of work, and meaningful.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Project: BBC Micro and 65816
BigDumbDinosaur wrote:
wait-stating
We may yet add an i2c eeprom, or other mass storage, and would expect to use RDY to access that, or to stall the CPU while we DMA.
Project website: BBC Micro and 65816
It took me a while, but I've got a first pass at our project website now - it's a bit thin, so any suggestions on more content are welcome.
-
ElEctric_EyE
- Posts: 3260
- Joined: 02 Mar 2009
- Location: OH, USA
- GARTHWILSON
- Forum Moderator
- Posts: 8775
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Quote:
... Added to favorites.
In the "why the 65816" page, I would add to the benefits that it has more instructions and addressing modes. The '816 does not clock quite as fast as current-production 6502's though. As for the "downsides" mentioned, the banked memory (and high byte latching or decoding) is irrelevant if you only use bank 0 (but the '816 still has a lot of advantages over the '02). I find the '816 much easier to program, but I don't have to go in and out of emulation mode since I'm not using a commercial '02-oriented machine with '02 routines in the ROM. I just go into native mode and stay there.
- BigDumbDinosaur
- Posts: 9428
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
GARTHWILSON wrote:
Quote:
... Added to favorites.
Quote:
In the "why the 65816" page, I would add to the benefits that it has more instructions and addressing modes.
Quote:
The '816 does not clock quite as fast as current-production 6502's though.
Quote:
As for the "downsides" mentioned, the banked memory (and high byte latching or decoding) is irrelevant if you only use bank 0 (but the '816 still has a lot of advantages over the '02).
The '816 has so much more to offer that I find it hard to even justify a new '02 design. The cost difference between the two MPU's is very small, and even if the target system will never use more than 64K of RAM, the enhanced instruction set of the '816 makes it much easier to do a lot of things. Plus, how about that 16 bit stack pointer and ability to assign multiple zero pages?
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: Project website: BBC Micro and 65816
BigEd wrote:
It took me a while, but I've got a first pass at our project website now - it's a bit thin, so any suggestions on more content are welcome.
x86? We ain't got no x86. We don't NEED no stinking x86!
- GARTHWILSON
- Forum Moderator
- Posts: 8775
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Quote:
Quote:
The '816 does not clock quite as fast as current-production 6502's though.
Quote:
Quote:
It took me a while, but I've got a first pass at our project website now - it's a bit thin, so any suggestions on more content are welcome.
Quote:
The bank latching is probably no muy importante if using a PLD to handle bus logic.
Thanks for your comments everyone.
On the topic of 65816, I'm in two minds as to whether to address the global question or the questions arising specifically from the intent to upgrade a BBC micro. I've tweaked my posting, and also incorporated Garth's input as a comment... which leads me onto...
I'm using google sites, which made everything rather easy and hopefully cross-platform and usable, but doesn't give me fine control of every aspect. So, if you see a systematic presentation problem, I can only suggest you adjust your browser. See here for a tip on per-site adjustments. (If I've anywhere specifically chosen a bad font or size please PM me with details.)
The other thing about Google sites is that it has not-quite-useful support for comments on postings. If anyone would like to post a comment, just PM me an acceptable comment(!) and I'll post it.
More on-topic, our Eagle project and netlist is now downloadable if anyone is interested. We don't have a schematic, but the connectivity is in the layout and also expressed in the textual netlist files. All the interesting stuff, and the several ideas for enhancements, are inside the CPLD. Also, hopefully, that's where we put the bugs.
On the topic of 65816, I'm in two minds as to whether to address the global question or the questions arising specifically from the intent to upgrade a BBC micro. I've tweaked my posting, and also incorporated Garth's input as a comment... which leads me onto...
I'm using google sites, which made everything rather easy and hopefully cross-platform and usable, but doesn't give me fine control of every aspect. So, if you see a systematic presentation problem, I can only suggest you adjust your browser. See here for a tip on per-site adjustments. (If I've anywhere specifically chosen a bad font or size please PM me with details.)
The other thing about Google sites is that it has not-quite-useful support for comments on postings. If anyone would like to post a comment, just PM me an acceptable comment(!) and I'll post it.
More on-topic, our Eagle project and netlist is now downloadable if anyone is interested. We don't have a schematic, but the connectivity is in the layout and also expressed in the textual netlist files. All the interesting stuff, and the several ideas for enhancements, are inside the CPLD. Also, hopefully, that's where we put the bugs.
Hi Chuck, all
Which timer were you thinking of?
The BBC has a custom ULA on the motherboard which takes in the 16MHz master clock and derives 8, 4, 2 and 1MHz clocks mainly for video use. The 2 MHz is also used as the 6502 CPU clock and stretched to 1Mhz for peripheral accesses by other 74 series logic on the motherboard.
On our card we use a CPLD to switch between the 8Mhz clock and the original CPU clock. We did have a similar, though not identical, system working in 74 series logic on a verowire card on an earlier proto.
I've long been interested in building my own computer, but it always seemed too much like hard work to do the whole firmware and hardware all in one go. Building the 65816 into an old 6502 system has its limitations, but has proved to be a pretty good way of getting going.
bye
Rich
ChuckT wrote:
It is an interesting project. Is the hardware timer something that others can buy off the shelf?
The BBC has a custom ULA on the motherboard which takes in the 16MHz master clock and derives 8, 4, 2 and 1MHz clocks mainly for video use. The 2 MHz is also used as the 6502 CPU clock and stretched to 1Mhz for peripheral accesses by other 74 series logic on the motherboard.
On our card we use a CPLD to switch between the 8Mhz clock and the original CPU clock. We did have a similar, though not identical, system working in 74 series logic on a verowire card on an earlier proto.
ChuckT wrote:
I'm interested in making a SBC but cost, time and availability of parts are what I'm looking at as well as several projects that others have.
bye
Rich
Elite running on 65816
I haven't written it up yet on our website, but we've now seen Elite

running on two of our 816-upgraded Beebs. (Yes, that's hidden-line-removed 3D space trading and combat on a 2MHz 32k RAM 6502 machine! Massive credit to Braben and Bell.)
This tells us that both the game and the (1770) disk filing system are compatible with the 65816 emulation mode. (The 8271 disk filing system seems not to be.)
There isn't any performance difference because we haven't yet implemented the feature to accelerate host RAM accesses. I'm hopeful that Elite is well enough architected to run more smoothly but at the proper rate if it finds itself on a faster CPU.
We'll try to get our own screendump too.
PS. If Ian's site design didn't cause enough eyestrain, try reading the Elite sources - that's 6502 assembly embedded in BBC Basic, squashed down to be usable on a 32k development platform.

running on two of our 816-upgraded Beebs. (Yes, that's hidden-line-removed 3D space trading and combat on a 2MHz 32k RAM 6502 machine! Massive credit to Braben and Bell.)
This tells us that both the game and the (1770) disk filing system are compatible with the 65816 emulation mode. (The 8271 disk filing system seems not to be.)
There isn't any performance difference because we haven't yet implemented the feature to accelerate host RAM accesses. I'm hopeful that Elite is well enough architected to run more smoothly but at the proper rate if it finds itself on a faster CPU.
We'll try to get our own screendump too.
PS. If Ian's site design didn't cause enough eyestrain, try reading the Elite sources - that's 6502 assembly embedded in BBC Basic, squashed down to be usable on a 32k development platform.
Last edited by BigEd on Thu Jan 19, 2017 8:55 pm, edited 1 time in total.
Beeb at 17MHz
we had a bit of a breakthrough a few days ago: mapping the host RAM into our on board RAM we were finally able to run with any clock, up to 17MHz max! That's out of spec, of course.
Shortly after that, we added mapping of the BASIC ROM, and, running at 12.5MHz we measured a 6x speedup over the normal 2MHz machine.
We still had a little instability which we're investigating, but we found that mapping the OS ROM in acts as a workaround - all 64k of the host memory space is now in fast on-board RAM, expect the 3 pages of i/o space. We map in just one of the sideways ROMs - normally BASIC.
We still get video output, because half the RAM is mapped for reads but shadowed for writes. It's still a beeb, not an SBC.
Soon we'll find out how Elite runs on a 12MHz 65816 BBC model B!
Shortly after that, we added mapping of the BASIC ROM, and, running at 12.5MHz we measured a 6x speedup over the normal 2MHz machine.
We still had a little instability which we're investigating, but we found that mapping the OS ROM in acts as a workaround - all 64k of the host memory space is now in fast on-board RAM, expect the 3 pages of i/o space. We map in just one of the sideways ROMs - normally BASIC.
We still get video output, because half the RAM is mapped for reads but shadowed for writes. It's still a beeb, not an SBC.
Soon we'll find out how Elite runs on a 12MHz 65816 BBC model B!
Re: Beeb at 17MHz
BigEd wrote:
Soon we'll find out how Elite runs on a 12MHz 65816 BBC model B!
If you _do_ get Elite running, it might be fun to video it and stick it on, say, YouTube
--Martin
Martin Penny
.sig in beta - full release to follow.
.sig in beta - full release to follow.