Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Старый софт » DOS/16M |
<<Назад Вперед>> | Страницы: 1 2 3 4 | Печать |
Zelya
Member
Откуда: Львов Всего сообщений: 187 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 11 янв. 2009 |
Интересуют некоторые моменты работы DOS/16M на 286-м. 1. Где-нибудь он используется? 2. Постоянное переключение реального/защищенного режимов - довольно длительная и небезопасная операция на 286 (имеется в виду возврат к реальному). Как? Даже Windows и OS/2 этот вопрос толком не решили. 3. Взаимозаменяемость с DOS/4G. Представим, что есть программа, которая использует 4 Мб памяти через DOS/4G, и больше ничего от 386-го ей не надо. Если ее пересобрать с DOS/16M, она будет работать на 286-м? |
DOS Logic
Advanced Member
d(-_-)b Откуда: Украина. Ивано-Франковск Всего сообщений: 4778 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 1 июля 2006 |
На 286 нет возврата в реальный режим, только перегрузка это в 386 он есть) |
Zelya
Member
Откуда: Львов Всего сообщений: 187 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 11 янв. 2009 |
DOS Logic Да, в 286 он штатно не предусмотрен. Но через контроллер клавиатуры можно было ухитрится сбросить процессор, и он снова стартовал в реальном режиме. Этот костыль, хоть и часто использовался, но был довольно-таки тормознутым и ненадженым. Именно по этому я и задал вопрос №2. |
DOS Logic
Advanced Member
d(-_-)b Откуда: Украина. Ивано-Франковск Всего сообщений: 4778 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 1 июля 2006 |
OS/2 писала слишком серезная кантора чтобы использовать какие-то не документированные костыли там такого небыло |
Zelya
Member
Откуда: Львов Всего сообщений: 187 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 11 янв. 2009 |
DOS Logic В OS/2 1.x IBM использовали целый набор мозгодробительных костылей, чтобы хоть как-то и все фичи 286-ого использовать и с DOS быть совместимыми. Например, нижнее ОЗУ резервировалось для эмуляции DOSа, и в защищенном режиме это было просто неиспользуемая дыра (огромная по тем меркам). Или, например, драйвера писались одновременно под два режима. Они и рады были б обойтись "клавиатурным" костылем, но он не удовлетворял всем требованиям. |
AndNot
Full Member
Откуда: Penza, Russia Всего сообщений: 215 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 июня 2006 |
Ребята, вы о чем? "Клавиатурный костыль" - это документированная возможность сброса процессора, введенная еще с 8086-й машины и работающая на всех современных. А причину сброса биос узнает с помощью байта отключения (CMOS[0x0F]). Начиная с 286-й ввели 5-ть кодов, как раз для работы с защищенным режимом: 6-8 - сброс после работы в защищенном режиме, 9 - сброс после копирования блока памяти из основной в расширенную (используется обработчиком INT 15h), и 0xA - сброс и немедленная передача управления по адресу, лежащему в 0000h:0476h. Например память биос подсчитывает и тестирует именно в защищенном режиме, возвращаясь к продолжению POST-процедур посредством сброса через "клавиатурный костыль" (код сброса - 0x8). Так что переход из защищенного в реальный режим прокатит на всех 286-х машинах. Скажу больше, это прокатит и на всех других машинах. Я это использовал для экстренного выхода из вин 3.11 в реальный режим на 386-й машине. PS: а программисты мелкософта, кто бы что ни думал о этой конторе, были отличными профи - именно они нашли выход, когда оказалось, что в 286-м процессоре не предусмотрена процедура перехода в реальный режим. И мелкософт никогда бы не решился на это будь вероятность несовместимости - тогда еще была хоть какая то конкуренция ОС. |
Zelya
Member
Откуда: Львов Всего сообщений: 187 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 11 янв. 2009 |
AndNot Мы все о том же. Ну не предусмотрели в 286 штатный возврат к реальному режиму, как в 386. И чтобы это сделать нужно было использовать "клавиатурный костыль" - т.е. сбросить процессор, и он по-новому стартанет в реальном режиме. Только вот беда, это слишком долго и ненадежно. Поэтому Windows 2.x/3.х на 286-м работают в реальном режиме, а OS/2 1.x на 286-м пользуется костылями, описанными выше. Ребята, вы о чем? |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 | |
AndNot
Full Member
Откуда: Penza, Russia Всего сообщений: 215 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 июня 2006 |
Zelya, в 286-м есть штатный режим перехода в реальный из защищенного - по сбросу. А то, что для этого не использовалась отдельная команда, так это косяк инженеров интела, считавших, что защищенный режим настолько хорош, что если кто-то в него перейдет, то выходить в реальный ему не захочется. По крайней мере такие байки гуляли в мою молодость. Но, еще раз подчеркну, это не костыль, это строго документированная функция, которой придерживались все последующие процессоры. Собственно и вмешался из-за слова "костыль", поскольку сброс через контроллер клавиатуры был вполне стандартизирован. В те времена инженерам приходилось бороться за каждый бит, вот и получали биты конфигурации там, где их логически быть не должно бы. Особенно этим грешат видеоадаптеры, у которых вообще такая мешанина битов, что впору психушку вызывать. Однако все пользуются ягой и ВГА и не вякают, считая что так и должно быть Что касается скорости, то выбора все равно нет - бери что дают. Кстати, не скажу за счет dos/16m, но Borland Pascal использует защищенный режим как раз под 286-е машины. Помню злился на них за это, приходилось писать свои либы для адаптации паскаля к 32-х разрядному защищенному режиму Я это к тому, что на паскале можно прекрасно испытать защищенный режим 286-х машин. alecv написал: DOS Logic был прав. Что касается команды loadall. Найдите хоть один 286-й камень, который не поддерживал бы эту команду Тогда и обсудим, документированная это команда, или нет. DOS Logic Покурите матчасть, пожалуйста |
Zelya
Member
Откуда: Львов Всего сообщений: 187 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 11 янв. 2009 |
AndNot написал: Такая байка гуляет и сейчас. Так что думаю, это совсем не байка. А то, что для этого не использовалась отдельная команда, так это косяк инженеров интела, считавших, что защищенный режим настолько хорош, что если кто-то в него перейдет, то выходить в реальный ему не захочется. По крайней мере такие байки гуляли в мою молодость. AndNot написал: Хоть мы и сваливаемся в жесткий флейм, но все-таки я останусь при своем мнении - это костыль. Сам факт бутания процессора и десятки проблем связанных с этим, ради того чтобы вернуться в реальный режим - непорядок. Была такая шутка, что Intel задизайнили 386, увидев как программисты OS/2 мучаются с 286-м. Но, еще раз подчеркну, это не костыль, это строго документированная функция, которой придерживались все последующие процессоры. AndNot написал: Очень интересная информация! Спасибо! Borland Pascal использует защищенный режим как раз под 286-е машины |
<<Назад Вперед>> | Страницы: 1 2 3 4 | Печать |
Полигон-2 » Старый софт » DOS/16M |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |