> http://footballtabl.h15.ru/ivan/info 0.6.zip
Прога интересная. Может попробуешь её портировать с помощью PPro Pascal http://nillsoft.narod.ru/download/download.html или FreePascal...
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:
ЗЫ: может найдутся спецы по Перлу или подобным языкам, которые автоматизируют процесс генерации записей...
Процесс идет, но очень медленными темпами. Ищутся желающие заполнить примерно 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. У себя все строки в файл выняс, прада у меня помима этих причин были и другие.
Мой тебе совет. Надо менять структуру программы пока не поздно. Сделать одну процедуру для поиска в списке ID. И одну для вывода. А то так код раздувается, да и лень делать copy+paste. У себя все строки в файл выняс, прада у меня помима этих причин были и другие.
Согласен, то же пожелание и к cpuid. Сначала собрал все данные, задал нужные текстовые и числовые переменные и вывел все в одном месте. Так проще потом будет работать с исходником, если надо что изменить. Да и оптимальнее, наверное. А так, если нужно чуть сдвинуть, например, строки в программе, придется править 700 строк
И еще рекомендую начать использовать asciiz-строки.
Тогда вместо:
str:
db '...'
str_len
будет
srt db '...',0
(эконимия 2-х строчек в исходнике на каждую строку текста)
Если строк 700, то это на 1400 строк можно уменьшить исходник. Кроме того не нужно будет передавать в esi str_len, а это уже сокращение самого кода.
![Smile :)](./images/smilies/icon_smile.gif)
И еще рекомендую начать использовать 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
;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 для выбранного устройства, но на экране для этого совершенно нет места. Проблема снимается, если будет запись в файл.
Еще была идея чтобы PCIDEV показывала развернутый список Capabilities для выбранного устройства, но на экране для этого совершенно нет места. Проблема снимается, если будет запись в файл.
Евангелие от Иоанна: стих 1[/size]
Code: Select all
; В начале было Слово:
B32: mov ax, os_stack ; Selector for os
Ну, если сделаешь код, то я естественно возражать не буду.
SVN r. 1982
1) Сохранение списка устройств на диск
2) Выбор пути через OpenDialog
С учетом всех предыдущих ревизий присвоил программе версию 2.3
1) Сохранение списка устройств на диск
2) Выбор пути через OpenDialog
С учетом всех предыдущих ревизий присвоил программе версию 2.3
Твоя версия стала падать при запуске в VMWare (последняя версия от CleverMouse не падала).
Скриншот падения на доске и скриншот из дебаггера:Скриншот как это было раньше:
Скриншот падения на доске и скриншот из дебаггера:
Spoiler:
Spoiler:
Я предполагаю, что знаю в чем проблема.
![Smile :)](./images/smilies/icon_smile.gif)
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:Я предполагаю, что знаю в чем проблема.![]()
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
![Very Happy :D](./images/smilies/icon_biggrin.gif)
![Wink :wink:](./images/smilies/icon_wink.gif)
Не, ну в Qemu все хоккей. ![Wink ;-)](./images/smilies/icon_wink.gif)
Кстати сам можешь проверить, увеличить, закоммитить и восстановить твое поражение в правах как программиста.![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
![Wink ;-)](./images/smilies/icon_wink.gif)
Кстати сам можешь проверить, увеличить, закоммитить и восстановить твое поражение в правах как программиста.
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
На eBox не упало, список сохраняет успешно.
Не проканало: поменял 4096/4 на 4096 - стало падать в другом местеMario wrote:Не, ну в Qemu все хоккей.Кстати сам можешь проверить, увеличить, закоммитить и восстановить твое поражение в правах как программиста.
![Embarassed :oops:](./images/smilies/icon_redface.gif)
Spoiler:
Who is online
Users browsing this forum: No registered users and 3 guests