Программная замена содержимого CMOS памяти

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Аватара пользователя
Abadonna
Встал на лапы
Сообщения: 98
Зарегистрирован: Сб сен 05, 2009 08:29:53

Программная замена содержимого CMOS памяти

Сообщение Abadonna »

Всем привет. Обращаюсь за помощью, может кто подскажет ответ.
Имеется комплекс: компьютер, несколько раз презагружающийся в DOSе и вполняющий некоторые задачи, после последней перезагрузки он должен загрузиться в виндовсе и дальше управляться по сети. Виндовая часть задачи нас не интересует - она есть. DOSовская - тоже. Интересует один момент - переключение между ОСями.

Раньше все было плохо, но выкручивались заменой файлика boot.ini. Больше так делать нет возможности.

Сейчас мысль бьется с разгону о череп: в CMOS`e поменять порядок загрузки: стоит первая SD карта, поменять на HDD и задача будет решена. Но не все так просто. Я написал программку, которая снимает образ CMOS`a и записывает его на диск. Однако обратно образ заливаться не желает. DOS дает доступ ко всему железу, почему не записывается новая инфа в CMOS - не пойму. Если кто может подсказать чего - буду весьма признателен.

Для справки.
Чтение CMOS ведется через обращение к портам 70Н и 71Н: в 70Н записывается номер ячейки, из 71Н читается содержимое либо в него же (в 71Н) записывается новое значение. Однако вот не записывается. Хотя время в системе меняется на тот момент, когда создавался этот образ. :dont_know:
Все будет хорошо, я узнавал!
Реклама
Аватара пользователя
Maykill
Друг Кота
Сообщения: 73964
Зарегистрирован: Вт дек 20, 2011 12:46:51
Откуда: Петроград
Контактная информация:

Re: Программная замена содержимого CMOS памяти

Сообщение Maykill »

вас интересует аппаратное решение или на уровне загрузчика?
К примеру мультизагрузочное меню с выбором нажатием соотв. клавиши( скажем 1 или 2)
тогда ищете сигнал, вырабатываемый при перезагрузке и, при прохожнении его нужное количество раз, пусть исполнительное устройство замыкает нужный символ на клавиатуре :))
во наворотил....
https://www.int-s.spb.ru
" Можно я лягу?"(C)
Реклама
Аватара пользователя
Abadonna
Встал на лапы
Сообщения: 98
Зарегистрирован: Сб сен 05, 2009 08:29:53

Re: Программная замена содержимого CMOS памяти

Сообщение Abadonna »

Увы, такое решение не применимо, хотя вполне реализуемо. Суть всего этого шаманства в том, чтобы автоматически, без участия специально обученного человека сто раз запустить ДОС, выполнить в нем задачу и потом опять же автоматически запустить винду и дальше уже другую задачу выполнять. Причем имеющийся софт (виндовый) переставить нет возможности - только 2 различных носителя с этими операционками :( У нас вообще из доступного софта остается только BIOS (да,мы не ищем легких путей :)) Не писать же новый BIOS для этих целей :)
Все будет хорошо, я узнавал!
Аватара пользователя
nds
Друг Кота
Сообщения: 4750
Зарегистрирован: Вс май 25, 2008 19:47:47
Откуда: РФ
Контактная информация:

Re: Программная замена содержимого CMOS памяти

Сообщение nds »

имхо батник + grub4dos вам в помощь
и никаких извращений не надо будет
2B OR NOT 2B = FF
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Maykill
Друг Кота
Сообщения: 73964
Зарегистрирован: Вт дек 20, 2011 12:46:51
Откуда: Петроград
Контактная информация:

Re: Программная замена содержимого CMOS памяти

Сообщение Maykill »

опять загадки....
расписали бы поэтапно...сами бы решение увидали
https://www.int-s.spb.ru
" Можно я лягу?"(C)
Реклама
Аватара пользователя
Abadonna
Встал на лапы
Сообщения: 98
Зарегистрирован: Сб сен 05, 2009 08:29:53

Re: Программная замена содержимого CMOS памяти

Сообщение Abadonna »

Ммм... Постараюсь расписать подробненько. Даже поэтапно.
1. Комп грузится в ДОС.
2. Делает свои делишки и перезагружается.
3. Проверить, какая это перезагрузка по счету. Если это была сотая перезагрузка (там счетчик имеется) - надо поменять ОСи для загрузки и снова перезагрузиться.
4. Грузится виндовс.

Вот этот пункт 3 и стоит камнем на шее. Проверить номер перезагрузки можно: в файле хранится счетчик, который сравнивается с эталоном (100) а автоэкзеке.

А что такое grub4dos? Сча погуглю...
Все будет хорошо, я узнавал!
Реклама
Аватара пользователя
nds
Друг Кота
Сообщения: 4750
Зарегистрирован: Вс май 25, 2008 19:47:47
Откуда: РФ
Контактная информация:

Re: Программная замена содержимого CMOS памяти

Сообщение nds »

grub4dos - загрузчик операционок
подробно описан на greenflash.su
загрузить винду можно прямо из доса
или если вам привычнее менять файлы можно поменять menu.lst (конфиг grub4dos) и перезагрузиться
2B OR NOT 2B = FF
Аватара пользователя
Maykill
Друг Кота
Сообщения: 73964
Зарегистрирован: Вт дек 20, 2011 12:46:51
Откуда: Петроград
Контактная информация:

Re: Программная замена содержимого CMOS памяти

Сообщение Maykill »

ну так пропишите в экзешнике переход по счётчику на нужную процедуру
https://www.int-s.spb.ru
" Можно я лягу?"(C)
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Программная замена содержимого CMOS памяти

Сообщение Alexeyslav »

В БИОСе есть такая "защита от вирусов" она предотвращает изменение загрузчика не из-под БИОСа, а так же защищает от записи 0-й сектор винчестера. Старенькая защита, которая нынче только мешает.

так же, у этой памяти есть контрольная сумма, чуть что не так - сбрасывается на настройки по умолчанию. Так же нужно быть уверенным что больше никто не пытается записать и даже ПРОЧИТАТЬ эту память во время записи, иначе запись может быть произведена не по тому адресу куда надо.
Аватара пользователя
kotpalych
Электрический кот
Сообщения: 1064
Зарегистрирован: Пн ноя 21, 2011 16:45:00

Re: Программная замена содержимого CMOS памяти

Сообщение kotpalych »

grub4dos не обязательно , достаточно для загрузки WINDOWS запустить батник примерно такого содержания:

Код: Выделить всё

ATTRIB -R -S -H c:\boot.ini
echo [boot loader] > c:\boot.ini
echo timeout=3 >> c:\boot.ini
echo default=multi(0)disk(0)rdisk(0)partition(1)\WINNT >> c:\boot.ini
echo [operating systems] >> c:\boot.ini
echo multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional RUS" /fastdetect >> c:\boot.ini
echo C:\ = "MS-DOS" >> c:\boot.ini
ATTRIB +R +S +H c:\boot.ini
Это для моей системы , ваши пути будут другими. Файл boot.ini будет автоматически переписан.
Невозможно починить то, что не сломалось.
Аватара пользователя
Abadonna
Встал на лапы
Сообщения: 98
Зарегистрирован: Сб сен 05, 2009 08:29:53

Re: Программная замена содержимого CMOS памяти

Сообщение Abadonna »

Спасибо всем откликнувшимся, с грехом пополам одолел проблему. Не совсем как хотелось, но таки победил - сконвертировал раздел в FAT32 и запихнул вторую ОСь посредством grub4dos. Вроде бы работает.
Все будет хорошо, я узнавал!
Ответить

Вернуться в «Интеграция с ПК»