Цитата:
В старом/проблемном компьютере постоянно возникает сообщение:
CMOS checksum error - Defaults loaded
Press F1 to continue, DEL to enter Setup
Проблема "железная" и не решается заменой батарейки. Нажимать постоянно F1 нет никаких моральных сил. Что/где исправить в BIOS, чтобы пропустить ожидание нажатия клавиши F1?
Решение: ищем в начале original.tmp последовательность байтов:
3D 00 3B (т.е. "cmp ax, 3B00h" - проверка сканкода F1)
и меняем следущий за этой командой условный переход
74 02 (т.е. "je .exit")
на безусловный (т.е. <strike>74</strike>
заменяем на EB).
Продолжение следует. Можно писать сюда подобные конкретные вопросы.
рядом с гнездом), анод диода идет прямо на ногу южника.
Проверить диод.
2 В original.tmp находим адрес текста "CMOS ...."
и делаем поиск этого адреса. Попадаем в фрагмент кода,
который выплевывает это сообщение, а за ним будет
процедура запроса F1/Del
Это лишь теоретические умозаключения? Если практические, то возьмите, к примеру, BIOS от очень популярной у нас на форуме платы GA-8IPE1000 и продемонстрируйте. Хотя бы даже первую часть - находим адрес текста "CMOS ...." :)
2 Для примера взял интересный для меня биос - 51-TX1_ver_O2-006.rar (на этом сайте),
распаковал его в o2-006.bin, вытянул из него original.tmp и произвел поиск строки
"Press", нашел реальную строку "Press F1 to continue" - она по адресу 4DF3h, затем
ищу пару байт F3 4D и попадаю в такой фрагмент кода:
3B44:lea si,[4DF3]
call 313B
3B4B:xor ax,ax
int 16
cmp ax,5300
jz 3B5B
cmp ax,3B00
jz 3B5B
jnz 3B4B
3B5B:retn
3 Все успел во время обеда - успел приготовить еду, нашел код, поел и на работу
не опоздал.
4 Есть желание проверить ???
По вашему первому сообщению:
1. Не по теме
2. Написано неправильно, см. схему
Долго, необходим анализ кода, не применимо в некоторых случаях (apple_rom привел удачный пример ;)).
По вашему второму сообщению:
Если вам лень читать на английском, то так и скажите. По приведенной ссылке можно получить несколько версий прошивки для GA-8IPE1000 :).
5I-TX1_ver_O2-006.rar
Уже не "CMOS"? Какая жалость :).
И опять анализ кода :).
Я проверил ваш метод и метод apple_rom'а. Причем пробовал на прошивках от 5I-TX1 и GA-8IPE1000.
Метод apple_rom'а работает в обоих случаях (причем быстро и однозначно). А ваш метод работает только в вашем примере (причем времени тратится больше).
Вы явно ко мне цепляетесь !!! Еще раз - плюс батареи идет на анод диода, катод диода идет
прямехонько на ногу южника. Легко звонится тестером.
Одну пропущенную букву "K" (явная опечатка) Вы свернули на грубую ошибку.
Я это говорил по памяти, а Вы сразу полезли в схемы (дабы уличить в одной буковке).
Какой метод лучше - не Вам одному судить - в своей i430TX LS я переписал 95% кода INT13/INT40 -
полная поддержка LBA48+BusMaster(33)для ДОСа + еще много всякой хрени в БИОС.
Прицеплюсь еще раз :).
См. вышеприведенную схему :). Не стоит игнорировать очевидное :). Схем может быть несколько, поэтому обобщать желательно очень осторожно.
По поводу метода я всего лишь выразил разницу. Если вы найдете лучший/более универсальный метод или найдете исключения для изложенного метода, то готов обсудить.
Кстати, по поводу поддержки LBA48 для старых матплат есть тема, которая временно затихла в связи с отсутствием времени у apple_rom'а (IMHO). С удовольствием обсудим/потестируем ваше решение, если вам это будет интересно.
P.S. Не стоит воспринимать мои поправки как желание уличить в чем-то. Воспринимайте их как желание внести ясность для остальных.
P.P.S. Мой ник пишется строчными буквами :).
Я Вам ничего не должен.
Ещё раз предлагаю попробовать на указанном BIOS от Gigabyte.
Выше был дан максимально универсальный метод в противоположность описанному способу поиска по выводимому сообщению, который абсолютно очевиден, чтобы даже просто обсуждать его и который, если и работал, то лишь на платах 10-тилетней давности.
зы: поддерживаю Memphisа, проблему, по возможности, надо решать, а не обходить...
зы2: у самого есть мама, южник которой высаживает батарейку за ночь, поправил биос модбином...
Сюда привело меня вот что:
У меня имеется мать Abit AN7 v.1.0 (чипсет nForce2 Ultra400) c установленным процессором Barthon_2500 и две плашки памяти (Dual) Samsung DDR3200 по 512Mb каждая. Так вот - решил я немножко разогнать свою систему и столкнулся со следующими проблемами:
Путем подбора модифицированных BIOSов я уперся в разгонный предел по шине 233MHz (предел стабильности системы с небольшим запасом), т.е получил DDR466 в синхроне с процем 233х9.5 - множитель разблокировал, на котором, путем соединения соответствующего мостика токопроводным лаком. Все работает и на шине 240, но в S&M иногда случаются ошибки - то по памяти , то по процу.
Таких результатов я смог достичь толко на BIOSе Tictac's technichs exe by enduracell AN7_18 DE8 от 11.23.04г. Есть и другие Mod версии, но этот самый производительный. Вот так я увлекся этим делом и вышел на биосоковырятельный форум.
Кто мне может подсказать как с ним надо работать чтоб внести хоть какие-то изменения? А именно хотелось бы сменить строку и картинку в POSTе, повысить максимальное напряжение на чипсете (1.8 вместо 1.75 путем убирания самого нижнего напряжения), сменить градацию напряжений на CPU и DDR, ну и делители CPU/DDR подобрать для данной памяти (т.к. маловероятно что потолок по шине у проца и памяти совпадет). Хочется выжать еще чуть из системы.
Заранее всех благодарю!
Почему ищем "cmp ax,3B00", а не вот такие для примера:
cmp R8,3B R8 - любой 8-битовый РОН
cmp byte ptr es:[BX+xxxx],3B
cmp word ptr [bp+xxxx],3B00
cmp byte ptr [bp+yyyy],3B
Когда нужный фрагмент кода найден и проанализирован и в нем явно прописано
cmp ax,3B00 - тогда и можно написать "ищем последовательность байтов...", когда код неизвестен - неизвестно, какие байты надо искать.
Я не пытался указать лучший метод и устраивать соревнование в скорости - просто предложил альтернативный вариант и это вовсе не означает, что не пользуюсь первым вариантом.
Верх совершенства в том, кто больше знает вариантов решения проблемы (много методов) и
в конкретном случае пользуется оптимальным. Кстати, код нужно анализировать всегда (дабы понять,
что в этом месте происходит) - это для maco, одни умеют это делать, другие нет.
В смысле есть ли в машинном коде ошибки ? Так это проверяется на одной машине отладчиком
в поисках ошибок машинного кода - зачем рассылать всем код с ошибками ?
Если код ошибок не содержит, вероятно, хотят проверить работу ЛБА48 на разных чипсетах.
Зачем? Ответ на этот вопрос давно известен - на 99.99% чипсетов код ЛБА48 заработает.
Можно смело утверждать, начиная с i430TX и старше код ЛБА48 точно заработает (младшие не попадались).
Когда знаний/опыта недостаточно - бросают клич "Нужно проверить код."
Поддержка ЛБА48 на любом чипсете проверяется элементарно:
1 Подключаем любой хард, поддерживающий ЛБА48 (кстати, не обязательно емкостью
свыше 137.4 млн. байт - Самсы на 80 гиг прекрасно его поддерживают!!!)
2 Запускаем отладчик, ручками пишем в порты ИДЕ-контроллера магические байты, затем читаем порты
и делаем вывод о поддержке чипсетом ЛБА48
Начиная с 2005 года код Авард-БИОС стал более сложным - возможно, это не чистый ассеблер, а ЯВУ -
в любом случае анализ кода стал сложнее !!! Полностью согласен - в таком коде труднее разбираться.
Есть одна тонкость - меня не интересуют БИОСы этого сайта, я не собираюсь их качать и что-то
в них менять, Вам надо - ну и флаг Вам в руки.
Главное, что на моей древней i430TX ЛБА48 работает (что тут еще можно обсуждать), код своей
БИОС никому разумеется не дам (это моя интеллектуальная собственность), да и с покупкой внешнего
PCI RAID-контроллера и 2-х хардов БИОС ЛБА48 уже больше и не интересует.