Автор: Angel07 , 20 декабря 2005
Уважаемые господа!

У меня непонятки с таким вот кодом работы с механизмом PNP (получен из бут-блока AMI BIOS-а мат. платы Zida TX100 в процессе дизассемблирования и изучения этого биоса):

[code:1]
:0001.F5B8 DW 03F0, 03F1
:0001.F5BC DB 86, 61, 55, 55
:0001.F5C0 DB 86, 61, 55, AA
:0001.F5C4 DB 86, 61, AA, 55

; *** ISA PNP initiation key ***

:0001.F5C8 DB 6A, B5, DA, ED, F6, FB, 7D, BE, DF, 6F, 37, 1B, 0D, 86, C3, 61
:0001.F5D8 DB B0, 58, 2C, 16, 8B, 45, A2, D1, E8, 74, 3A, 9D, CE, E7, 73, 39

; *** подпрограмма настройки ISA PNP ***

:0001:F5E8 8BCA mov cx, dx ;
:0001.F5EA 66C1E110 shl ecx, 10 ; "прячем"
:0001.F5EE 66C1E010 shl eax, 10 ; ax, bx и сх
:0001.F5F2 66C1E310 shl ebx, 10 ; в верхних "половинах"
:0001.F5F6 33DB xor bx, bx ; соотв. 32-разрядных р-в

:0001.F5F8 2E813EB8F5F003 cmp word ptr cs:[F5B8], 03F0 ;
:0001.F5FF 740F je F610 ;
:0001.F601 83C304 add bx, 0004 ;
:0001.F604 2E813EB8F5BD03 cmp word ptr cs:[F5B8], 03BD ;
:0001.F60B 7403 je F610 ;
:0001.F60D 83C304 add bx, 0004 ;
:0001.F610 BA7902 mov dx, 0279 ;
:0001.F613 B90400 mov cx, 0004 ;

:0001.F616 2E8A87BCF5 mov al , cs:[bx+F5BC] ;
:0001.F61B EE out dx, al ;
:0001.F61C 43 inc bx ;
:0001.F61D E2F7 loop F616 ;

:0001.F61F 2E8B16B8F5 mov dx, cs:[F5B8] ; активация режима
:0001.F624 33DB xor bx, bx ; настройки ISA PNP
:0001.F626 B92000 mov cx, 0020 ;
:0001.F629 2E8A87C8F5 mov al , cs:[bx+F5C8]; (загрузка ISA PNP
:0001.F62E EE out dx, al ; initiation key).
:0001.F62F 43 inc bx ;
:0001.F630 E2F7 loop F629 ;

:0001.F632 66C1EB10 shr ebx, 10 ;
:0001.F636 B007 mov al, 07 ;
:0001.F638 EE out dx, al ; записываем 7 в [F5B8]
:0001.F639 42 inc dx ;
:0001.F63A 8AC3 mov al , bl ; записываем bl в [F5B8]+1
:0001.F63C EE out dx, al ;
:0001.F63D 4A dec dx ;
:0001.F63E 66C1E810 shr eax, 10 ; записываем al в [F5B8]
:0001.F642 EE out dx, al ;
:0001.F643 42 inc dx ; записываем ah в [F5B8]+1
:0001.F644 86E0 xchg al , ah ;
:0001.F646 EE out dx, al ;
:0001.F647 4A dec dx ;
:0001.F648 B002 mov al, 02 ; записываем 02 в [F5B8]
:0001.F64A EE out dx, al ;
:0001.F64B 42 inc dx ;
:0001.F64C EB00 jmp F64E ;

:0001.F64E EE out dx, al ; записываем 02 в [F5B8]+1
:0001.F64F 66C1E910 shr ecx, 10 ;
:0001.F653 8BD1 mov dx, cx ; dx=cx
:0001.F655 FFE7 jmp di ; возврат
[/code:1]

Непонятки следующие:

1. Почему initiation key посылается не в адресный PNP-порт 279, как указано в спецификации ISA PNP, а в другой (в данном случае - порт 3F0)? И что это за порты - 3F0, 3F1?

2. Что-за 4-байтная последовательность (86, 61, 55, 55 с вариациями :-) )
пишется в адресный PNP порт 279 перед загрузкой initiation key в порт 3F0)?

Заранее большое спасибо за любую помощь.

P.S. Подправил код
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • 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]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

Angel07

20 лет 2 месяца назад

Я думаю, настоящее нарушение лицензии - это когда один производитель MB "ворует" биос у другого... :-)

ivp

20 лет 2 месяца назад

NortonC
Angel07
Вообще-то, в данном случае речь не о самих файлах БИОС, а о Reverce-engineering, что в большинстве случаев приравнивается к нарушению прав создателя/владельца исходного кода - и это без учета "поломанной" Иды...
Читая комментарии к УК, можно предположить, что
запускаете Вы Hiew, или IDA, открываете в нем win.com , и тут к вам вламываются ОМОНовцы - ибо это уже оно

(древняя, тогда у нас еще Нэшвил был в ходу)

rgt

20 лет 2 месяца назад

Вообще говоря, на ихнее авторское право есть наш закон о защите прав потребителя, который позволяет мне, при определенных условиях, модифицировать БИОС для улучшения потребительских качеств приобретенной мной матплаты...

DanZer

20 лет 2 месяца назад

Запрещается вскрывать технологию или декомпилировать продукт за исключением случая и только в той степени, когда такие действия явно разрешены применимым законодательством, несмотря на наличие в лицензионном соглашении данного ограничения.
Взято из стандартного EULA от M$ ;) А уж насколько применим тут закон о защите прав потребителя - вопрос несколько иной :roll:

Angel07

20 лет 2 месяца назад


Вообще говоря, на ихнее авторское право есть наш закон о защите прав потребителя, который позволяет мне, при определенных условиях, модифицировать БИОС для улучшения потребительских качеств приобретенной мной матплаты...

Тем более, что сами производители матплат отказываются это делать :-) Как, например, в случае той же "ошибки 32G" в P1 socket7 платах - налицо явная ошибка, в результате которой матплата (вернее ее биос) не соответствует заявленным стандартам и спецификациям (не более поздним, что было бы понятно, а существующим на момент написания BIOSа...). И далеко не все вендоры поисправляли BIOSы. Еще одно спасибо Роману! :-)