Yesterday I started playing with a new single board computer, freshly fitted with a 6309, both board and chip courtesy of @Revaldinho:
You’ll notice the board design is by Jeff Tranter, who used Grant Searle’s one-chip glue circuit design as a starting point. And you’ll notice the BBC Basic label: Dominic Beesley wrote a 6809 port (and also a 6309 port) and @hoglet crammed a mini-MOS into the same 16k ROM, so the machine boots to BBC Basic. (Jeff’s original boots to Motorola’s minimal machine monitor ASSIST09, and includes an extended MS Basic.)
Here’s a short program running:
And here’s a longer one - @drogon’s ASCII Mandelbrot, which comes out in about 7 minutes in this case:
Here’s the evidence that it’s a 6309 inside - test program courtesy of @hoglet:
Unfortunately buying 6309 on ebay doesn’t always net a 6309 - sometimes it’s a 6809. @Revaldinho ended up with a mixed bag but I was lucky to get one of the genuines.
What’s a 6309? It’s a very compatible licensed copy of Moto’s 6809. No, wait, it’s got hidden modes and hidden registers and extra opcodes! The thing is a maze of undocumented but solidly useful extra features. If the 6809 is the best 8 bit micro - and clock speed apart it might well have been - then the 6309 is from the future.
And Dominic’s 6309 version of BBC Basic uses the extra opcodes for faster arithmetic… although I haven’t yet run it. (The 6309 being a bigger machine, the in-Basic assembler is bigger too, and there’s not room to squeeze that 6309 assembler in to the 16k Basic+MOS build, so the 6309 Basic I hope to run before long will only have a 6809 assembler. Hope that’s clear!)
How big would a 6309 computer be with built in video and a PS/2 keyboard?
About the same as any other 8 bit micro… much depends on how you’d choose to implement the video and the keyboard interface. If you use modern microcontrollers, that’s going to be quite compact, but if you use techniques from BITD, that’s going to be about the same size as the boards we used back in the day - pretty large, if you look at systems which didn’t use any ULAs or custom chips.
One of our project ideas is to use a Raspberry Pi Pico as a peripheral to hang off an 8-bit bus, providing relatively high level functions, with its own private frame buffer and VGA output. There’s a gain in not putting the frame buffer in the 8 bit micro address space, and there’s a loss in bandwidth should the 8 bit code want to read frame buffer contents - something which a lot of games do, but serious software might not need to.
Tastes vary as to which tactics appeal to each individual, and it’s not really interesting to debate the pros and cons. If there’s something you want to build, go ahead and build it, and enjoy your hobby.
Oh good, maybe we can swap notes. I’ve started a build of Mike Cvetanovski’s similar 6809 Max board - https://oldmicros.net/product/6809-max-pcb/ - just waiting for some remaining components to arrive. Hope to start building on the 24th. (6809, not 6309 - although it looks like a great upgrade, I need a real 6809 to compare against the static binary translator for 6809 that I wrote - at Index of /vectrex/6809sbt )
Ah, the DS1249 non-volatile SRAM is an interesting fit there - can do the job of both RAM and ROM, once you’ve managed to bootstrap.
Yeah, it’s an old trick. I used to do something similar with my 6809 second processor for the Beeb - I’d write the 1K of tube code into one of those battery-backed rams in a Beeb rom socket and transplant it into the 6809 to bootstrap it…
Ohh, that 6809 BBC BASIC looks like another nice piece of software to port to my FPGA 6809 system… another autumn project.
Bit of an update - the software adventures continue, see @hoglet’s thread over on Stardot:
6809/6309 SBC running BBC Basic
We’ve got discussions going on about flow control and the serial port - these are likely to feed into a successor single board computer design, less minimal but still retro, still 6309, and still running BBC Basic. Hopefully we’ll look at other operating systems too - several mentioned on Arto Salmi’s page of resources:
6809 Emulation Page.
“FLEX, NitrOS-9, FORTH, CUBIX, FUZIX…”
(Our preferred USB to serial adapters use FTDI chips, which will send up to three further bytes after RTS has kindly asked them to stop, and at high baud rates this is resulting in overrun. A better UART might help, but there’s work to do on the software side too.)
I have a 6809 based RC21014 setup. At the moment the boot ROM is Cubix, but supporting ROM BASIC as well might be interesting I guess.
Video on a 6809 btw can be pretty compact. At least on a 6809E. The SAM and 6809E combo plus a little bit of glue did your video, memory interfacing and some of the glue for everything else. There’s not a lot of chips on a Dragon32 main board when you factor out the keyboard, cartridge and I/O glue.
PS/2 keyboard bitbanged is less electronics than a matrix keyboard scanner, but a bit more interesting to code 8)
I think the SAM chip can also be used with static ram, that would speed it up a tiny bit as you
don’t do refresh. I suspect a PS/2 keyboard would break lots 6809 software, as the 6809 was designed
for games rather than apps.
CP/M while a primitive OS, was a real OS that had ample memory 48Kb+ and good sized floppy disk and i/o for a printer. You did not have to hack together a system to support a DOS like many
8 bit machines of that era did.
I don’t t think It actually makes a difference if you use SRAM as the SAM video and refresh usually live on the other half of the bus cycle to the processor (akin to the 6845 and 680x/6502 pairing).
FLEX is a bit weird, although it did get some things right that CP/M messed up - like being able to move file systems between machines. Flex for 6809 even had heirarchical file system addons. OS/9 on the other hand was a serious RTOS and mini Unixish system way better than any of the usual off the shelf Z80 suspects.
On the keyboard side Flex, Cubix, OS/9 all have input interfaces much like CP/M did, so it’s easy to plug the PS/2 keyboard into the system. For old games machines there are some much cleverer microcontroller based interfaces that fake the Tandy COCO keyboard one side and have PS/2 the other.