| 
 
 
 
 Легенда:
  новое сообщение 
  закрытая нитка 
  новое сообщение 
  в закрытой нитке 
  старое сообщение   | 
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
Новичкам также крайне полезно ознакомиться с данным документом.
| Как подменить БИОС в ОЗУ?  23.12.19 09:05 Автор: Zef <Alloo Zef> Статус: Elderman
 |  
| Суть проблемы: есть промписюк на 486DX4. Представляет собой плату с 6 EISA-слотами, в которые вставляется мамка и периферия. На писюке ДОС и софтина-ЧПУ. Мамка - SBC-410 сдохла. Почему-то 410 сняты с производства, есть 400 но у них другой БИОС, в котором нет опций переназначения прерываний, из-за этого, предположительно, установленная на писюке софтина ЧПУ глючит. Чипсеты, вроде, полностью совместимые, отличие: на 410 БИОС на 29ЕЕ010, а на 400 - "брусок" с часами и батарейкой. 
 Так вот, мысль: чем пытаться перезалить БИОС - проблема в том, как его скопировать из 29ЕЕ010 в файл, понятный прошивальщику, не проще ли, после запуска ДОС подменить копию БИОСа прямо в ОЗУ? Засунуть соответствующую прогу-подменяльщик на диск, прописать а autoexec и радоваться?
 
 Теперь, ВНИМАНИЕ, вопрос: мобыть для этого уже есть готовая прога или кусок кода из какого-нить вируса? Было бы весьма не плохо, если бы меня этим выручили.
 |  
|  | Упакованный во флешку код и run-time код, который хранится в...  01.01.20 23:41 Автор: icbook Статус: Незарегистрированный пользователь
 |  
| Упакованный во флешку код и run-time код, который хранится в старших адресах 1-го мегабайта ОЗУ — это две большие разницы. Другими словами, ваша идея абсолютно точно не сработает. |  
|  | сомневаюсь  23.12.19 15:10 Автор: dl <Dmitry Leonov>
 |  
| В золотые времена 25+ летней давности что-то подобное изображалось честными резидентами с подменой прерываний BIOS, но раз тут даже нет вариантов переназначения прерываний, то вообще непонятно, куда копать. А просто поменять в памяти - так BIOS же где-то в старших адресах лежит, типа FE00, и как их в реальном режиме переназначить, не представляю. 
 Кстати, а как это без переназначения прерываний - в таблицу векторов напрямую тоже писать не дают?
 |  
|  |  | Там сейчас все хитрее:  24.12.19 05:48 Автор: Zef <Alloo Zef> Статус: Elderman
 |  
| Флешка БИОСа 2 метра. А под, собственно, БИОС у 86го отводится только 64 старших К. Там сейчас только несменяемый загрузчик, который рулит южным мостом, к которому подключена флешка. По команде проца ЮМ переливает ее содержимое в ОЗУ через ДМА. И далее, надо полагать, все работает уже через дескрипторы сегментов. В 16 или 32-разрядном моде - вопрос. 
 Ну ладно, значительная часть флешки содержит оверлей графического  интерфейса настроек (у этого АМИ-БИОСА он графический, даже мышь в принципе возможна, если бы было куда воткнуть). Но куда размещается остальная постоянная часть?
 
 Вектора прерываний сидят, как раз, в ОЗУ, в самых старших адресах 1го мега  и настроив перекрывающийся сегмент с правом записи их править можно. У 410 (сдохшей) платы на каждый вектор с 1 по 14 2 варианта - PCI и ISA, причем, переназначение идет, видимо, в чипсете, а прога ЧПУ их сама переписывает на себя. Но из чипсета они просто не доходят.
 
 Там такая фигня получается: по Х и У стоят датчики "0". Перед работой стол едет до этих датчиков, там останавливается и сбрасывает счетчики координат. Потом пляшет от этого положения, как от печки. Весь прикол в том, что по Х он останавливается и обнуляется, а по У - нет и ползет, пока не заклинит. При этом в программе есть "лампочки", показывающие состояния датчиков, так они исправно загораются. Т.е. сигналы датчиков читаются, а сброс счетчика и останов для точности происходит, видимо, по прерыванию и оно, надо полагать, не проходит.
 |  
|  |  |  | Как успехи?  01.02.20 01:47 Автор: Den <Денис Т.> Статус: The Elderman
 |  
|  |  
|  |  |  |  | Облом.  01.02.20 07:02 Автор: Zef <Alloo Zef> Статус: Elderman
 |  
| Так нифига и не вышло - решили перевести управление на микроконтроллер фирмы "Овен" - тот хоть, точно, будет работать. |  
|  |  |  |  |  |  | Все, я уже контроллер в шкаф монтирую.  01.03.20 03:56 Автор: Zef <Alloo Zef> Статус: Elderman
 |  
| Купили "Овен" с быстрыми входами-выходами и операторскую панель. |  
|  |  |  | Во-первых, в старших 64к реального режима лежат только...  09.01.20 11:09 Автор: Den <Денис Т.> Статус: The Elderman
 Отредактировано 09.01.20 11:32  Количество правок: 2
 |  
| > Флешка БИОСа 2 метра. А под, собственно, БИОС у 86го > отводится только 64 старших К. Там сейчас только
 > несменяемый загрузчик, который рулит южным мостом, к
 > которому подключена флешка. По команде проца ЮМ переливает
 > ее содержимое в ОЗУ через ДМА. И далее, надо полагать, все
 > работает уже через дескрипторы сегментов. В 16 или
 > 32-разрядном моде - вопрос.
 
 Во-первых, в старших 64к реального режима лежат только обработчики прерываний BIOS. Во-вторых, когда писюк стартует в реальном режиме, то до первого far jump дескрипторы сегментов в регистрах указывают на конец всего доступного адресного пространства для защищённого режима куда картирована процедура инициализации и развёртывания BIOS в памяти. В-третьих, запретить в реальном режиме перехват прерываний невозможно и ты можешь изменить вектор абсолютно любого прерывания.
 
 > Вектора прерываний сидят, как раз, в ОЗУ, в самых старших
 > адресах 1го мега  и настроив перекрывающийся сегмент с
 > правом записи их править можно. У 410 (сдохшей) платы на
 > каждый вектор с 1 по 14 2 варианта - PCI и ISA, причем,
 > переназначение идет, видимо, в чипсете, а прога ЧПУ их сама
 > переписывает на себя. Но из чипсета они просто не доходят.
 
 Нет! Таблица векторов прерываний расположена в самых младших адресах начиная с 0 (нулевого), а в старших адресах расположены обработчики прерываний BIOS, на которые и указывают адреса из таблицы векторов прерываний.
 
 Если чип БИОСа съемный, попробуй его просто переставить с SBC-410 на SBC-400, если существенных отличий между ними действительно нет. Хотя, помимо чипсета, на платформах могут быть всякие watchdog таймеры, которые могут использовать отличные адреса портов.
 
 > Там такая фигня получается: по Х и У стоят датчики "0".
 > Перед работой стол едет до этих датчиков, там
 > останавливается и сбрасывает счетчики координат. Потом
 > пляшет от этого положения, как от печки. Весь прикол в том,
 > что по Х он останавливается и обнуляется, а по У - нет и
 > ползет, пока не заклинит. При этом в программе есть
 > "лампочки", показывающие состояния датчиков, так они
 > исправно загораются. Т.е. сигналы датчиков читаются, а
 > сброс счетчика и останов для точности происходит, видимо,
 > по прерыванию и оно, надо полагать, не проходит.
 
 С нестандартными промышленными писюками и не такие чудеса происходят! Мой коллега, в своё время, задолбался вкрячивать патчи в свою прогу под DOS extender на схожие фаствеловские (Fastwell) платформы и тоже с прерываниями возился. Если интересно, через неделю могу его поспрашивать о деталях.
 |  
|  |  |  | Насколько я понял, переназначение прерываний PCI/ISA - это...  05.01.20 21:51 Автор: ;-) Статус: Незарегистрированный пользователь
 |  
| Насколько я понял, переназначение прерываний PCI/ISA - это обычные настройки PnP BIOS. Выставив для какое-либо прерывания значение "ISA", ты тем самым говоришь BIOS'у, что это прерывание используется ISA-устройством, и BIOS не будет его использовать для автоконфигурации PCI-устройств.
 А SBC-400 похоже вообще не поддерживает PnP, поэтому этих опций и нет в BIOS.  Думаю, вряд ли в этом проблема.
 Если подозреваешь, что проблема в конфликте PCI/ISA устройств, попробуй использовать другое прерывание (может, джамперами можно выставить).
 
 P.S. Давно не заходил на форум, не подходит пароль...
 |  
|  |  |  |  | Оно использует почти все прерывания  08.01.20 05:25 Автор: Zef <Alloo Zef> Статус: Elderman
 |  
| Причем, выше 8го. И, похоже, в этом на с.д. проблема: какскдное соединение контроллеров прерываний - наследие ХТ и оно сохраняется по сей день, но... в разных чипсетах у старшего и младшего болклв прерывания разные приоритеты. А чипсеты там, вроде, одинаковые, но - разных версий: 06 и 05. Мжет быть, проблема и в этом. |  
|  |  |  | при таком раскладе я точно ничего умного не посоветую  25.12.19 15:00 Автор: dl <Dmitry Leonov>
 |  
|  |  
 
 
 |  |