What happens to the memory that's mapped in the memory gaps? So the 386K memory in the UMA and 1MB in the extended memory at the 15-16MB gap, also the 3-4GB gap?
I currently have it mapped upwards in RAM(so essentially, the 386KB between 640K-1MB is mapped at 1MB+, while the old 1MB-15MB RAM is mapped between 1MB+386K and 16MB+. The same kind of principle applies to the 3-4GB gap, which is mapped to the end, while the final remaining RAM is mapped above 4GB(including any remainder from the lower megabytes.
So, with 1MB RAM:
0-640K=Direct mapped
1MB-(1MB+386K)=First memory hole mapped high
With 16MB RAM:
0-640K=Direct mapped
1MB-(1MB+386K)=First memory hole mapped high
(1MB+386K)-15M=lower part of the 15 MB RAM
16MB+=remainder upper part of the 15 MB RAM.
With 3GB+ RAM the same applies, but with the remainder mapped above 4GB(unusable with 32-bit CPU emulation).