SAMx8: Dragon 64 512K expansion

For the discussion of all hardware related topics.
Post Reply
sixxie
Posts: 1470
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

SAMx8: Dragon 64 512K expansion

Post by sixxie »

I decided to see how much you could squeeze out of the same CPLD I used in the SAMx4. This was the result.
(I am particularly happy with pages 4 & 5 of the manual ;))

So far I have mostly just been playing Donkey King at double speed which is quite fun, but I've also filled all 512K with a pattern and scrolled through it - which takes about 5½ minutes!

Because it's a small CPLD and I'm not shifting page registers out to extra fast SRAM, the page size is a quite coarse 16K, but with a COMMON flag that fixes the top 8K (and IRQ vectors in RAM) in place in case you want a smaller "kernel" which might make up for that a bit. Basically I've been nosing around the Fuzix source, and this felt like it might be a good fit...

Very much only for the PAL Dragon 64 because it needs to plug into TWO sockets on the motherboard. Even the Tano has a different layout, so you can't use it with one of those.

As usual the JLCPCB minimum order means I have some spares - if anyone's interested (with the important caveat that it involves replacing a chip on the motherboard with a socket), I'll come up with a price for them, but maybe after I've written something a bit more diagnostic-ey to test beforehand!

FWIW even though it ditches some SAM features and tweaks others, Phill's diag cart is still happy with the result :)
Last edited by sixxie on Fri Mar 28, 2025 5:29 pm, edited 1 time in total.
pser1
Posts: 1864
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: SAMx8: Dragon 64 512K expansion

Post by pser1 »

this is a very interesting project!
Nice work of yours, as usual, congratulations!
I will be keeping an eye on this project. I am really interested in a 'big' RAM expansion with MMU for the Dragon 64
This monster could led to new ideas used together with the Supersprite-FM+ module. Let's dream!
cheers!
sixxie
Posts: 1470
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Re: SAMx8: Dragon 64 512K expansion

Post by sixxie »

Soldering up the Supersprite board is on my todolist - then I'll finally be able to play some of the things you've been working on!

I'll report back whether they work together, but can't think of any good reason they wouldn't :)
pser1
Posts: 1864
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: SAMx8: Dragon 64 512K expansion

Post by pser1 »

sixxie wrote: Fri Mar 21, 2025 10:19 pm Soldering up the Supersprite board is on my todolist - then I'll finally be able to play some of the things you've been working on!
Most of the things I have done could be executed in MAME. The only things that cannot be 'emulated' by now are all the music and graphics programs that do 'stream' right from the CoCo-SDC. I think that this is not yet allowed in MAME ...
I'll report back whether they work together, but can't think of any good reason they wouldn't :)
Neither can I, being one an external module and the SAMx8 an internal RAM expansion, they should never collide.
Having the bonus of double speed with no restrictions besides the paging possibilities must be very useful even for the AGD engine for the V9958!
cheers!
sixxie
Posts: 1470
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Re: SAMx8: Dragon 64 512K expansion

Post by sixxie »

FYI I've pushed out RC4 - pretty sure this is "finished", just need a test suite.

While I doubt anyone built one yet, on the offchance they did, all you need to do is reprogram the CPLD.

Various timing changes, but the major programming difference is that you can now nominate one of both of the top 4K areas to be COMMON, instead of just a blanket 8K select. This actually works nicely for Fuzix, which only requires 4K to hang around, and means maximum user process size grows to 60K :)
sixxie
Posts: 1470
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Re: SAMx8: Dragon 64 512K expansion

Post by sixxie »

The dev branch of XRoar has SAMx8 support in it - just run selecting a Dragon 64 with 512K of RAM:

Code: Select all

xroar -m dragon64 -ram 512
Snapshots here:

https://www.6809.org.uk/tmp/xroar/

In the same directory, I've adapted Stewart's memory tester for it: https://www.6809.org.uk/tmp/xroar/memtstx8.tar.gz for which source here: https://gitlab.com/sixxie/memtstx8

I've been pushing out a branch for Fuzix support in my fork here https://codeberg.org/six809/FUZIX - check out the "samx8" branch. Don't be surprised if history for that branch shifts and changes at random :)

Edit: ok, here's the boot loader: https://gitlab.com/sixxie/fzload09

Further edit: whoops, realised the boot loader used an fdisk tool I hadn't packaged. Don't really know where to put it, so for now it's here: http://www.6809.org.uk/tmp/xroar/yafdisk.pl

Further further edit: Alan moved his FUZIX repo to codeberg, so I've followed suit.
sixxie
Posts: 1470
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Re: SAMx8: Dragon 64 512K expansion

Post by sixxie »

Ok this was somewhat delayed, but you can now (big asterisk) compile a Dragon 64 + SAMx8 + CoCoSDC Fuzix image in-tree using the "samx8" branch from this repo copy:

https://codeberg.org/six809/FUZIX

The big asterisk is you need the absolute latest from the lwtools mercurial repository for it to work properly. My boot loader uses PHASE/DEPHASE, and I wanted to make sure people didn't need Yet Another Assembler installed, and a patch to fix use of those keywords went in just a few days ago.

Of course you still need to jump through all the hoops to get yourself a 6809 C compiler, etc.

Once the next lwtools proper release comes out, I'll submit this for inclusion into mainline Fuzix.

Build with:

Code: Select all

$ make TARGET=dragon-samx SUBTARGET=sdc
Then copy the resultant Images/dragon-samx8/fuzix-sdc.img to your SD card as, say, FUZIX.VHD. Mount it and BOOT - the loader should take over pulling in the rest of the Kernel and once it's all in place, transfer control. You'll then need to enter "hda1" as the root device at the prompt.

If you want to try it in emulation with drivewire, instead try:

Code: Select all

$ make TARGET=dragon-samx SUBTARGET=emu
You'll need to serve up Images/dragon-samx8/fuzixfs.img over drivewire, and mount then boot Images/dragon-samx8/fuzix-ddos.DSK in a machine configured with SAMx8, and a fake DragonDOS with becker port (xroar -m dragon64 -machine-opt sam=samx8 -cart dragondos -cart-becker).

One of these days I'll actually try and get some CoCoSDC support into XRoar...

Edit: after some gentle persuasion, I've rewritten the boot loader in PIC, which doesn't require the PHASE/DEPHASE keywords, so now you don't need any special version of lwasm installed :)

..ciaran
Post Reply