It's easy to add external memory, but how you would compile code for whole project, and then split code in 2 segments?
Only way I see this could work is to use only ASM, so you could manually enter address of each subrutine. But would MPASM allow you to assembly code larger than 128K?