ищем в начале original.tmp последовательность байтов: 3D 00 3B (т.е. "cmp ax, 3B00h" - проверка сканкода F1)
Почему ищем "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, одни умеют это делать, другие нет.
Цитата:
Нужно проверить код. Нужны тестеры с платами а-ля Pentium2/3 без поддержки lba48. А также старенькие P1 без поддержки 8Гб/32Гб. Желательно авард. Писать в аську, личку или в эту ветку.
В смысле есть ли в машинном коде ошибки ? Так это проверяется на одной машине отладчиком
в поисках ошибок машинного кода - зачем рассылать всем код с ошибками ?
Если код ошибок не содержит, вероятно, хотят проверить работу ЛБА48 на разных чипсетах.
Зачем? Ответ на этот вопрос давно известен - на 99.99% чипсетов код ЛБА48 заработает.
Можно смело утверждать, начиная с i430TX и старше код ЛБА48 точно заработает (младшие не попадались).
Когда знаний/опыта недостаточно - бросают клич "Нужно проверить код."
Поддержка ЛБА48 на любом чипсете проверяется элементарно:
1 Подключаем любой хард, поддерживающий ЛБА48 (кстати, не обязательно емкостью
свыше 137.4 млн. байт - Самсы на 80 гиг прекрасно его поддерживают!!!)
2 Запускаем отладчик, ручками пишем в порты ИДЕ-контроллера магические байты, затем читаем порты
и делаем вывод о поддержке чипсетом ЛБА48
Начиная с 2005 года код Авард-БИОС стал более сложным - возможно, это не чистый ассеблер, а ЯВУ -
в любом случае анализ кода стал сложнее !!! Полностью согласен - в таком коде труднее разбираться.
Есть одна тонкость - меня не интересуют БИОСы этого сайта, я не собираюсь их качать и что-то
в них менять, Вам надо - ну и флаг Вам в руки.
Главное, что на моей древней i430TX ЛБА48 работает (что тут еще можно обсуждать), код своей
БИОС никому разумеется не дам (это моя интеллектуальная собственность), да и с покупкой внешнего
PCI RAID-контроллера и 2-х хардов БИОС ЛБА48 уже больше и не интересует.
apple_rom
Почему ищем "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 уже больше и не интересует.