( Raynes | 2024. 04. 17., sze – 15:05 )

Ha 640 KiB és annál kevesebb memória van egy ilyen 20 bites címtartományú vagy 16 bites valós módban futó x86-os gépben, akkor nincs neki UMA-ja.

Ha több volt benne, mint 640 KiB, akkor sem biztosan használhattad a 640-1024 KB közötti részt, mert ott meg a BIOS meg egyéb eszközök ROM-ja van (meg videómemória), és ha azok elvileg feleszik az egészet, akkor nem marad semmi. Bár ez nem gyakorlati eset, mivel a gyakorlatban az eszközök minimális ROM-ra építkeztek, így maradt mindig valamennyi memória az UMB-ben.

Ez nem is csak MS-DOS 1.0-6.22 függő, hanem igaz mindenféle DOS-ra (FreeDOS, DR-DOS, OpenDOS), és azoknak minden verziójára, tehát az MS-DOS-nak a 7-8-as, meg PC DOS-nak a 2000-es, stb. verzióira is, sőt, a nem DOS operációs rendszerekre is, CP/86, Xenix, stb., bármire, ami valós módban fut (pl. saját gyártású bare metal program, ami mondjuk a boot sectorból indul), és nem használ más módot, annak ezek a memóriaterületek így érhetők el. Még a BIOS-ra is ezek a korlátok vonatkoznak, nem véletlenül volt szükséges az UEFI egy ponton túl.

Vigyázz, attól hogy DOS fut, attól ez nem mindig marad igaz, mert 386-ostól felfelé a himem.sys, emm386 és más memóriamenedzserek csaltak ám, és valós mód helyett virtuális móddal érték el az 1 MB feletti memóriát, XMS, EMS memóriaként, de ez már nem valós mód ilyenkor! Hasonlóan csaltak az DOS extenderek, amik 32 bites védett módban indultak, DOS4G(W), CWSDPMI, DJGPP, de a DOS alapú Windowsok DPMI módja is ide tartozik (Windows 3.0-Me között megjelent összes, nem NT alapú verzió).

Ezért is van, hogy a memóramenedzserek szépen 64 KB-osával belapozgatták az UMB-be az illető EMS memóriát, mert úgy már valós módban futó programok számára is elérhető. Az XMS memóriánál meg a himem.sys (és klónjai) a 20. címbittel variáltak, hogy elérjék ugyanezt.