I found a flaw in my Logic.
When a either a read or write tries to go out of bound and this is a register set value which should be set during boot.
It triggers a double bus error on the CPU going out of bound resulting in a system Halt for that CPU.
The second/companion CPU would receive a interrupt and get a vector this would be somewhere in ROM which should point to a address buffer which holds the other CPU's stack data and use that to do the Virtual operation.(CPU's are cross wired so they refer to each other as the second CPU and assume they them self are the main, be careful!)
at the end of the interrupt the second/companion CPU should set the lowest address to the stack pointer of the other CPU.
The upper most 2MB are cross addressed so the stack pointers grow toward each other!!!
The lowest 8MB should be shared Memory but this does not need to be fully occupied.
There is 2MB address space for ROM, these are not shared by the CPU's and overlay address 0 at cold boot.
And the other 4MB are for Board resources, for now i need some more Ideas.
This would make the memory map something like this.
000000h to 7FFFFFh Shared Memory
800000h to BFFFFFh Board Resources
C00000h to DFFFFFh ROM, this is not shared between CPU's
E00000h to FFFFFFh Mirrored RAM, this is cross wired to let the stack pointers grow toward each other, I assume that 1MB should be a safe margin as long no one pokes around at random in this space.
I use 2MB slabs because I can simply use a 74 138 to decode the space it points to.
At this point I would also like to say Each 2MB Address Slab has it's own 16bit data path.
If i would use 4 68K's i would have gone for something different.