Изменение свойств подпунктов меню в Award 6.00

Здравствуйте, как связать подпункт меню с каким-либо действием ?
Например -> если выбрано Enable, то те регистры установить в такое положение, а если Disable, то....?

Аватар пользователя DanZer

Чтите доки - они рулезззз:) Функцию находим прибавлением чисел 1-7 к dev, т.е. если 98h=dev 13h, func 0, тогда 9Fh=dev 13h, func 7 (хинт - почему именно так можно понять, взглянув на двоичную маску). А вот значение bus в рамки xxxxh уже не влезает, увы - искать придется за пределами (а это я из чистой вредности оставляю на самостоятельную работу;)).

ЗЫ Ну вот, пока я отвлекся - пришел Савелий и испортил малину... :twisted:

Настоящий джентльмен назовет кошку кошкой, даже наступив на нее в темноте.
Что-то ищем? Google в помощь

Аватар пользователя FatumNNM

savely_s и DanZer Благодарю, тогда к Вам такой вопрос :

В биосе Award 6.0 :

Chip_Feature__06_19_Chip_Feature__06_19 MIP <0, _0619, 0FFFFh, 1, 42h, 1, _0001, 0, 1, 84h, 1, 1, 1, 0> ; Memory Auto Precharge

В исходнике Award 6.0 (приблизительный вид):

DEFINE_MENUITEM Chip_Feature_Item, GROUP_ADVANCE, GROUP_CFEATURE, 2
menuitem

Memory Auto Precharge на nForce2 изменяеться PCI 0 Dev 0 Func 0 Reg 86, bit 1 - если он в 0, то выкл., если 1 - то соотвестственно вкл.

Я никак не могу найти тот участок кода, где меняеться этот бит в зависимости от выбора в меню (Memory Auto Precharge -> Enable or Disable).

Добавлено спустя 17 часов 15 минут 6 секунд:

Любой пункт меню - это текстовый ресурс и, по идее, код-обработчик действия подменю может располагаться в любом месте биоса.

И читаються свойства подменю :

Read_Item_Value proc near
seg000:F26B4 push ax ; Get the stack value of specified item
seg000:F26B5 xor ah, ah
seg000:F26B7 mov al, cs:[bx+8]
seg000:F26BB mov si, ax
seg000:F26BD mov dx, [bp+si]
seg000:F26BF mov ax, cs:[bx+9]
seg000:F26C3 and dx, ax
seg000:F26C5 mov cx, 0FFFFh
seg000:F26C8 inc cx
seg000:F26C9 ror ax, 1
seg000:F26CB jnb short near ptr unk_26C8
seg000:F26CD shr dx, cl


seg000:F26CF pop ax
seg000:F26D0 retn
seg000:F26D0 Read_Item_Value endp

А сохраняються :

seg000:F263C Write_Item_Value proc near
seg000:F263C push si ; In:
seg000:F263C ; bx - point to menuitem;
seg000:F263C ; dx - value to set
seg000:F263C ; Out:
seg000:F263C ; 1. NC: [bx].CmosLoc[bp] updated
seg000:F263C ; 2. CF: [bx].CmosLoc[bp] not updated
seg000:F263D push cx
seg000:F263E push dx
seg000:F263F push dx
seg000:F2640 call near ptr unk_26B4
seg000:F2643 pop dx
seg000:F2644 cmp dx, cs:[bx+0Fh]
seg000:F2648 ja short near ptr unk_266D
seg000:F264A cmp dx, cs:[bx+0Dh]
seg000:F264E jb short near ptr unk_266D
seg000:F2650 shl dx, cl
seg000:F2652 mov cx, cs:[bx+9]
seg000:F2656 not cx
seg000:F2658 test word ptr cs:[bx+9], 0FF00h
seg000:F265E jnz short near ptr unk_2666
seg000:F2660 and [bp+si], cl
seg000:F2662 or [bp+si], dl
seg000:F2664 jmp short near ptr unk_266A
seg000:F2664 Write_Item_Value endp

Аватар пользователя FatumNNM

Вот как должно быть :

mov al, 0FFFFFFFh ;
Rom_Call Get_CMOS ; читаем установки в меню
test al, 00001111b ; Memory Auto Precharge -> Enable выбран в меню ?
jz short @F ; нет, Disable
mov cx,( TSC_ID SHL 8 )+086h; PCI 0 Dev 0 Func 0 Reg 86, bit 1
ROM_CALL Get_Pci ;
or al,0Fh ; Memory Auto Precharge -> Enable
ROM_CALL Set_Pci ;

Но подобного я не нашёл в коде биоса, да и IDA не может искать по коду (например по маске "mov cx, xxxxxx86h").

Видимо нужна помощь в этом вопросе Apple_rom...

Я сравнивал "полундру" с оригинальным биосом, но так и не понял, где находиться подобное. И инфу от Pinczakkо всю перерыл, но там ничего нет о работе с меню.

Аватар пользователя FatumNNM

Дело сдвинулось с "мёртвой точки", выражаю благодарность Apple_rom`у.

Добавлено спустя 1 день 4 часа 27 минут 42 секунды:

Вот и первая ласточка !

Релизнулся новый биос для 8RDA+ !

Новые возможности :

1. Добавлены пункты меню : Command per Clock и CPU Bus Disconnect.
2. Romsip из биоса DFI.

cp.people.overclockers.ru/cgi-bin/dl.pl?id=16997&filename=8RDA_For_2B.7z

Т.к. у меня в данный момент нет компа (пользуюсь старым ноутом), то проверить биос не было возможности. На CRC не ругаеться.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей