PCIDEV - определение PCI устройств

...
  • >нужен ли форк PCIDEV, который будет давать информацию о видяхах

    Процесс идет, но очень медленными темпами. Ищутся желающие заполнить примерно 700 записей о видеокартах 27 разных фирм (если найдутся несколько человек, то на каждого придется меньше) + если у вас видяха например NVidia, то вы заполняете только Nvidia и одновременно тестите прогу. Причем по сути дело сводится к банальному copy+paste c исправлением 7 строк на каждую запись. Сами понимаете, что у меня на этот процесс ((копирование 3-х участков кода в разных частях проги + исправление 7 строк) * 700 записей) уйдет большое количество времени.
    http://coolthemes.narod.ru/gfx041.PNG

    Формат записей на примере ATi

    ATi:
    cmp [PCI_Device], 0x5961
    je at_5961 // копировать и править 2 строки для каждого девайса

    ...............

    at_5941:
    mov eax,4 ; function 4 : write text to window
    and ebx, 0x0000FFFF ;clear X position
    or ebx, 470*65536 ;X start becomes 470
    xor ecx, ecx ;font color
    mov edx,AT__5941 ; pointer to text beginning //копировать и править еще пару строк
    mov esi, AT__5941len-AT__5941 ; text length
    int 0x40
    jmp outd

    ........

    AT__5961: ; копировать и править еще 3 строки
    db 'RADEON 9200' ;
    AT__5961len:

    ЗЫ: может найдутся спецы по Перлу или подобным языкам, которые автоматизируют процесс генерации записей...
  • Wildwest
    Мой тебе совет. Надо менять структуру программы пока не поздно. Сделать одну процедуру для поиска в списке ID. И одну для вывода. А то так код раздувается, да и лень делать copy+paste. У себя все строки в файл выняс, прада у меня помима этих причин были и другие.
  • Согласен, то же пожелание и к cpuid. Сначала собрал все данные, задал нужные текстовые и числовые переменные и вывел все в одном месте. Так проще потом будет работать с исходником, если надо что изменить. Да и оптимальнее, наверное. А так, если нужно чуть сдвинуть, например, строки в программе, придется править 700 строк :)
    И еще рекомендую начать использовать asciiz-строки.
    Тогда вместо:
    str:
    db '...'
    str_len

    будет
    srt db '...',0

    (эконимия 2-х строчек в исходнике на каждую строку текста)
    Если строк 700, то это на 1400 строк можно уменьшить исходник. Кроме того не нужно будет передавать в esi str_len, а это уже сокращение самого кода.
  • На SVN новая версия

    ;2.1: PCIDEV ??/04/2007
    ;Author: Mihailov Ilia aka Ghost
    ;Features:
    ; fixed
    ; * Same little bugs
    ; * Source code formating
    ; * PCI version normalized 0210 -> 2.10
    ; added
    ; * + 13 vendor (total now 1000!)
    ; * + 3 class type
    ; * Fast call source ready
    ; * Device IRQ detection
    ; optimized
    ; * ! size optimized (61025 -> 32501 see added)
    ; * easy to add new vendor & class names
  • Возникла идея сделать сохранение данных PCIDEV в текстовый файл по нажатию кнопки (выбор например через OpenDialog) и сохранение в текстовый файл при запуске с параметром - путь к файлу, если никто не изъявляет желание - буду делать сам.
  • Очень полезная вещь. Могу помочь с дампом блоков MMIO и Extension_ROM (там где такой сервис разрешен ядром).

    Еще была идея чтобы PCIDEV показывала развернутый список Capabilities для выбранного устройства, но на экране для этого совершенно нет места. Проблема снимается, если будет запись в файл.
    Евангелие от Иоанна: стих 1

    Code: Select all

    ; В начале было Слово:
    B32:        mov     ax, os_stack       ; Selector for os
    [/size]
  • Ну, если сделаешь код, то я естественно возражать не буду.
  • SVN r. 1982
    1) Сохранение списка устройств на диск
    2) Выбор пути через OpenDialog

    С учетом всех предыдущих ревизий присвоил программе версию 2.3
  • Твоя версия стала падать при запуске в VMWare (последняя версия от CleverMouse не падала).

    Скриншот падения на доске и скриншот из дебаггера:
    Spoiler:
    pcidev002.png
    pcidev002.png (8.74 KiB)
    Viewed 9613 times
    pcidev001.png
    pcidev001.png (42.94 KiB)
    Viewed 9614 times
    Скриншот как это было раньше:
    Spoiler:
    pcidev003.png
    pcidev003.png (46.68 KiB)
    Viewed 9611 times
  • Я предполагаю, что знаю в чем проблема. :)
    Spoiler:

    Code: Select all

    prepare_text_area:
    146		mov	edi,[store_text_area_start]
    147	
    148		push	edi
    149		mov	ecx,4096/4 ; I hope this will be enough for store of data
    150		mov	eax,dword '    '
    151		cld
    152		rep	stosd
    153		pop	edi
  • Mario wrote:Я предполагаю, что знаю в чем проблема. :)
    Экономные FASM программисты такие экономные :mrgreen:То есть, упало там, где ты написал в комментах, что может здесь упасть :D Ну так увеличь :wink:
  • Не, ну в Qemu все хоккей. ;-)
    Кстати сам можешь проверить, увеличить, закоммитить и восстановить твое поражение в правах как программиста. :mrgreen:
  • На eBox не упало, список сохраняет успешно.
  • Mario wrote:Не, ну в Qemu все хоккей. ;-) Кстати сам можешь проверить, увеличить, закоммитить и восстановить твое поражение в правах как программиста. :mrgreen:
    Не проканало: поменял 4096/4 на 4096 - стало падать в другом месте :oops:
    Spoiler:
    pcidev004.png
    pcidev004.png (39.38 KiB)
    Viewed 9558 times
  • Who is online

    Users browsing this forum: No registered users and 3 guests