Unreal mode
Unreal mode — режим роботи процесора x86, який активно використовували в деяких програмах для MS-DOS на початку 1990-их років, в тому числі деяких іграх, які частково актуальні і зараз. Також відомий як англ. 32-bit flat memory mode, або «плаский режим».
З'явився як недокументована можливість процесора (можливо, що це лише баг).
Опис
Ядро MS-DOS працює в 16-бітному режимі процесора, реальному або V86. Щоб забрати обмеження у розмірі адресного простору в 1Мб, необхідний захищений режим, і, скоріш за все, 32-бітний захищений режим (бо в 16-бітному доступно тільки 16Мбайт).
Так, для розробки програм під MS-DOS, що використовують всю пам'ять, приходилося або програмувати в захищеному режимі й використовувати DOS-extender та DPMI (до речі, так написаний Doom), або ж використовувати недокументовану можливість процесора.
Ця можливість дозволяє ненадовго увійти в 32-бітний захищений режим, завантажити туди дескриптори сегментів з межами, що перевищують 64Кб і, згодом, вийти назад в 16-бітний реальний режим. При виході зберігається 32-бітне значення границі.
Після того можна звертатися до усієї пам'яті комп'ютера прямо, відносно сегменту з «невірною границею».
Розробка в захищеному режимі потребувала використання всього пакету інструментів та налагоджувача, розрахованих на це, та зазвичай, зв'язаного з конкретним DOS-extender'ом. Ці пакети були дорогими і не так популярні, як звичайні середовища розробки під DOS.
Unreal mode дозволяв використовувати всю пам'ять у програмах, розроблених в звичайних середовищах розробки, наприклад, Borland C++.
Обмеження
Неможливість роботи в багатозадачних середовищах на основі DOS та V86-вікні операційної системи Windows, в тому числі в NTVDM Windows NT.
Більш того, unreal mode не сумісний з EMM386 — останній працює, створюючи єдину віртуальну машину V86 та завантажуючи туди весь DOS.
Повноцінні віртуальні машини, такі, як Virtual PC і VMWare Workstation, зазвичай працюють без проблем. Тим не менш, Hyper-V не підтримує unreal mode.
Приклади ігор
- Ultima VII The Black Gate
- Ultima VII Serpent Isle.