CUmini - my Oric storage emulation project

This is the right place to discuss on how to implement hardware vsync, adding a VIA or AY chipset, puting multiple roms, or how to design a new flash expansion card.
Sodiumlightbaby
Officer Cadet
Posts: 53
Joined: Thu Feb 22, 2024 11:38 am

Re: CUmini - my Oric storage emulation project

Post by Sodiumlightbaby »

iss wrote: Sun Mar 24, 2024 3:37 pm 2. it's very important to use open-collector/drain outputs on the extension linked to Oric's control signal inputs!
That should be OK with the current design. The nRESET, nMAP, nIRQ, nROMDIS and nIO_CONTROL signals are all operated by open drain drivers. You can see 4 BSS123 transistors on the PCB for 4 of them, while the last is driven by the IO expander which has one open drain pin.
User avatar
Symoon
Archivist
Posts: 2311
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France

Re: CUmini - my Oric storage emulation project

Post by Symoon »

Dbug wrote: Sun Mar 24, 2024 4:16 pm There's a more complete list somewhere, but can't seem to find it, but there you go: https://wiki.defence-force.org/doku.php ... page_3_i_o
You were probably referring to Seilebost's website, http://passionoric.free.fr/
And this page with page 3 addresses:
http://passionoric.free.fr/fr/oric.htm in French
http://passionoric.free.fr/eng/oric.htm in English
Sodiumlightbaby
Officer Cadet
Posts: 53
Joined: Thu Feb 22, 2024 11:38 am

Re: CUmini - my Oric storage emulation project

Post by Sodiumlightbaby »

Thanks that's very useful. I managed to squeeze a few extra PIO cycles, so we're good for 0x310-0x31B space. Initially it spanned all the way to 0x31F. It will be technically possible to remap the device registers to any other 16 byte aligned address at run time, but that will of course break the unpatched Microdisc emulation.

The input/output device and machine list does raise another question. Are there any guidelines for compatibility with the extended familily of machines like Telestrat and Pravetz 8D?
User avatar
Dbug
Site Admin
Posts: 4463
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: CUmini - my Oric storage emulation project

Post by Dbug »

Sodiumlightbaby wrote: Sun Mar 24, 2024 9:00 pm Thanks that's very useful. I managed to squeeze a few extra PIO cycles, so we're good for 0x310-0x31B space. Initially it spanned all the way to 0x31F. It will be technically possible to remap the device registers to any other 16 byte aligned address at run time, but that will of course break the unpatched Microdisc emulation.

The input/output device and machine list does raise another question. Are there any guidelines for compatibility with the extended familily of machines like Telestrat and Pravetz 8D?
Regarding the Microdisc emulation, it better has to behave unpatched like a normal Microdisc, because there are many different versions of Sedoric, and in my particular case, the Floppy Builder drives the FDC controller directly, totally bypassing Sedoric (it's just used to load the boot sector).

The Pravetz 8D is basically 100% compatible with the Oric Atmos, and so is the Oric Nova 64.

The Telestrat is a special case: It has a built-in FDC (so your card would probably conflict with it) and a second VIA for the bank switching, serial port, etc...
User avatar
iss
Wing Commander
Posts: 1642
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: CUmini - my Oric storage emulation project

Post by iss »

Sodiumlightbaby wrote: Sun Mar 24, 2024 9:00 pm... and Pravetz 8D?
Here you will find the 8D I/O usage.
Sodiumlightbaby
Officer Cadet
Posts: 53
Joined: Thu Feb 22, 2024 11:38 am

Re: CUmini - my Oric storage emulation project

Post by Sodiumlightbaby »

Got the prototype register interface up and running, and needed a quick way of testing it 8)
cumini_mouse_test.jpg
User avatar
ibisum
Wing Commander
Posts: 1655
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: CUmini - my Oric storage emulation project

Post by ibisum »

Goodness!

Contiki-like OS for the Oric says whaaa!

(*ahem* I meant 8-bit Unity OS, *ahem*...)


https://github.com/8bit-Dude/8bit-Unity ... ouse.c#L58
Sodiumlightbaby
Officer Cadet
Posts: 53
Joined: Thu Feb 22, 2024 11:38 am

Re: CUmini - my Oric storage emulation project

Post by Sodiumlightbaby »

Quick update. Emulated BIOS ROM is working and now the Microdisc device ROM runs upto the point where it starts to access the FDC register emulation stubs I currently have there. This should be past some of the overlay RAM initialization, so we got some indication that is working as well. Time to start hooking up the DSK emulation (and debug it :-D)

The commented dissasembly of the Basic 1.1 BIOS ROM was very helpful getting the base system working. Is there something similar somewhere for the Microdisc ROM?
User avatar
Dbug
Site Admin
Posts: 4463
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: CUmini - my Oric storage emulation project

Post by Dbug »

Sodiumlightbaby wrote: Mon Apr 01, 2024 6:56 pm Quick update. Emulated BIOS ROM is working and now the Microdisc device ROM runs upto the point where it starts to access the FDC register emulation stubs I currently have there. This should be past some of the overlay RAM initialization, so we got some indication that is working as well. Time to start hooking up the DSK emulation (and debug it :-D)

The commented dissasembly of the Basic 1.1 BIOS ROM was very helpful getting the base system working. Is there something similar somewhere for the Microdisc ROM?
Not sure if there is a proper microdisc ROM disassembly, the best explanation of the system is in "Sedoric a Nu"

EDIT: Look page 517, there's a commented disassembly

Basically the Microdisc ROM reads the first sectors to identify if a floppy is a bootable ORIC DOS 1.0 disk, which is why all the later OS have the same signature, even Sedoric is identifying itself as such a legacy floppy else the disk would not boot.

That's also what I had to do for the Floppy Builder for my own games and demos.
Sodiumlightbaby
Officer Cadet
Posts: 53
Joined: Thu Feb 22, 2024 11:38 am

Re: CUmini - my Oric storage emulation project

Post by Sodiumlightbaby »

Dbug wrote: Mon Apr 01, 2024 8:31 pm Not sure if there is a proper microdisc ROM disassembly, the best explanation of the system is in "Sedoric a Nu"

EDIT: Look page 517, there's a commented disassembly
Brilliant! Just what I needed :-D
User avatar
Chema
Game master
Posts: 3020
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: CUmini - my Oric storage emulation project

Post by Chema »

Dbug was quicker than me, as usual :D

I can only say that this project is incredibly interesting. I am following with interest!

What an amazing work you are doing.
Sodiumlightbaby
Officer Cadet
Posts: 53
Joined: Thu Feb 22, 2024 11:38 am

Re: CUmini - my Oric storage emulation project

Post by Sodiumlightbaby »

Thank you for the kind words :D
I'm really enjoying this project so far. So many multi discipline aspects working together, and many small milestones to boost those mastering feelings!

Since last time I had to go back and redesign my solution for switching between emulated device ROM and bios ROM. It was not giving me robust access nor boot. I knew it was a bit sketchy but wanted to try the simpler approach first. It was a bit fiddly, but I learned a lot and it helped.

So for progress, could I possibly be the happiest person to hit this usually dreaded error? 8)

micordisc_rom_rv1_adj_req.jpg
User avatar
Dbug
Site Admin
Posts: 4463
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: CUmini - my Oric storage emulation project

Post by Dbug »

Sodiumlightbaby wrote: Wed Apr 03, 2024 3:25 pm So for progress, could I possibly be the happiest person to hit this usually dreaded error? 8)
As people say "The car could not have crashed if it did not actually start!".

It's a good start :)
Sodiumlightbaby
Officer Cadet
Posts: 53
Joined: Thu Feb 22, 2024 11:38 am

Re: CUmini - my Oric storage emulation project

Post by Sodiumlightbaby »

Haha the darn Microdisc ROM fooled me.

I thought I had some muxing issue between the emulated Basic ROM and the emulated Microdisc device ROM, as I was booting into basic. But then I realized I was booting into extended basic. :lol:

microdisc_rom_ext_basic.jpg

I'm quite sure it should _not_ be there though. I was expecting the "Insert system disc" message before getting to extended basic as I haven't "mounted" any DSK images yet. So clearly things are still quite wrong and loads more to do, but really satisfying getting the Microdisc ROM to "talk" after the ROM switching rework.
Sodiumlightbaby
Officer Cadet
Posts: 53
Joined: Thu Feb 22, 2024 11:38 am

Re: CUmini - my Oric storage emulation project

Post by Sodiumlightbaby »

First "insert system disc" achieved!
So we have sign of life from the MAP signal handling and the overlay RAM :D
microdisc_rom_insert_sys_disc.jpg
It took some rewrite of the MAP handling to get here as I had misunderstood the cross-PIO IRQ signaling in RP2040. IRQs are per PIO only - no IRQ signaling is possible between the two PIO blocks.
Post Reply