Користувач:Luver/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.