ibisum wrote: ↑
Sun Jun 14, 2020 8:38 pm
Stupid question: would it not be feasible to merge the ROM's?
Not a stupid question at all!
It would be possible to put the contents of more than one ROM into a larger EPROM -- that's been done for things like mods where people have put an Oric 1.0 ROM, an Atmos 1.1 ROM, diagnostic software, and something else, into one 27C512 (which is 4 x the size needed for Oric's #C000-#FFFF)
But -- to access any one of 4 quarters needs some hardware support (either manually switching two address lines between 00, 01, 10 and 11) or other electronic means, none of which is built into Oric, or the disk systems etc. So you'd have to design and add that yourself.
Then we're still back to the priorities problem -- a bare Oric has one ROM, it boots, and is in control. Simple.
An Oric with a single disk controller -- the external electronics in the controller force the internal Oric ROM out of the way at boot time (Asserting ROMDIS), and it demands to take over. Once it has done what it needs to (loading the boot sector, running it, loading the rest of DOS into memory and relocating it up into shadow memory, setting up vectors for ! commands etc) it can allow the external ROM to go quiet, allow the internal ROM to come back into action, and the now-running Oric can jump to start of basic, or Cold Reset, or whatever. Complex as that sounds, it's easy to see who's in control, and when. There is only one level of override provided by Oric, internal ROM or "other peripheral".
Add a second disk controller
and you have a fight -- what mechanism can the disk controllers use to argue amongst themselves
who gets to boot Oric, and how to transfer control from disk controller 1 to 2, before letting Oric boot. There is no mechanism for that, and I suspect no-one has ever tried to put two disk controllers on one Oric.
I think that external peripherals mostly are designed to believe they are the ONE extra device attached to Oric, beyond that, all bets are off (Oh, sorry, those items aren't compatible, shame ...)
Some other computers (like e.g. The Enterprise 64/128) had a better attempt at this sort of thing, by having the onboard OS ROM go through the memory map looking for "ROM signatures" which would allow it to find and enumerate any ROM extension, give it the opportunity to do things at startup, maybe take over the boot process etc, before finally falling back on the built in word-processor as the default code. BASIC was a plug in cartridge ROM. The disc system had its own ROM to get EXDOS booted. Control was passed around until everything had initialised, then someone took up running things!