HenryCase wrote:
Task A requests to store "ABCDEF", the MAU stores it at location 0x0001 and passes back a pointer to that location through assigning a 'virtual memory space' 0x0FF.
Task A sends a message through the MAU to Task B to look at memory space 0x0FF.
Task B makes the request to look at address 0x0FF, the MAU does not see a reason to not show this information, and fetches the string "ABCDEF" to pass on to Task B.
The reason that won't work is that there are no "
requests to look at address 0x0FF" it simply does it. Theres nowhere for you to "insert" a virtual->physical memory lookup.
On systems with an MMU the hardware itself does the work of changing the address but it does this in the programs _own_ virtual memory space. Which is what brings us back to the original problem that Bloodline and I have pointed out to you, i.e. that virtual memory is _
private_ to that program/task/etc.
If your MMU just let everyone read and write into the same memory space then it wouldn't be much use as an MMU because you'd still have the same linear address space that we have NOW on the AmigaOS and so you'd have no memory protection!
Your description would give things virtual memory, but it would give everyone the same virtual memory and thus it wouldn't give anything that ran in that virtual memory any memory protection.
Nice try but the system you've described doesn't fix any existing programs.
The only solution to this is to run the older Apps in a sandbox as someone else suggested and NEW apps can be run in a system friendly way using the MMU to gain memory protection.
The trouble is that this requires a rewrite of AmigaOS because AmigaOS itself is one of the main offenders for doing this kind of direct manipulation.
I suggest that if you want to continue this discussion we
start a new thread.
Someone actually had an interesting topic going on here about the ColdFire and I was getting the impression that new versions V4e and V5 of the cores might actually have the necessary supervisor stacks to run 680x0 code using the cf68klib.
@FrenchShark
That asm listing you dumped earlier on, what version of the CF core was it for that made it necessary for you to emulate the entire instruction set?
Andy