Order of the Butterfly
Posts: 370 from 2003/3/28
Quote:
> MorphOS is designed to have separate boxes. You could run the existing
> A-Box in an emulated PPC environment. That in turn runs the 68K stuff.
> You then have another A-Box2 that only runs ARM compiled stuff. Yes the
> 68K and PPC stuff will suffer but anything native will fly along.
Reminds me of this proposal, only with ARM instead of x86:
https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=6570&forum=3
It's not quite the same.
As I understand it, on ARM the problem would be intermixing big endian code (68K, PPC) with little endian code (ARM). In both cases the data is all big-endian.
On IA32 everything is little-endian, code and data.
What I had suggested is essentially 2 A-Boxes. One includes a PPC emulator to run PPC and 68K code.
The second A-Box (B-Box?) would only run natively compiled ARM code. No intermixing.
This has a big advantage for moving things forward:
If you are building a new box that you know requires at least a re-compile, you could also add other conditions. e.g. Forbid() could be either be ignored or forbidden (pardon the pun).
You could also put down plans for moving towards things like full memory protection and multi-processing.
I'm not sure how you'd go about this but you could possibly do it with proxies. The app would talk to the proxy thinking it was the OS. The Proxy then does the interaction with the OS.
Then, you build a "C-Box" with memory protection etc. In this box your app still speaks to the proxy but this time it doesn't write directly into kernel memory as the Amiga does.
I don't know how easy or difficult that would be in practice but it would give you an ordered transition that would allow you to migrate today's software into a rather more modern environment. A sudden leap is not likely to work.
There would be a cost to using proxies of course but given how much ARM's performance will shoot up over the next couple of years it's not something you're likely to even notice.