By Angel07 , 20 December 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. Подправил код
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.
Я думаю, настоящее нарушение лицензии - это когда один производитель MB "ворует" биос у другого... :-)

ivp

20 years 10 months ago

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

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

rgt

20 years 10 months ago

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

DanZer

20 years 10 months ago

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

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

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