Как активировать драйвер emm386?

Софт только для использования в DOS

Re: Как активировать драйвер emm386?

Сообщение krotan » 03 авг 2023, 11:09

Работа с памятью не единственная функция emm386, он переключает процессор в виртуальный режим работы. Это, к примеру, позволяет запустить несколько виртуальных процессоров на одном реальном... таким образом может быть реализована многозадачность...
Последний раз редактировалось krotan 30 сен 2023, 23:41, всего редактировалось 1 раз.
Аватара пользователя
krotan
Мастер Даунгрейда
 
Сообщения: 243
Зарегистрирован: 03 фев 2022, 20:16

Re: Как активировать драйвер emm386?

Сообщение Freeman » 03 авг 2023, 13:44

:shock:
Последний раз редактировалось Freeman 30 сен 2023, 23:41, всего редактировалось 1 раз.
Место для воззвания
Аватара пользователя
Freeman
Мастер Даунгрейда
 
Сообщения: 987
Зарегистрирован: 06 дек 2012, 04:49
Откуда: Санкт-Петербург
Железо: В прошлом

Re: Как активировать драйвер emm386?

Сообщение fly_indiz » 12 ноя 2023, 06:35

krotan писал(а):Работа с памятью не единственная функция emm386

Их действительно несколько и они были грамотно расписаны выше.
1 - основная. Эмуляция EMS-памяти. (которая практически - очень мало кому нужна, как правило эту функцию и не используют за ненадобностью)
2 - дополнительная. Организация блоков UMB. (практически - чуть ли ни единственная ценная функция от EMM)
3 - дополнительная. Предоставляет интерфейс VCPI (устаревший и никому не нужный. Вместо него используют DPMI)

krotan писал(а):он переключает процессор в виртуальный режим работы.

Корректнее - он переключает в защищенный режим, и выполняет DOS как v86-задачу.
Но вовсе не для того о чем вы написали далее...

krotan писал(а):позволяет запустить несколько виртуальных процессоров на одном реальном... таким образом может быть реализована многозадачность...

собственно фэйспалм ради которого пишу ответ... "слышал звон но не знаю где он"..
Если рассматривать в рамках винды - ей это совершенно не нужно, она сама переводит проц в защищенный режим, сама организует память и все необходимые структуры для работы, в т.ч. многозадачность. Ей EMM что есть что нету - до писюна.
Если рассматривать в рамках DOS - EMM никакую "многозадачность" не организует. Всё что он делает - описано выше.
Защищённый режим используется ТОЛЬКО потому, что в нём используя MMU делается ремап адресов участков дальней (>1мб) памяти на адреса в области UMA, таким образом организуя окно для отображения EMS-памяти и похожим принципом работу блоков UMB.

Т.е. это костыль.
Причем порой приносящий больше вреда чем пользы. Есть специфичные DOS-приложения защищённого режима несовместимые с EMM.
Правда с другой стороны есть ещё более редкие и более специфичные программы, которым нужна именно EMS-память и без EMM не обойтись. Но слава богу у меня таких нет в практическом использовании. Вангую - скорее всего тут ни у кого таких нет и слава богу.

Если не нужен EMS (а кому он нужен?...) то выше в топике был озвучен вариант НЕ-костыльного (аппаратного) решения для обеспечения UMB:
UMBPCI
работающий путем разблокировки участков UMB-памяти путем перепрограммирования чипсета.
Но способ хоть и более "прямой", без ремапа, без лишнего слоя виртуализации в защищенном режиме и связанных с этим проблем,
но имеет свои ограничения и не всегда можно получить хороший результат, тут успех зависит от материнки и чипсета.
(Себе специально подбирал материнку в том числе и с учетом особенностей работы теневой памяти, работы ISA-DMA и её кешируемости)

Если допустить что звезды сошлись удачно для UMBPCI - то единственное преимущество EMM386 (и ему подобных) состоит в том что он умеет ремапить на неиспользуемый в совмеменных VGA диапазон B000-B7FF, а UMBPCI не может разблокировать память в этом диапазоне, т.к. это не теневая память, а ссылается на старый монохромный video ram (пусть и неиспользуемый).
Но это единственное "преимущество" EMM меркнет перед недостатками и тем что сам EMM занимает в базовой (<1мб) памяти больше места.

Можно собрать плюсы и минусы EMM (и ему подобных) и UMBPCI (если повезло с хорошо поддерживаемым чипсетом) в табличку:
EMM плюсы:
- Умеет организовывать память по спецификации EMS (сомнительная нужность)
- Умеет предоставлять api VCPI (сомнительная нужность)
- Умеет делать UMB в диапазоне B000-B7FF (несомненный плюс)
EMM минусы:
- DOS выполняется не в нативном real mode, а как виртуальная v86-mode машина защищенного режима. Может приводить к несовместимости с некоторыми DOS-приложениями
- замедляет работу системы (из-за усложнения работы с памятью через защищенный режим)
- как драйвер занимает больше места в базовой (<1mb) памяти
UMBPCI плюсы:
- Работает в нативном для DOS real-mode. Отсутствуют вероятные несовместимости, высокая скорость.
- как драйвер - занимает всего 176 байт в нижней памяти!
UMBPCI минусы:
- невозможно использовать диапазон B000-B7FF под UMB
- нужно везение с чипсетом. (предполагается что повезло)
Последний раз редактировалось fly_indiz 13 ноя 2023, 15:22, всего редактировалось 2 раз(а).
fly_indiz
Новичок
 
Сообщения: 2
Зарегистрирован: 12 ноя 2023, 05:59

Re: Как активировать драйвер emm386?

Сообщение krotan » 13 ноя 2023, 21:33

Спасибо, очень познавательно. Но скажите, каким образом реализуется UMBPCI?
fly_indiz писал(а):Если не нужен EMS (а кому он нужен?...)
Я без EMS вообще никак. Impulse Tracker хоть и запускается, но работать без EMS невозможно. Не судите всех по себе...
P.S. к тому же без emm-драйвера не работает замечательный эмулятор Sound Blaster от Crazii, так что без него даже в игрушки не поиграть на современном железе под чистым DOS...
Последний раз редактировалось krotan 13 ноя 2023, 21:52, всего редактировалось 1 раз.
Аватара пользователя
krotan
Мастер Даунгрейда
 
Сообщения: 243
Зарегистрирован: 03 фев 2022, 20:16

Re: Как активировать драйвер emm386?

Сообщение uav » 13 ноя 2023, 23:13

EMS, безусловно, нужна - есть куча игр, её поддерживающих, но не поддерживающих XMS.
Последний раз редактировалось uav 14 ноя 2023, 01:31, всего редактировалось 2 раз(а).
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 2432
Зарегистрирован: 22 дек 2008, 14:21

Re: Как активировать драйвер emm386?

Сообщение oldpcfan82 » 14 ноя 2023, 00:10

ctv писал(а):Как активировать драйвер emm386?

Пользуйтесь DOSBox, он вроде не требует никаких emm386.
Аватара пользователя
oldpcfan82
Мастер Даунгрейда
 
Сообщения: 279
Зарегистрирован: 01 окт 2023, 22:57

Re: Как активировать драйвер emm386?

Сообщение krotan » 14 ноя 2023, 20:17

oldpcfan82 писал(а):Пользуйтесь DOSBox, он вроде не требует никаких emm386.
В DOSbox нет 16-битного звука. А в чистом DOS+SBemu есть...
Аватара пользователя
krotan
Мастер Даунгрейда
 
Сообщения: 243
Зарегистрирован: 03 фев 2022, 20:16

Re: Как активировать драйвер emm386?

Сообщение fly_indiz » 17 ноя 2023, 11:07

krotan писал(а):скажите, каким образом реализуется UMBPCI?

Есть официальный мануал где расписано как он работает
https://www.uwe-sieber.de/umbpci_e.html
Простыми словами:
1) он перепрограммирует чипсет, открывая доступ на запись незанятым участкам теневой памяти в диапазоне UMA.
2) модифицирует загруженный ранее до него HIMEM, дополняя его функцией "Request XMS UMB", организуя таким образом блоки UMB в открытых участках теневой памяти.
Еще проще: аппаратно открывает и так по факту существующие участки UMB, которые обычно закрыты чипсетом на запись.

krotan писал(а):Я без EMS вообще никак. Impulse Tracker хоть и запускается, но работать без EMS невозможно. Не судите всех по себе...

Не сужу. Я не говорю что программ требующих именно EMS нет, просто они как правило совсем устаревшие, их мало и часто им есть нормальные альтернативы, работающие или с памятью XMS, или в защищенном режиме под dos-extender-ом.
Буду завтра дома - проверю работу Impulse Tracker
Проверил и не дома. Вы правы. Ему нужен именно EMS.
Как вариант - иметь тогда в config.sys загрузочное меню с возможностью различной загрузки, когда требуется EMS - загружать emm386 или альтернативный., когда не требуется - UMBPCI (правда юзать его только если повезло с чипсетом). Я у себя кстати именно так и сделал (опять же не "сужу", а именно на такой всякий странный пожарный случай когда вдруг если понадобится)
Или использовать альтернативу например вроде бы народ FT2 использует, вроде очень продвинутый трекерный редактор.

krotan писал(а):P.S. к тому же без emm-драйвера не работает замечательный эмулятор Sound Blaster от Crazii, так что без него даже в игрушки не поиграть на современном железе под чистым DOS...

на современном железе должна стоять современная ОС ))))) и юзать DOSBox где эмуляция SB встроена на очень хорошем уровне )))
А чистый bare-metal DOS надо запускать на подходящем для него железе, для чего я собрал правильный (почти, с условностями) ретро-тазик, с оригинальным ISA-саундбластером (правда не совсем тем, что хотел, но этот вопрос надеюсь решу)
Последний раз редактировалось fly_indiz 18 ноя 2023, 10:44, всего редактировалось 5 раз(а).
fly_indiz
Новичок
 
Сообщения: 2
Зарегистрирован: 12 ноя 2023, 05:59

Re: Как активировать драйвер emm386?

Сообщение uav » 17 ноя 2023, 11:25

krotan писал(а):В DOSbox нет 16-битного звука. А в чистом DOS+SBemu есть...

Почему же нет? Ведь он эмулирует Sound Blaster 16. Или Вы про окно сеанса DOS в Windows?
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 2432
Зарегистрирован: 22 дек 2008, 14:21

Re: Как активировать драйвер emm386?

Сообщение 0ffer » 31 янв 2024, 00:13

Обновил загрузочный образ Windows 3x в расширенном режиме.
IO.SYS теперь упакован и emm386.exe урезанный китайцами
Последний раз редактировалось 0ffer 31 янв 2024, 00:14, всего редактировалось 1 раз.
0ffer
Мастер Даунгрейда
 
Сообщения: 152
Зарегистрирован: 23 янв 2011, 11:16
Железо: HP 6820s

Пред.

Вернуться в Программы для DOS

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2