The MOOH memory & SPI board

A place to discuss everything Dragon related that doesn't fall into the other categories.
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

The MOOH memory & SPI board

Post by tormod »

As soon as I had the Spinx-512 board working correctly, I started on the successor but due to the VCF and everything that followed, the development was stalled for a year, with mainly just some PCB routing left. The last weeks I have picked up on it and here we go:
mooh.jpg
mooh.jpg (129.91 KiB) Viewed 13064 times
The MOOH - a 512 KB memory extension + SPI interface cartridge board. Sounds a lot like the Spinx-512, no? So what's different?
- a ROM socket - for booting without DriveWire or MPI
- the "nx32" banking scheme is ditched (no compatibility with spinx-512 or the +32K board), instead:
- a DAT (dynamic address translator, or MMU) pretty much compatible with the one in the CoCo3!
The 65SPI-based 4-port SPI interface (and SD card socket) remains the same

It was easy to tweak the FUZIX dragon-nx32 port to run on this board (with the same 32KB banking) but of course the main target is the long-time wet dream of running NitrOS-9 Level 2 on the Dragon!
KenH
Posts: 182
Joined: Fri Oct 12, 2012 9:50 am

Re: The MOOH memory & SPI board

Post by KenH »

I definitely want one of these. Where can I sign up to pre-order :ugeek:
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: The MOOH memory & SPI board

Post by pser1 »

KenH wrote:I definitely want one of these. Where can I sign up to pre-order :ugeek:
Hi Ken,
pleased to hear from you again!

@tormod
That's the kind of expansion I have been waiting for ... one with 8k bocks a la CoCo3
I am sure you have analyzed costs and so 512k is the best choice, but listening to people
on the maltedmedia list, it seems that the CoCo3 GIME and so OS-9 Level II could work
without problems with MMUs up to 2Mb ... might this amount be unnecessary big?
cheers
pere
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: The MOOH memory & SPI board

Post by tormod »

Ken, I guess you just did :) I will post in the "Sales" section when it is ready for the "general public". But I am happy to already serve early adopters who can live with some potential upgrades and exchanges. Until we have SD-card/SPI drivers for NitrOS-9, running NitrOS-9 will require DriveWire or an MPI for other mass storage options. FUZIX supports the SD-card already, and I have a boot ROM that should boot from the SD card, as soon as I get to burn it. FUZIX already runs on the MOOH by putting together "nx32"-like 32K banks, but a more streamlined port can, like the CoCo3 port, use smaller banks to allocate memory more efficiently.

The DAT/MMU is exactly like the one in the GIME in that it has 2 tasks, the task registers are at $FFA0-$FFAF, the DAT is enabled at $FF90 bit 6, the CRM* at bit 3, the task is selected at $FF91 bit 0. One small difference is that when the CRM is enabled, its upper 16 bytes are also seen at FFFx - so that the vectors can be directly programmed. This because on the CoCo3 the ROM vectors point to the CRM, but on the Dragon and CoCo1/2 the ROM vectors point to $01xx and this is not practical when we want to map various stuff in the $0000-$1FFF segment.

*) CRM: Common Reserved Memory vector page, a page that stays at $FE00-$FEFF regardless of the current mapping through task registers. Typically used for interrupt handling code.
Last edited by tormod on Fri Sep 15, 2017 12:32 am, edited 1 time in total.
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: The MOOH memory & SPI board

Post by pser1 »

Hi, Tormod
I forgot to put a question about the ROM
How big is it gonna be? I mean will it accept a 16k ROM?
Is there anything to work with the SDC and the SPI?
Any technical info about it would help a lot!
All in all this is really great!
Put me down for one, please!
Thanks in advance
cheers
pere
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: The MOOH memory & SPI board

Post by tormod »

Pere, who could possibly need more than 512KB of RAM :)

Yes, I have also looked at it from a cost and complexity issue. I think a lot more people will prefer an affordable 512KB option. Personally I wouldn't investigate in larger capacities unless there is a solid base of software to take advantage of it. Now we have this hardware, but there will be a several years journey to fully exploit its possibilities, adapting and building software around it. For multi-tasking, having 16-32 processes in memory sharing one poor 6809 sounds enough. Fast SD cards obviate the need for RAM disks to a large degree. I am not even sure e.g. NitrOS-9 can use the memory beyond 512KB for anything else than RAM disk. But hey I know, some people will always keep wanting more :-p
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: The MOOH memory & SPI board

Post by tormod »

Pere, the ROM is a 27C512 type, so 64KB, with some kind of software selection of what comes up at $C000 (not tested yet).

The SPI interface is to a large degree documented in the links in the Spinx-512 post.
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: The MOOH memory & SPI board

Post by pser1 »

tormod wrote:Pere, who could possibly need more than 512KB of RAM :)
Yes, I have also looked at it from a cost and complexity issue. I think a lot more people will prefer an affordable 512KB option. Personally I wouldn't investigate in larger capacities unless there is a solid base of software to take advantage of it. Now we have this hardware, but there will be a several years journey to fully exploit its possibilities, adapting and building software around it. For multi-tasking, having 16-32 processes in memory sharing one poor 6809 sounds enough. Fast SD cards obviate the need for RAM disks to a large degree. I am not even sure e.g. NitrOS-9 can use the memory beyond 512KB for anything else than RAM disk. But hey I know, some people will always keep wanting more :-p
Hello Tormod,
Yes, you are right, I also doubt that there is any program that could take advantage of such a RAM amount, but as you say, there is people
even asking for an 8Mb expansion!
I will feel very comfortable with 512k suporting the CoCo3 banking method.
This time I will gladly volunteer if a need to program / test anything ever arises.
Remebering the things we did in the past, it'd be a pleasure to collaborate with you!
I like the idea of the 64k ROM.
Just to explain, in Retrowiki (spanish group) we have developped a disk controller that has a ROM like this one and we are burning inside these:
- DOSPlus5.0 extended to allow drivewire access
- DOSPlus5.0 just 8k for those programs that need to switch to MAP1, for instance "The Hobbit"
- Orchestra90 that sends data to the internal Dragon DAC. It is incredible to turn on the floppies and being able to load any score
from them to be played by the ROM
- DDOS1.3d a Dragon Data DOS version with the nice DIR by Steve Evans
I don't know what do you expect that ROM to be used for ... booting which system? NitrOS-9, Fuzix?
Later I will give a read to the info about the SPI capabilities, sounds very interesting.
Thanks a lot!
cheers
pere
sixxie
Posts: 1346
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Re: The MOOH memory & SPI board

Post by sixxie »

Another GIME feature that might just fit in your design is the timer - not sure if NitrOS-9 Level 2 uses that at all. And of course you don't get the option of programming whether IRQ or FIRQ is triggered: FIRQ or nuthin'.

Even without it, this looks like a cool project though.
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: The MOOH memory & SPI board

Post by tormod »

Thanks!

Of course, the MOOH board doesn't fully turn your Dragon/CoCo1/CoCo2 into a CoCo3. The CoCo3 has additional graphic capabilities and timer and keyboard interrupts and fine-grained interrupt source selection. Anyway, the timer is not used at all in NitrOS-9 AFAICS. The kernel does not need it and from grepping the source it seems to be no system interface to it. And keyboard entry works without keyboard interrupt.

There was actually surprisingly little work needed to get Level-2 to run on the MOOH. I spent most time on tweaking the keyboard scan routine for the Dragon keyboard. I ended up with a hack transposing the keyboard row order inside the scan routine, which preserves the scan codes, and of course adding some modifier combinations to replace the extra keys on the CoCo3.

For anyone interested see the attached patch of the system modules. It is an intermediate version just for illustration, I have since moved the VDU address, and it also doesn't contain the build tree and defs file. In my current tree I keep separate copies instead of patching the common system modules, so the differences are not so easy to spot or generate. It will end up in the NitrOS-9 repo soonish, but just let me know if anyone is interested in building it. I will also post the XRoar patch for the MOOH memory emulation.
Attachments
0001-XRoar-Add-mooh-cartridge-module.patch
Preliminary patch for XRoar
(6.13 KiB) Downloaded 463 times
mooh-v5b.patch.txt
WIP (not latest development)
(23.26 KiB) Downloaded 482 times
Post Reply