By ROMby Unknown , 20 May 2004
Есть: мамка PCA-6178, на ней имеется аппаратный Watchdog timer (если в течении определённого времени в определённый порт не запишется некое значение, то комп ресетится).
Цель: включить этот самый Watchdog timer до попытки загрузки ОС.
Предполагаю дополнить код BIOS, но даже незнаю с какой стороны подойти, как найти последние инструкции выполняемые BIOS-ом перед тем как передать управление загрузчику?... Нашёл код, который грузит в 0000:7C00 первый сектор с дисков, но у меня загрузка происходит но сети :(
Есть кто нибуть, кто такое уже делал? или может кто-то поможет дельным советом?

BIOS AWARV v4.51 (2A69KAKG)
The content of this field is kept private and will not be shown publicly.

BBCode

  • No HTML tags allowed.
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Web page addresses and email addresses turn into links automatically.

Anonymous (not verified)

21 years 9 months ago

lh0 - это другой метод упаковки - по идее биос должен понимать lh5 и lh0 - можно попробоватб упаковать lha и модифицировать заголовок под нужный для биос
lh0 - это вроде store? нафигачьте пустого места чтоб было что жать :)

Так и сделанно :) Удлинив исходный файл до 512 байт, cbrom стал его упаковывать по LH5.

по поводу модулька - вот есть статейка - почитайте - может чего полезного почерпнете
http://www.geocities.com/mamanzip/Articles/Bios_Tricks.txt

Спасибо. Спасибо всем кто пытался помочь!
К сожалению вставить свой модуль у меня так и не получилось.

А сейчас уже всё сделано. И сделано по изначальному видению сей проблемы...
Вобщем рассказываю, может кому пригодится...
1. В моём случае, при неудачной попытке загрузить ОС с чего либо выдаётся сообщение DISK BOOT FAILURE, PRESS ENTER.... Так вот, для начала я искал этот текст (само сабой в распакованных файлах (конкретно original.tmp)). У меня начало сей строки было по адресу F000:548C (здесь я учёл все сегменты, т.е. адресс где эта строка находится в реальном BIOS-e).
2. Определившись с местоположением в биосе (адрес) я искал ссылку на начало этой строки, т.е. последовательность 2-х байт 8Ch, 54h. Кусков было около 10, но оди из них при последующем дизассемблировании оказался:
F000:5DE3 mov si,548Ch
F000:5DE6 call EDA8h ; как позже выяснилось это пп вывода строки.
3. Далее всё просто:
3.1. Находим свободное место;
3.2. Вписываем в свободное место свой код начинаем его CALL EDA8h, завершаем RET);
3.3. Вместо CALL EDA8h (F000:5DE6) делаем CALL на свой код.
3.4. Упаковываем original.tmp;
3.5. Размещаем файл из п. 3.4 по методике из статьи "Редактируем BIOS" с этого сайта;
3.6. Зашиваем в flash;
4. НАСЛАЖДАЕМСЯ СВОЕЙ МАЛЕНЬКОЙ НО ДЕЙСТВИТЕЛЬНО ПОЛЕЗНОЙ РАБОТОЙ :)