Rev 135 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 135 | Rev 205 | ||
---|---|---|---|
1 | ;*************************************************************** |
1 | ;*************************************************************** |
2 | ; project name: PCI Device Enumeration |
2 | ; project name: PCI Device Enumeration |
3 | ; target platform: KolibriOS and MenuetOS |
3 | ; target platform: KolibriOS and MenuetOS |
4 | ; compiler: flat assmebler 1.63.2 |
4 | ; compiler: flat assmebler 1.66 |
5 | ; version: 1.31 |
5 | ; version: 2.0 |
6 | ; last update: 13(th) May 2006 |
6 | ; last update: 30(th) August 2006 |
7 | ; maintained by: Jason Delozier (cordata51) |
7 | ; maintained by: Jason Delozier and Sergey Kuzmin |
8 | ; e-mail: cordata51@hotmail.com |
8 | ; e-mail: cordata51@hotmail.com and kuzmin_serg@list.ru |
9 | ; project site: http://www.asmfreaks.com/menuetos |
9 | ; project site: http://www.coolthemes.narod.ru/pcidev.html |
10 | ;*************************************************************** |
10 | ;*************************************************************** |
11 | ;Summary: This program will attempt to scan the PCI Bus |
11 | ;Summary: This program will attempt to scan the PCI Bus |
12 | ; and display basic information about each device |
12 | ; and display basic information about each device |
13 | ; connected to the PCI Bus. |
13 | ; connected to the PCI Bus. |
14 | ;*************************************************************** |
14 | ;*************************************************************** |
15 | ;HISTORY: |
15 | ;HISTORY: |
16 | ;keep dates in european format (dd/mm/yyyy), please |
16 | ;keep dates in european format (dd/mm/yyyy), please |
17 | ; '!' means big changes |
17 | ; '!' means big changes |
- | 18 | ; |
|
18 | ; to-do: |
19 | ;to-do: |
19 | ;PCI version should be normalized (0210->02.10) |
20 | ; PCI version should be normalized 0210 -> 02.10 (it is BCD number) |
- | 21 | ; vendor's website |
|
- | 22 | ; more vendors |
|
- | 23 | ; device IRQ |
|
- | 24 | ; Subsystem id and Subsystem vendor id detection |
|
- | 25 | ||
- | 26 | ; Full device detection (like "ATI Radeon 9200") will increase app |
|
- | 27 | ; size a lot and probably it is function of particular drivers |
|
- | 28 | ;---------------------------------------------------------------- |
|
- | 29 | ;2.0: PCIDEV 30/08/2006 |
|
- | 30 | ;(it differs a lot from the version 1.0, which was introduced 19 months ago) |
|
- | 31 | ;Author: Marat Zakiyanov aka Mario79 |
|
- | 32 | ; Sergey Kuzmin aka Wildwest |
|
- | 33 | ;Features: |
|
- | 34 | ; added |
|
- | 35 | ; * Detection of Interface by Mario79 |
|
- | 36 | ; * 122 vendor id's by Wildwest |
|
- | 37 | ; * Description is based on Class, SubClass and Interface now (PCI 3.0) by Wildwest |
|
20 | ;---------------------------------------------------------------- |
38 | ;---------------------------------------------------------------- |
21 | ;1.31: PCIDEV 13/05/2006 |
39 | ;1.31: PCIDEV 13/05/2006 |
22 | ;Author: Jason Delozier |
40 | ;Author: Jason Delozier |
23 | ;Features: |
41 | ;Features: |
24 | ; fixed |
42 | ; fixed |
25 | ; * ! bug in Company Name look up code that would cause Unknown Name errors. |
43 | ; * ! bug in Company Name look up code that would cause Unknown Name errors. |
26 | ; * ! possible bugs, many instructions missing byte, word, dword prefixes |
44 | ; * ! possible bugs, many instructions missing byte, word, dword prefixes |
27 | ; * ! possible bug which could have occured after removing "PREVIOUSVERSIONLIST" |
45 | ; * ! possible bug which could have occured after removing "PREVIOUSVERSIONLIST" |
28 | ; entry in loop up code and not fixing jump parameters. |
46 | ; entry in loop up code and not fixing jump parameters. |
29 | ; added |
47 | ; added |
30 | ; * comments to various parts of the code |
48 | ; * comments to various parts of the code |
31 | ; optimized |
49 | ; optimized |
32 | ; * various parts of the source, too many to remember and mention. |
50 | ; * various parts of the source, too many to remember and mention. |
33 | ; * changed entries for Subclasses in vendors.inc to Byte format, saves a little space. |
51 | ; * changed entries for Subclasses in vendors.inc to Byte format, saves a little space. |
34 | ;---------------------------------------------------------------- |
52 | ;---------------------------------------------------------------- |
35 | ;1.30: PCIDEV 11/05/2006 |
53 | ;1.30: PCIDEV 11/05/2006 |
36 | ;Author: Sergey Kuzmin aka Wildwest |
54 | ;Author: Sergey Kuzmin aka Wildwest |
37 | ;Features: |
55 | ;Features: |
38 | ; added |
56 | ; added |
39 | ; * 3 new vendor id's (ESS from Madis Kalme and 2 id's |
57 | ; * 3 new vendor id's (ESS from Madis Kalme and 2 id's |
40 | ; forgotten from 1.15 release: Broadcom -SiByte and Chaintech Comp.) |
58 | ; forgotten from 1.15 release: Broadcom -SiByte and Chaintech Comp.) |
41 | ; changed |
59 | ; changed |
42 | ; * I don't know why other devs (Jason or Victor) changed window style |
60 | ; * I don't know why other devs (Jason or Victor) changed window style |
43 | ; to old ugly one, so I changed it back to skinned type 3. |
61 | ; to old ugly one, so I changed it back to skinned type 3. |
44 | ; * the same goes to the use of macroc.inc - it is enabled again. |
62 | ; * the same goes to the use of macroc.inc - it is enabled again. |
45 | ; deleted |
63 | ; deleted |
46 | ; * there is no more label "PREVIOUSVERSIONLIST" - id's moved to the |
64 | ; * there is no more label "PREVIOUSVERSIONLIST" - id's moved to the |
47 | ; appropriate parts of global list. |
65 | ; appropriate parts of global list. |
48 | ;---------------------------------------------------------------- |
66 | ;---------------------------------------------------------------- |
49 | ;1.29: PCIDEV 30/04/2006 |
67 | ;1.29: PCIDEV 30/04/2006 |
50 | ;Author: Jason Delozier |
68 | ;Author: Jason Delozier |
51 | ;Features: |
69 | ;Features: |
52 | ; fixed |
70 | ; fixed |
53 | ; * ! bug that would not allow devices with device |
71 | ; * ! bug that would not allow devices with device |
54 | ; numbers > 16 to be displayed. |
72 | ; numbers > 16 to be displayed. |
55 | ; added |
73 | ; added |
56 | ; * ! another heading called "FNC" (function) which allows |
74 | ; * ! another heading called "FNC" (function) which allows |
57 | ; the multipurpose Device/Function varible to be split and |
75 | ; the multipurpose Device/Function varible to be split and |
58 | ; displayed to the user properly. |
76 | ; displayed to the user properly. |
59 | ; * horizontal bars to display for easier reading. |
77 | ; * horizontal bars to display for easier reading. |
60 | ; optimized |
78 | ; optimized |
61 | ; * vendor/description search routines for speed and space. |
79 | ; * vendor/description search routines for speed and space. |
62 | ;---------------------------------------------------------------- |
80 | ;---------------------------------------------------------------- |
63 | ;1.25: PCIDEV 02/10/2005 |
81 | ;1.25: PCIDEV 02/10/2005 |
64 | ;Author: Sergey Kuzmin aka Wildwest |
82 | ;Author: Sergey Kuzmin aka Wildwest |
65 | ;Features: |
83 | ;Features: |
66 | ; changed |
84 | ; changed |
67 | ; * ! Description is based on Class and SubClass |
85 | ; * ! Description is based on Class and SubClass |
68 | ; now (PCI 3.0). The Names of Classes and SubClasses |
86 | ; now (PCI 3.0). The Names of Classes and SubClasses |
69 | ; are in the end of Vendors.inc |
87 | ; are in the end of Vendors.inc |
70 | ; deleted |
88 | ; deleted |
71 | ; * label "Descriptions" (names of Classes) |
89 | ; * label "Descriptions" (names of Classes) |
72 | ; |
90 | ; |
73 | ;---------------------------------------------------------------- |
91 | ;---------------------------------------------------------------- |
74 | ;1.20: PCIDEV 16/08/2005 |
92 | ;1.20: PCIDEV 16/08/2005 |
75 | ;Author: Victor Alberto Gil Hanla a.k.a. vhanla |
93 | ;Author: Victor Alberto Gil Hanla a.k.a. vhanla |
76 | ;Features: |
94 | ;Features: |
77 | ; added |
95 | ; added |
78 | ; * ! many vendor lists (865) |
96 | ; * ! many vendor lists (865) |
79 | ; deleted |
97 | ; deleted |
80 | ; * previous version's list |
98 | ; * previous version's list |
81 | ; changed |
99 | ; changed |
82 | ; * previous Company Name searching and printing |
100 | ; * previous Company Name searching and printing |
83 | ;---------------------------------------------------------------- |
101 | ;---------------------------------------------------------------- |
84 | ;1.15: PCIDEV 03/06/2005 |
102 | ;1.15: PCIDEV 03/06/2005 |
85 | ;Author: Sergey Kuzmin aka Wildwest |
103 | ;Author: Sergey Kuzmin aka Wildwest |
86 | ;Features: |
104 | ;Features: |
87 | ; added |
105 | ; added |
88 | ; * quantity of devices, |
106 | ; * quantity of devices, |
89 | ; * ! detection of Company Name based on Vendor ID, |
107 | ; * ! detection of Company Name based on Vendor ID, |
90 | ; * database of VenID (35 ID's), |
108 | ; * database of VenID (35 ID's), |
91 | ; * macros.inc for smaller size, |
109 | ; * macros.inc for smaller size, |
92 | ; changed |
110 | ; changed |
93 | ; * interface+(skinned window), |
111 | ; * interface+(skinned window), |
94 | ; * VenID before DevID in 'table'(was DevID before VenID) |
112 | ; * VenID before DevID in 'table'(was DevID before VenID) |
95 | ;---------------------------------------------------------------- |
113 | ;---------------------------------------------------------------- |
96 | ;1.0: PCIDEV 30/01/2005 |
114 | ;1.0: PCIDEV 30/01/2005 |
97 | ;Author: Jason Delozier |
115 | ;Author: Jason Delozier |
98 | ;Features: |
116 | ;Features: |
99 | ; able to |
117 | ; able to |
100 | ; * detect PCI version, |
118 | ; * detect PCI version, |
101 | ; * quantity of PCI buses, |
119 | ; * quantity of PCI buses, |
102 | ; * Vendor&Device ID for appropriate Device on Bus; |
120 | ; * Vendor&Device ID for appropriate Device on Bus; |
103 | ; * detect Revision, Class and Subclass of Device, |
121 | ; * detect Revision, Class and Subclass of Device, |
104 | ; * and make Description based on Class |
122 | ; * and make Description based on Class |
105 | ;------------------------------------------------------------- |
123 | ;------------------------------------------------------------- |
106 | use32 |
124 | use32 |
107 | 125 | ||
108 | org 0x0 |
126 | org 0x0 |
109 | 127 | ||
110 | db 'MENUET01'; 8 byte id |
128 | db 'MENUET01'; 8 byte id |
111 | dd 0x01 ; header version |
129 | dd 0x01 ; header version |
112 | dd START ; start of code |
130 | dd START ; start of code |
113 | dd I_END ; size of image |
131 | dd I_END ; size of image |
114 | dd 0xFFFF ; memory for app = 64 KB |
132 | dd 0xFFFF ; memory for app = 64 KB |
115 | dd I_END ; esp |
133 | dd I_END ; esp |
116 | dd 0x0 , 0x0 ; I_Param , I_Icon |
134 | dd 0x0 , 0x0 ; I_Param , I_Icon |
117 | 135 | ||
118 | 136 | ||
119 | include 'macros.inc' |
137 | include 'macros.inc' |
120 | include 'vendors.inc' |
138 | include 'VENDORS.INC' |
121 | include 'lang.inc' |
- | |
122 | 139 | ||
123 | START: ; start of execution |
140 | START: ; start of execution |
124 | call draw_window |
141 | call draw_window |
125 | 142 | ||
126 | still: |
143 | still: |
127 | mov eax,10 ; wait here for event |
144 | mov eax,10 ; wait here for event |
128 | int 0x40 |
145 | int 0x40 |
129 | 146 | ||
130 | cmp eax,1 ; redraw request ? |
147 | cmp eax,1 ; redraw request ? |
131 | je red |
148 | je red |
132 | cmp eax,2 ; key in buffer ? |
149 | cmp eax,2 ; key in buffer ? |
133 | je key |
150 | je key |
134 | cmp eax,3 ; button in buffer ? |
151 | cmp eax,3 ; button in buffer ? |
135 | je button |
152 | je button |
136 | 153 | ||
137 | jmp still |
154 | jmp still |
138 | 155 | ||
139 | red: ; redraw |
156 | red: ; redraw |
140 | mov eax, 9 ;window redraw requested so get new window coordinates and size |
157 | mov eax, 9 ;window redraw requested so get new window coordinates and size |
141 | mov ebx, Proc_Info ;area to store process information |
158 | mov ebx, Proc_Info ;area to store process information |
142 | mov ecx, -1 ; |
159 | mov ecx, -1 ; |
143 | int 0x40 ;get the process information |
160 | int 0x40 ;get the process information |
144 | mov eax,[Proc_Info+34] ;store the window coordinates into the Form Structure |
161 | mov eax,[Proc_Info+34] ;store the window coordinates into the Form Structure |
145 | mov [Form+2], ax ;x start position |
162 | mov [Form+2], ax ;x start position |
146 | mov eax,[Proc_Info+38] ; |
163 | mov eax,[Proc_Info+38] ; |
147 | mov [Form+6],ax ;ystart position |
164 | mov [Form+6],ax ;ystart position |
148 | mov eax,[Proc_Info+42] ; |
165 | mov eax,[Proc_Info+42] ; |
149 | mov [Form],ax ;window width |
166 | mov [Form],ax ;window width |
150 | mov eax,[Proc_Info+46] ; |
167 | mov eax,[Proc_Info+46] ; |
151 | mov [Form+4] ,ax ;window height |
168 | mov [Form+4] ,ax ;window height |
152 | call draw_window ;go redraw window now |
169 | call draw_window ;go redraw window now |
153 | jmp still |
170 | jmp still |
154 | 171 | ||
155 | key: ; key |
172 | key: ; key |
156 | mov eax,2 ; just read it and ignore |
173 | mov eax,2 ; just read it and ignore |
157 | int 0x40 |
174 | int 0x40 |
158 | jmp still |
175 | jmp still |
159 | button: ; button |
176 | button: ; button |
160 | mov eax,17 ; get id |
177 | mov eax,17 ; get id |
161 | int 0x40 |
178 | int 0x40 |
162 | 179 | ||
163 | cmp ah,1 ; button id=1 ? |
180 | cmp ah,1 ; button id=1 ? |
164 | jne noclose |
181 | jne noclose |
165 | 182 | ||
166 | mov eax,-1 ; close this program |
183 | mov eax,-1 ; close this program |
167 | int 0x40 |
184 | int 0x40 |
168 | noclose: |
185 | noclose: |
169 | jmp still |
186 | jmp still |
170 | 187 | ||
171 | 188 | ||
172 | 189 | ||
173 | 190 | ||
174 | ; ********************************************* |
191 | ; ********************************************* |
175 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
192 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
176 | ; ********************************************* |
193 | ; ********************************************* |
177 | Form: |
194 | Form: |
178 | dw 780 ;window width |
195 | dw 780 ;window width |
179 | dw 100 ;window x start |
196 | dw 100 ;window x start |
180 | dw 420 ;window height |
197 | dw 420 ;window height |
181 | dw 100 ;window y start |
198 | dw 100 ;window y start |
182 | 199 | ||
183 | 200 | ||
184 | 201 | ||
185 | draw_window: |
202 | draw_window: |
186 | 203 | ||
187 | mov byte [total],0 |
204 | mov byte [total],0 |
188 | 205 | ||
189 | mov eax,12 ; function 12:tell os about windowdraw |
206 | mov eax,12 ; function 12:tell os about windowdraw |
190 | mov ebx,1 ; 1, start of draw |
207 | mov ebx,1 ; 1, start of draw |
191 | int 0x40 |
208 | int 0x40 |
192 | ; DRAW WINDOW |
209 | ; DRAW WINDOW |
193 | mov eax,0 ; function 0 : define and draw window |
210 | mov eax,0 ; function 0 : define and draw window |
194 | mov ebx, dword [Form] ; x/width of window |
211 | mov ebx, dword [Form] ; x/width of window |
195 | mov ecx, dword [Form+4] ; y/height of window |
212 | mov ecx, dword [Form+4] ; y/height of window |
196 | mov edx,0x03ffffff ; color of work area RRGGBB,8->color gl |
213 | mov edx,0x03ffffff ; color of work area RRGGBB,8->color gl |
197 | mov esi,0x805080d0 ; color of grab bar RRGGBB,8->color gl |
214 | mov esi,0x805080d0 ; color of grab bar RRGGBB,8->color gl |
198 | mov edi,0x005080d0 ; color of frames RRGGBB |
215 | mov edi,0x005080d0 ; color of frames RRGGBB |
199 | int 0x40 ; draw the window |
216 | int 0x40 ; draw the window |
200 | ; WINDOW LABEL |
217 | ; WINDOW LABEL |
201 | mov eax,4 ; function 4 : write text to window |
218 | mov eax,4 ; function 4 : write text to window |
202 | mov ebx,8*65536+8 ; [x start] *65536 + [y start] |
219 | mov ebx,8*65536+8 ; [x start] *65536 + [y start] |
203 | mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB ) |
220 | mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB ) |
204 | mov edx,labelt ; pointer to text beginning |
221 | mov edx,labelt ; pointer to text beginning |
205 | mov esi,labellen-labelt ; text length |
222 | mov esi,labellen-labelt ; text length |
206 | int 0x40 |
223 | int 0x40 |
207 | 224 | ||
208 | ;draw captions to window |
225 | ;draw captions to window |
209 | mov ebx, 20*65536+25 ;x start, ystart of text |
226 | mov ebx, 20*65536+25 ;x start, ystart of text |
210 | mov ecx, 0x224466 ;color of text |
227 | mov ecx, 0x224466 ;color of text |
211 | mov edx, dword PCIWin ;start of text buffer |
228 | mov edx, dword PCIWin ;start of text buffer |
212 | mov esi, 106 ;lenght of line |
229 | mov esi, 106 ;lenght of line 106 |
213 | newline: ; |
230 | newline: ; |
214 | mov eax, 4 ;draw text system function |
231 | mov eax, 4 ;draw text system function |
215 | int 0x40 ;draw the text |
232 | int 0x40 ;draw the text |
216 | add ebx, 10 ;one line down |
233 | add ebx, 10 ;one line down |
217 | add edx, esi ;add lenght of line to offset of text buffer |
234 | add edx, esi ;add lenght of line to offset of text buffer |
218 | cmp byte[edx], byte 'x' ;is it the end of buffer? |
235 | cmp byte[edx], byte 'x' ;is it the end of buffer? |
219 | jne newline ;if not draw another line of text |
236 | jne newline ;if not draw another line of text |
220 | 237 | ||
221 | ;Insert horizontal bars in list area |
238 | ;Insert horizontal bars in list area |
222 | mov eax, 13 ;draw bar system function |
239 | mov eax, 13 ;draw bar system function |
223 | mov ebx, 18 ;set Xstart position of bar |
240 | mov ebx, 18 ;set Xstart position of bar |
224 | shl ebx, 16 ; |
241 | shl ebx, 16 ; |
225 | mov bx,word [Form] ;get width of window |
242 | mov bx,word [Form] ;get width of window |
226 | sub bx, 32 ;bar is 32 pixels shorter then window width |
243 | sub bx, 32 ;bar is 32 pixels shorter then window width |
227 | mov ecx, 109*65536+10 ;set Ystart(109) and Height(10) of bar |
244 | mov ecx, 119*65536+10 ;set Ystart(109) and Height(10) of bar 109 |
228 | mov edx, 0xb6b6b6 ;set color of bar |
245 | mov edx, 0xC0C0C0 ;set color of bar |
229 | again: ;begin draw bar loop |
246 | again: ;begin draw bar loop |
230 | int 0x40 ;draw bar to window area |
247 | int 0x40 ;draw bar to window area |
231 | shr ecx, 16 ;move the Ystart position to working area |
248 | shr ecx, 16 ;move the Ystart position to working area |
232 | add ecx, 34 ;add 34 pixels to Y Start (moves bar down) |
249 | add ecx, 34 ;add 34 pixels to Y Start (moves bar down) |
233 | cmp cx,word [Form+4] ;is the Ystart position outside of window area |
250 | cmp cx,word [Form+4] ;is the Ystart position outside of window area |
234 | jae nomo ;if so stop drawing bars |
251 | jae nomo ;if so stop drawing bars |
235 | sub ecx, 14 ;if not, we only need 20 pixels between bar tops |
252 | sub ecx, 14 ;if not, we only need 20 pixels between bar tops |
236 | shl ecx, 16 ;set that values as Ystart |
253 | shl ecx, 16 ;set that values as Ystart |
237 | add ecx, 10 ;Bar Height is always 10 pixels |
254 | add ecx, 10 ;Bar Height is always 10 pixels |
238 | jmp again ;draw another bar |
255 | jmp again ;draw another bar |
239 | nomo: ;done drawing bars here |
256 | nomo: ;done drawing bars here |
240 | 257 | ||
241 | ;start PCI stuff |
258 | ;start PCI stuff |
242 | call Get_PCI_Info ;get pci version and last bus |
259 | call Get_PCI_Info ;get pci version and last bus |
243 | mov cx,word [PCI_Version] ;number to draw |
260 | mov cx,word [PCI_Version] ;number to draw |
244 | mov eax, 47 ;draw number system function |
261 | mov eax, 47 ;draw number system function |
245 | xor esi, esi ;color of text |
262 | xor esi, esi ;color of text |
246 | mov ebx, 0x00040100 ;4 digits to draw in hex format |
263 | mov ebx, 0x00040100 ;4 digits to draw in hex format |
247 | mov edx, 110*65536+45 ;x/y start position of number |
264 | mov edx, 110*65536+45 ;x/y start position of number |
248 | int 0x40 ;draw pci version to window |
265 | int 0x40 ;draw pci version to window |
249 | mov cl,byte [PCI_LastBus] ;number to draw |
266 | mov cl,byte [PCI_LastBus] ;number to draw |
250 | mov ebx, 0x00020100 ;2 digits hex format |
267 | mov ebx, 0x00020100 ;2 digits hex format |
251 | add edx, 10 ;one line below pci version |
268 | add edx, 10 ;one line below pci version |
252 | int 0x40 ;draw the last bus to window |
269 | int 0x40 ;draw the last bus to window |
253 | 270 | ||
254 | call scan_Pci ;scan for and draw each pci device |
271 | call scan_Pci ;scan for and draw each pci device |
255 | 272 | ||
256 | movzx ecx, byte [total] ;number to draw |
273 | movzx ecx, byte [total] ;number to draw |
257 | mov eax, 47 ;draw number system function |
274 | mov eax, 47 ;draw number system function |
258 | mov ebx, 0x00020000 ;2 digits to draw in decimal format |
275 | mov ebx, 0x00020000 ;2 digits to draw in decimal format |
259 | xor esi, esi ;color of text |
276 | xor esi, esi ;color of text |
260 | mov edx, 150*65536+65 ;x/y position to draw to |
277 | mov edx, 150*65536+65 ;x/y position to draw to |
261 | int 0x40 ;draw total number of devices to window |
278 | int 0x40 ;draw total number of devices to window |
262 | 279 | ||
263 | mov eax,12 ; function 12:tell os about windowdraw |
280 | mov eax,12 ; function 12:tell os about windowdraw |
264 | mov ebx,2 ; 2, end of draw |
281 | mov ebx,2 ; 2, end of draw |
265 | int 0x40 |
282 | int 0x40 |
266 | 283 | ||
267 | ret |
284 | ret |
268 | ; *********************************************** |
285 | ; *********************************************** |
269 | ; ******* END WINDOW DEFINITIONS & DRAW ******* |
286 | ; ******* END WINDOW DEFINITIONS & DRAW ******* |
270 | ; *********************************************** |
287 | ; *********************************************** |
271 | 288 | ||
272 | 289 | ||
273 | ;****************************************************** |
290 | ;****************************************************** |
274 | ;* Gets the PCI Versioin and Last Bus |
291 | ;* Gets the PCI Version and Last Bus |
275 | Get_PCI_Info: |
292 | Get_PCI_Info: |
276 | mov eax, 62 |
293 | mov eax, 62 |
277 | xor ebx, ebx |
294 | xor ebx, ebx |
278 | int 0x40 |
295 | int 0x40 |
279 | mov word [PCI_Version], ax |
296 | mov word [PCI_Version], ax |
280 | mov eax, 62 |
297 | mov eax, 62 |
281 | mov ebx, 1 |
298 | mov ebx, 1 |
282 | int 0x40 |
299 | int 0x40 |
283 | mov byte [PCI_LastBus], al |
300 | mov byte [PCI_LastBus], al |
284 | ret |
301 | ret |
285 | ;****************************************************** |
302 | ;****************************************************** |
286 | 303 | ||
287 | 304 | ||
288 | ;****************************************************** |
305 | ;****************************************************** |
289 | ;* Get all devices on PCI Bus |
306 | ;* Get all devices on PCI Bus |
290 | scan_Pci: |
307 | scan_Pci: |
291 | cmp byte [PCI_LastBus],0xff ;0xFF means no pci bus found |
308 | cmp byte [PCI_LastBus],0xff ;0xFF means no pci bus found |
292 | jne Pci_Exists ; |
309 | jne Pci_Exists ; |
293 | ret ;if no bus then leave |
310 | ret ;if no bus then leave |
294 | Pci_Exists: |
311 | Pci_Exists: |
295 | mov byte [V_Bus], 0 ;reset varibles |
312 | mov byte [V_Bus], 0 ;reset varibles |
296 | mov byte [V_Dev], 0 ; |
313 | mov byte [V_Dev], 0 ; |
297 | mov edx, 20*65536+110 ;set start write position |
314 | mov edx, 20*65536+110 ;set start write position |
298 | Start_Enum: |
315 | Start_Enum: |
299 | mov bl, 6 ;get a dword |
316 | mov bl, 6 ;get a dword |
300 | mov bh, byte [V_Bus] ;bus of pci device |
317 | mov bh, byte [V_Bus] ;bus of pci device |
301 | mov ch, byte [V_Dev] ;device number/function |
318 | mov ch, byte [V_Dev] ;device number/function |
302 | mov cl, 0 ;offset to device/vendor id |
319 | mov cl, 0 ;offset to device/vendor id |
303 | mov eax, 62 ;pci system function |
320 | mov eax, 62 ;pci system function |
304 | int 0x40 ;get ID's |
321 | int 0x40 ;get ID's |
305 | 322 | ||
306 | cmp ax, 0 ;Vendor ID should not be 0 or 0xFFFF |
323 | cmp ax, 0 ;Vendor ID should not be 0 or 0xFFFF |
307 | je nextDev ;check next device if nothing exists here |
324 | je nextDev ;check next device if nothing exists here |
308 | cmp ax, 0xffff ; |
325 | cmp ax, 0xffff ; |
309 | je nextDev ; |
326 | je nextDev ; |
310 | 327 | ||
311 | mov word [PCI_Vendor], ax ;There is a device here, save the ID's |
328 | mov word [PCI_Vendor], ax ;There is a device here, save the ID's |
312 | shr eax, 16 ; |
329 | shr eax, 16 ; |
313 | mov word [PCI_Device], ax ; |
330 | mov word [PCI_Device], ax ; |
314 | mov eax, 62 ;PCI Sys Function |
331 | mov eax, 62 ;PCI Sys Function |
315 | mov bl, 4 ;Read config byte |
332 | mov bl, 4 ;Read config byte |
316 | mov bh, byte [V_Bus] ;Bus # |
333 | mov bh, byte [V_Bus] ;Bus # |
317 | mov ch, byte [V_Dev] ;Device # on bus |
334 | mov ch, byte [V_Dev] ;Device # on bus |
318 | mov cl, 0x08 ;Register to read (Get Revision) |
335 | mov cl, 0x08 ;Register to read (Get Revision) |
319 | int 0x40 ;Read it |
336 | int 0x40 ;Read it |
320 | mov byte [PCI_Rev], al ;Save it |
337 | mov byte [PCI_Rev], al ;Save it |
321 | mov eax, 62 ;PCI Sys Function |
338 | mov eax, 62 ;PCI Sys Function |
322 | mov cl, 0x0b ;Register to read (Get class) |
339 | mov cl, 0x0b ;Register to read (Get class) |
323 | int 0x40 ;Read it |
340 | int 0x40 ;Read it |
324 | mov byte [PCI_Class], al ;Save it |
341 | mov byte [PCI_Class], al ;Save it |
325 | mov eax, 62 ;PCI Sys Function |
342 | mov eax, 62 ;PCI Sys Function |
326 | mov cl, 0x0a ;Register to read (Get Subclass) |
343 | mov cl, 0x0a ;Register to read (Get Subclass) |
327 | int 0x40 ;Read it |
344 | int 0x40 ;Read it |
328 | mov byte [PCI_SubClass], al ;Save it |
345 | mov byte [PCI_SubClass], al ;Save it |
- | 346 | ; from Mario79 august 2006 |
|
- | 347 | mov eax, 62 ;PCI Sys Function |
|
- | 348 | mov cl, 0x09 ;Register to read (Get Interface) |
|
- | 349 | int 0x40 ;Read it |
|
- | 350 | mov [PCI_Interface], al ;Save it |
|
- | 351 | ; |
|
329 | inc byte [total] ;one more device found |
352 | inc byte [total] ;one more device found |
330 | call Print_New_Device ;print device info to screen |
353 | call Print_New_Device ;print device info to screen |
331 | nextDev: |
354 | nextDev: |
332 | inc byte [V_Dev] ;next device on this bus |
355 | inc byte [V_Dev] ;next device on this bus |
333 | jnz Start_Enum ;jump until we reach zero |
356 | jnz Start_Enum ;jump until we reach zero |
334 | ;(used to be JNO which caused bug!!! 30-4-2006, JMD) |
357 | ;(used to be JNO which caused bug!!! 30-4-2006, JMD) |
335 | mov byte [V_Dev], 0 ;reset device number |
358 | mov byte [V_Dev], 0 ;reset device number |
336 | inc byte [V_Bus] ;next bus |
359 | inc byte [V_Bus] ;next bus |
337 | mov al, byte [PCI_LastBus] ;get last bus |
360 | mov al, byte [PCI_LastBus] ;get last bus |
338 | cmp byte [V_Bus], al ;was it last bus |
361 | cmp byte [V_Bus], al ;was it last bus |
339 | jbe Start_Enum ;if not jump to keep searching |
362 | jbe Start_Enum ;if not jump to keep searching |
340 | ret |
363 | ret |
341 | ;****************************************************** |
364 | ;****************************************************** |
342 | 365 | ||
343 | 366 | ||
344 | 367 | ||
345 | ;****************************************************** |
368 | ;****************************************************** |
346 | ;* Print device info to screen |
369 | ;* Print device info to screen |
347 | Print_New_Device: |
370 | Print_New_Device: |
348 | mov eax, 47 ;Write number to screen system function |
371 | mov eax, 47 ;Write number to screen system function |
349 | mov ebx, 0x00040100 ;4 byte number, print in hexidecimal |
372 | mov ebx, 0x00040100 ;4 byte number, print in hexidecimal |
350 | xor esi, esi ;Color of text |
373 | xor esi, esi ;Color of text |
351 | movzx ecx,word [PCI_Vendor] ;Pointer to number to be written |
374 | movzx ecx,word [PCI_Vendor] ;Pointer to number to be written |
352 | int 0x40 ;Write Vendor ID |
375 | int 0x40 ;Write Vendor ID |
353 | and edx, 0xFFFF ;***************************************** |
376 | and edx, 0xFFFF ;***************************************** |
354 | or edx, 54*65536 ;X start becomes 54 |
377 | or edx, 54*65536 ;X start becomes 54 |
355 | movzx ecx,word [PCI_Device] ;get Vendor ID |
378 | movzx ecx,word [PCI_Device] ;get Vendor ID |
356 | int 0x40 ;Draw Vendor ID to Window |
379 | int 0x40 ;Draw Vendor ID to Window |
357 | mov ebx, 0x00020100 ;2 digit number, in hexidecimal format |
380 | mov ebx, 0x00020100 ;2 digit number, in hexidecimal format |
358 | and edx, 0xFFFF ;***************************************** |
381 | and edx, 0xFFFF ;***************************************** |
359 | or edx, 98*65536 ;X start becomes 98 |
382 | or edx, 98*65536 ;X start becomes 98 |
360 | movzx ecx,byte [V_Bus] ;get bus number |
383 | movzx ecx,byte [V_Bus] ;get bus number |
361 | int 0x40 ;draw bus number to screen |
384 | int 0x40 ;draw bus number to screen |
362 | and edx, 0xFFFF ;***************************************** |
385 | and edx, 0xFFFF ;***************************************** |
363 | or edx, 128*65536 ;X start becomes 128 |
386 | or edx, 128*65536 ;X start becomes 128 |
364 | movzx ecx,byte [V_Dev] ;get device number |
387 | movzx ecx,byte [V_Dev] ;get device number |
365 | shr ecx, 3 ;device number is bits 3-7 |
388 | shr ecx, 3 ;device number is bits 3-7 |
366 | int 0x40 ;Draw device Number To Window |
389 | int 0x40 ;Draw device Number To Window |
367 | and edx, 0xFFFF ;***************************************** |
390 | and edx, 0xFFFF ;***************************************** |
368 | or edx, 155*65536 ;X start becomes 155 |
391 | or edx, 155*65536 ;X start becomes 155 |
369 | movzx ecx, byte [V_Dev] ;get Function number |
392 | movzx ecx, byte [V_Dev] ;get Function number |
370 | and ecx, 7 ;function is first 3 bits |
393 | and ecx, 7 ;function is first 3 bits |
371 | int 0x40 ;Draw Function Number To Window |
394 | int 0x40 ;Draw Function Number To Window |
372 | and edx, 0xFFFF ;***************************************** |
395 | and edx, 0xFFFF ;***************************************** |
373 | or edx, 179*65536 ;X start becomes 179 |
396 | or edx, 179*65536 ;X start becomes 179 |
374 | movzx ecx,byte [PCI_Rev] ;get revision number |
397 | movzx ecx,byte [PCI_Rev] ;get revision number |
375 | int 0x40 ;Draw Revision to screen |
398 | int 0x40 ;Draw Revision to screen |
376 | and edx, 0xFFFF ;***************************************** |
399 | and edx, 0xFFFF ;***************************************** |
377 | or edx, 215*65536 ;X start becomes 215 |
400 | or edx, 215*65536 ;X start becomes 215 |
378 | movzx ecx,byte [PCI_Class] ;get PCI_Class |
401 | movzx ecx,byte [PCI_Class] ;get PCI_Class |
379 | int 0x40 ;Draw Class to screen |
402 | int 0x40 ;Draw Class to screen |
380 | and edx, 0xFFFF ;***************************************** |
403 | and edx, 0xFFFF ;***************************************** |
381 | or edx, 266*65536 ;X start becomes 266 |
404 | or edx, 250*65536 ;X start becomes 250 |
382 | movzx ecx,byte [PCI_SubClass];get sub class |
405 | movzx ecx,byte [PCI_SubClass];get sub class |
383 | int 0x40 ;Draw Sub Class to screen |
406 | int 0x40 ;Draw Sub Class to screen |
- | 407 | ; from Mario79 august 2006 |
|
- | 408 | and edx, 0xFFFF ;***************************************** |
|
- | 409 | or edx, 280*65536 ;X start becomes 280 |
|
- | 410 | movzx ecx, [PCI_Interface] ;get Interface |
|
- | 411 | int 0x40 |
|
- | 412 | ; |
|
384 | ;Write Names |
413 | ;Write Names |
385 | movzx ebx, dx ;Set y position |
414 | movzx ebx, dx ;Set y position |
386 | or ebx, 310*65536 ;set Xposition to 310 |
415 | or ebx, 310*65536 ;set Xposition to 310 |
387 | 416 | ||
388 | ;********************************************************** |
417 | ;********************************************************** |
389 | ;Prints the Vendor's Name based on Vendor ID |
418 | ;Prints the Vendor's Name based on Vendor ID |
390 | ; |
419 | ; |
391 | ; modified part by vhanla (I know it is not a fastest way to search) |
420 | ; modified part by vhanla (I know it is not a fastest way to search) |
392 | ; it needs optimization... HELP this project! |
421 | ; it needs optimization... HELP this project! |
393 | ; |
422 | ; |
394 | ; Modified on 30-04-2006 by JMD for size |
423 | ; Modified on 30-04-2006 by JMD for size |
395 | ;----------------------------------------------------------------------------- |
424 | ;----------------------------------------------------------------------------- |
396 | ;first determine which list to find the vendor in |
425 | ;first determine which list to find the vendor in |
397 | mov ax, word [PCI_Vendor] |
426 | mov ax, word [PCI_Vendor] |
398 | mov ecx, 255 ;# vendors in most lists |
427 | mov ecx, 255 ;# vendors in most lists |
399 | cmp ax,4800 ;Check if Vendor's value is less than this number |
428 | cmp ax,4540 ;Check if Vendor's value is less than this number (the start of next part) |
400 | jae next1 ;if it is less, let's continue, or jump to next1 |
429 | jae next1 ;if it is less, let's continue, or jump to next1 |
401 | mov edx, _FIRSTPART ;select this list |
430 | mov edx, _FIRSTPART ;select this list |
402 | jmp rep1 ;start searching list |
431 | jmp rep1 ;start searching list |
403 | next1: ; |
432 | next1: ; |
404 | cmp ax,5314 ;same thing happening here as above^ |
433 | cmp ax,5120 ;same thing happening here as above^ |
405 | jae next2 ; |
434 | jae next2 ; |
406 | mov edx, _SECONDPART ; |
435 | mov edx, _SECONDPART ; |
407 | jmp rep1 ; |
436 | jmp rep1 ; |
408 | next2: ; |
437 | next2: ; |
409 | cmp ax,5574 ; |
438 | cmp ax,5459 ; |
410 | jae next3 ; |
439 | jae next3 ; |
411 | mov edx, _THIRDPART ; |
440 | mov edx, _THIRDPART ; |
412 | jmp rep1 ; |
441 | jmp rep1 ; |
413 | next3: ; |
442 | next3: ; |
414 | mov ecx, 110 ;only 110 vendors in this list |
443 | mov ecx, 222 ;only 222 vendors in this list |
415 | mov edx, _FOURTHPART ; |
444 | mov edx, _FOURTHPART ; |
416 | 445 | ||
417 | rep1: |
446 | rep1: |
418 | cmp ax,word[edx+50] ;are Vendor ID's the same? |
447 | cmp ax,word[edx+50] ;are Vendor ID's the same? |
419 | je ex ;if so jump to print the description to screen |
448 | je ex ;if so jump to print the description to screen |
420 | add edx, 52 ;if not put us at start of next description |
449 | add edx, 52 ;if not put us at start of next description |
421 | dec ecx ;one less description in list |
450 | dec ecx ;one less description in list |
422 | jnz rep1 ;was it our last? |
451 | jnz rep1 ;was it our last? |
423 | mov edx, _UNKNOWN ;if so we dont know this Vendor |
452 | mov edx, _UNKNOWN ;if so we dont know this Vendor |
424 | 453 | ||
425 | ex: |
454 | ex: |
426 | ;lets print the vendor Name |
455 | ;lets print the vendor Name |
427 | xor ecx, ecx ;font color |
456 | xor ecx, ecx ;font color |
428 | mov eax,4 ;OS CMD |
457 | mov eax,4 ;OS CMD |
429 | mov esi,50 ;Length of text |
458 | mov esi,50 ;Length of text |
430 | int 0x40 ;Print the text |
459 | int 0x40 ;Print the text |
431 | ;------------------------------------------------------------------ |
- | |
432 | 460 | ||
433 | ;------------------------------------------------------------------ |
461 | ;------------------------------------------------------------------ |
434 | ;Get description based on Class/Subclass |
462 | ;Get description based on Class/Subclass |
435 | cmp byte [PCI_Class], 11h ;we only know of 17 classes |
463 | cmp byte [PCI_Class], 11h ;we only know of 17 classes |
436 | ja endd ;if its more then, its unknown to us, so jump |
464 | ja endd ;if its more then, its unknown to us, so jump |
437 | movzx eax, byte [PCI_Class] ;load our class |
465 | movzx eax, byte [PCI_Class] ;load our class |
438 | shl eax, 3 ;multiply for jump table |
466 | shl eax, 3 ;multiply for jump table |
439 | mov ecx, [ClassList+eax+4] ;number of descriptions for this class |
467 | mov ecx, [ClassList+eax+4] ;number of descriptions for this class |
440 | mov edx, [ClassList+eax] ;start of description list for class |
468 | mov edx, [ClassList+eax] ;start of description list for class |
- | 469 | ||
441 | movzx eax, byte [PCI_SubClass] ;get subclass |
470 | mov al, byte [PCI_SubClass] ;get subclass |
- | 471 | ; mov ah, byte [PCI_Interface] ;get subclass |
|
442 | repu1: |
472 | repu1: |
443 | cmp al,byte[edx+32] ;are subclasses the same? |
473 | cmp al,byte[edx+32] ;are subclasses the same? |
444 | je endd ;if so jump to print the description to screen |
474 | je interface_check ;if so jump to print the description to screen |
445 | add edx, 33 ;if not put us at start of next description |
475 | add edx, 33 ;if not put us at start of next description |
446 | dec ecx ;one less description in list |
476 | dec ecx ;one less description in list |
447 | jnz repu1 ;was it our last? |
477 | jnz repu1 ;was it our last? |
448 | mov edx,_UNKNOWND ;if so its unknown device |
478 | mov edx,_UNKNOWND ;if so its unknown device |
- | 479 | jmp endd |
|
- | 480 | ||
- | 481 | interface_check: |
|
- | 482 | ||
- | 483 | cmp [PCI_Class], 00h |
|
- | 484 | je endd |
|
- | 485 | ||
- | 486 | ;//////////////////////////// |
|
- | 487 | cmp [PCI_Class], 01h |
|
- | 488 | je check01 |
|
- | 489 | jmp nextclass02 |
|
- | 490 | ||
- | 491 | check01: |
|
- | 492 | cmp [PCI_SubClass], 05h |
|
- | 493 | je sc01_05 |
|
- | 494 | jmp endd |
|
- | 495 | ||
- | 496 | sc01_05: |
|
- | 497 | cmp [PCI_Interface], 20h |
|
- | 498 | je sc01_05_20 |
|
- | 499 | cmp [PCI_Interface], 30h |
|
- | 500 | je sc01_05_30 |
|
- | 501 | jmp endd |
|
- | 502 | ||
- | 503 | ||
- | 504 | sc01_05_20: |
|
- | 505 | mov edx,ata1 ; pointer to text beginning |
|
- | 506 | jmp endd |
|
- | 507 | ||
- | 508 | sc01_05_30: |
|
- | 509 | mov edx,ata2 ; pointer to text beginning |
|
- | 510 | jmp endd |
|
- | 511 | ||
- | 512 | ||
- | 513 | ;//////////////////////////// |
|
- | 514 | nextclass02: |
|
- | 515 | cmp [PCI_Class], 02h |
|
- | 516 | je endd |
|
- | 517 | ;//////////////////////////////// |
|
- | 518 | cmp [PCI_Class], 03h |
|
- | 519 | je check03 |
|
- | 520 | jmp nextclass04 |
|
- | 521 | ||
- | 522 | check03: |
|
- | 523 | cmp [PCI_SubClass], 00h |
|
- | 524 | je sc03_00 |
|
- | 525 | jmp endd |
|
- | 526 | ||
- | 527 | sc03_00: |
|
- | 528 | cmp [PCI_Interface], 00000000b |
|
- | 529 | je sc03_00_00000000 |
|
- | 530 | cmp [PCI_Interface], 00000001b |
|
- | 531 | je sc03_00_00000001 |
|
- | 532 | ;jmp endd |
|
- | 533 | ||
- | 534 | ||
- | 535 | sc03_00_00000000: |
|
- | 536 | mov edx,display1 ; pointer to text beginning |
|
- | 537 | jmp endd |
|
- | 538 | ||
- | 539 | sc03_00_00000001: |
|
- | 540 | mov edx,display2 ; pointer to text beginning |
|
- | 541 | jmp endd |
|
- | 542 | ;/////////////////////////////// |
|
- | 543 | nextclass04: |
|
- | 544 | cmp [PCI_Class], 04h |
|
- | 545 | je endd |
|
- | 546 | ||
- | 547 | cmp [PCI_Class], 05h |
|
- | 548 | je endd |
|
- | 549 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 550 | cmp [PCI_Class], 06h |
|
- | 551 | ||
- | 552 | je check06 |
|
- | 553 | jmp nextclass07 |
|
- | 554 | ||
- | 555 | check06: |
|
- | 556 | cmp [PCI_SubClass], 04h |
|
- | 557 | je sc06_04 |
|
- | 558 | ||
- | 559 | cmp [PCI_SubClass], 09h |
|
- | 560 | je sc06_09 |
|
- | 561 | jmp endd |
|
- | 562 | ||
- | 563 | sc06_04: |
|
- | 564 | cmp [PCI_Interface], 00h |
|
- | 565 | je sc06_04_00 |
|
- | 566 | cmp [PCI_Interface], 01h |
|
- | 567 | je sc06_04_01 |
|
- | 568 | jmp endd |
|
- | 569 | ||
- | 570 | ||
- | 571 | sc06_04_00: |
|
- | 572 | mov edx,bridge1 ; pointer to text beginning |
|
- | 573 | jmp endd |
|
- | 574 | ||
- | 575 | sc06_04_01: |
|
- | 576 | mov edx,bridge2 ; pointer to text beginning |
|
- | 577 | jmp endd |
|
- | 578 | ||
- | 579 | ;====================================== |
|
- | 580 | ||
- | 581 | sc06_09: |
|
- | 582 | cmp [PCI_Interface], 40h |
|
- | 583 | je sc06_09_40 |
|
- | 584 | cmp [PCI_Interface], 80h |
|
- | 585 | je sc06_09_80 |
|
- | 586 | jmp endd |
|
- | 587 | ||
- | 588 | ||
- | 589 | sc06_09_40: |
|
- | 590 | mov edx,bridge3 ; pointer to text beginning |
|
- | 591 | jmp endd |
|
- | 592 | ||
- | 593 | sc06_09_80: |
|
- | 594 | mov edx,bridge4 ; pointer to text beginning |
|
- | 595 | jmp endd |
|
- | 596 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 597 | nextclass07: |
|
- | 598 | cmp [PCI_Class], 07h |
|
- | 599 | je check07 |
|
- | 600 | jmp nextclass08 |
|
- | 601 | ||
- | 602 | check07: |
|
- | 603 | cmp [PCI_SubClass], 00h |
|
- | 604 | je sc07_00 |
|
- | 605 | ||
- | 606 | cmp [PCI_SubClass], 01h |
|
- | 607 | je sc07_01 |
|
- | 608 | ||
- | 609 | cmp [PCI_SubClass], 03h |
|
- | 610 | je sc07_03 |
|
- | 611 | jmp endd |
|
- | 612 | ||
- | 613 | ;= |
|
- | 614 | sc07_00: |
|
- | 615 | cmp [PCI_Interface], 00h |
|
- | 616 | je sc07_00_00 |
|
- | 617 | cmp [PCI_Interface], 01h |
|
- | 618 | je sc07_00_01 |
|
- | 619 | cmp [PCI_Interface], 02h |
|
- | 620 | je sc07_00_02 |
|
- | 621 | cmp [PCI_Interface], 03h |
|
- | 622 | je sc07_00_03 |
|
- | 623 | cmp [PCI_Interface], 04h |
|
- | 624 | je sc07_00_04 |
|
- | 625 | cmp [PCI_Interface], 05h |
|
- | 626 | je sc07_00_05 |
|
- | 627 | cmp [PCI_Interface], 06h |
|
- | 628 | je sc07_00_06 |
|
- | 629 | ||
- | 630 | ||
- | 631 | sc07_00_00: |
|
- | 632 | mov edx,communication0 ; pointer to text beginning |
|
- | 633 | jmp endd |
|
- | 634 | ||
- | 635 | sc07_00_01: |
|
- | 636 | mov edx,communication1 ; pointer to text beginning |
|
- | 637 | jmp endd |
|
- | 638 | ||
- | 639 | sc07_00_02: |
|
- | 640 | mov edx,communication2 ; pointer to text beginning |
|
- | 641 | jmp endd |
|
- | 642 | ||
- | 643 | sc07_00_03: |
|
- | 644 | mov edx,communication3 ; pointer to text beginning |
|
- | 645 | jmp endd |
|
- | 646 | ||
- | 647 | sc07_00_04: |
|
- | 648 | mov edx,communication4 ; pointer to text beginning |
|
- | 649 | jmp endd |
|
- | 650 | ||
- | 651 | sc07_00_05: |
|
- | 652 | mov edx,communication5 ; pointer to text beginning |
|
- | 653 | jmp endd |
|
- | 654 | ||
- | 655 | sc07_00_06: |
|
- | 656 | mov edx,communication6 ; pointer to text beginning |
|
- | 657 | jmp endd |
|
- | 658 | ;= |
|
- | 659 | sc07_01: |
|
- | 660 | cmp [PCI_Interface], 00h |
|
- | 661 | je sc07_01_00 |
|
- | 662 | cmp [PCI_Interface], 01h |
|
- | 663 | je sc07_01_01 |
|
- | 664 | cmp [PCI_Interface], 02h |
|
- | 665 | je sc07_01_02 |
|
- | 666 | cmp [PCI_Interface], 03h |
|
- | 667 | je sc07_01_03 |
|
- | 668 | cmp [PCI_Interface], $FE |
|
- | 669 | je sc07_01_FE |
|
- | 670 | ||
- | 671 | ||
- | 672 | sc07_01_00: |
|
- | 673 | mov edx,communication7 ; pointer to text beginning |
|
- | 674 | jmp endd |
|
- | 675 | ||
- | 676 | sc07_01_01: |
|
- | 677 | mov edx,communication8 ; pointer to text beginning |
|
- | 678 | jmp endd |
|
- | 679 | ||
- | 680 | sc07_01_02: |
|
- | 681 | mov edx,communication9 ; pointer to text beginning |
|
- | 682 | jmp endd |
|
- | 683 | ||
- | 684 | sc07_01_03: |
|
- | 685 | mov edx,communication10 ; pointer to text beginning |
|
- | 686 | jmp endd |
|
- | 687 | ||
- | 688 | sc07_01_FE: |
|
- | 689 | mov edx,communication11 ; pointer to text beginning |
|
- | 690 | jmp endd |
|
- | 691 | ||
- | 692 | ||
- | 693 | ;= |
|
- | 694 | sc07_03: |
|
- | 695 | cmp [PCI_Interface], 00h |
|
- | 696 | je sc07_03_00 |
|
- | 697 | cmp [PCI_Interface], 01h |
|
- | 698 | je sc07_03_01 |
|
- | 699 | cmp [PCI_Interface], 02h |
|
- | 700 | je sc07_03_02 |
|
- | 701 | cmp [PCI_Interface], 03h |
|
- | 702 | je sc07_03_03 |
|
- | 703 | cmp [PCI_Interface], 04h |
|
- | 704 | je sc07_03_04 |
|
- | 705 | ||
- | 706 | ||
- | 707 | sc07_03_00: |
|
- | 708 | mov edx,communication12 ; pointer to text beginning |
|
- | 709 | jmp endd |
|
- | 710 | ||
- | 711 | sc07_03_01: |
|
- | 712 | mov edx,communication13 ; pointer to text beginning |
|
- | 713 | jmp endd |
|
- | 714 | ||
- | 715 | sc07_03_02: |
|
- | 716 | mov edx,communication14 ; pointer to text beginning |
|
- | 717 | jmp endd |
|
- | 718 | ||
- | 719 | sc07_03_03: |
|
- | 720 | mov edx,communication15 ; pointer to text beginning |
|
- | 721 | jmp endd |
|
- | 722 | ||
- | 723 | sc07_03_04: |
|
- | 724 | mov edx,communication16 ; pointer to text beginning |
|
- | 725 | jmp endd |
|
- | 726 | ||
- | 727 | ||
- | 728 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 729 | nextclass08: |
|
- | 730 | cmp [PCI_Class], 08h |
|
- | 731 | je check08 |
|
- | 732 | jmp nextclass09 |
|
- | 733 | ||
- | 734 | check08: |
|
- | 735 | cmp [PCI_SubClass], 00h |
|
- | 736 | je sc08_00 |
|
- | 737 | cmp [PCI_SubClass], 01h |
|
- | 738 | je sc08_01 |
|
- | 739 | cmp [PCI_SubClass], 02h |
|
- | 740 | je sc08_02 |
|
- | 741 | cmp [PCI_SubClass], 03h |
|
- | 742 | je sc08_03 |
|
- | 743 | jmp endd |
|
- | 744 | ;-- |
|
- | 745 | sc08_00: |
|
- | 746 | cmp [PCI_Interface], 00h |
|
- | 747 | je sc08_00_00 |
|
- | 748 | cmp [PCI_Interface], 01h |
|
- | 749 | je sc08_00_01 |
|
- | 750 | cmp [PCI_Interface], 02h |
|
- | 751 | je sc08_00_02 |
|
- | 752 | cmp [PCI_Interface], 10h |
|
- | 753 | je sc08_00_10 |
|
- | 754 | cmp [PCI_Interface], 20h |
|
- | 755 | je sc08_00_20 |
|
- | 756 | jmp endd |
|
- | 757 | ||
- | 758 | ||
- | 759 | sc08_00_00: |
|
- | 760 | mov edx,system0 ; pointer to text beginning |
|
- | 761 | jmp endd |
|
- | 762 | ||
- | 763 | sc08_00_01: |
|
- | 764 | mov edx,system1 ; pointer to text beginning |
|
- | 765 | jmp endd |
|
- | 766 | ||
- | 767 | sc08_00_02: |
|
- | 768 | mov edx,system2 ; pointer to text beginning |
|
- | 769 | jmp endd |
|
- | 770 | ||
- | 771 | sc08_00_10: |
|
- | 772 | mov edx,system3 ; pointer to text beginning |
|
- | 773 | jmp endd |
|
- | 774 | ||
- | 775 | sc08_00_20: |
|
- | 776 | mov edx,system4 ; pointer to text beginning |
|
- | 777 | jmp endd |
|
- | 778 | ||
- | 779 | ;-- |
|
- | 780 | ||
- | 781 | sc08_01: |
|
- | 782 | cmp [PCI_Interface], 00h |
|
- | 783 | je sc08_01_00 |
|
- | 784 | cmp [PCI_Interface], 01h |
|
- | 785 | je sc08_01_01 |
|
- | 786 | cmp [PCI_Interface], 02h |
|
- | 787 | je sc08_01_02 |
|
- | 788 | jmp endd |
|
- | 789 | ||
- | 790 | ||
- | 791 | sc08_01_00: |
|
- | 792 | mov edx,system5 ; pointer to text beginning |
|
- | 793 | jmp endd |
|
- | 794 | ||
- | 795 | sc08_01_01: |
|
- | 796 | mov edx,system6 ; pointer to text beginning |
|
- | 797 | jmp endd |
|
- | 798 | ||
- | 799 | sc08_01_02: |
|
- | 800 | mov edx,system7 ; pointer to text beginning |
|
- | 801 | jmp endd |
|
- | 802 | ||
- | 803 | ||
- | 804 | ;-- |
|
- | 805 | ||
- | 806 | sc08_02: |
|
- | 807 | cmp [PCI_Interface], 00h |
|
- | 808 | je sc08_02_00 |
|
- | 809 | cmp [PCI_Interface], 01h |
|
- | 810 | je sc08_02_01 |
|
- | 811 | cmp [PCI_Interface], 02h |
|
- | 812 | je sc08_02_02 |
|
- | 813 | jmp endd |
|
- | 814 | ||
- | 815 | ||
- | 816 | sc08_02_00: |
|
- | 817 | mov edx,system8 ; pointer to text beginning |
|
- | 818 | jmp endd |
|
- | 819 | ||
- | 820 | sc08_02_01: |
|
- | 821 | mov edx,system9 ; pointer to text beginning |
|
- | 822 | jmp endd |
|
- | 823 | ||
- | 824 | sc08_02_02: |
|
- | 825 | mov edx,system10 ; pointer to text beginning |
|
- | 826 | jmp endd |
|
- | 827 | ||
- | 828 | ;-- |
|
- | 829 | sc08_03: |
|
- | 830 | cmp [PCI_Interface], 00h |
|
- | 831 | je sc08_03_00 |
|
- | 832 | cmp [PCI_Interface], 01h |
|
- | 833 | je sc08_03_01 |
|
- | 834 | jmp endd |
|
- | 835 | ||
- | 836 | ||
- | 837 | sc08_03_00: |
|
- | 838 | mov edx,system11 ; pointer to text beginning |
|
- | 839 | jmp endd |
|
- | 840 | ||
- | 841 | sc08_03_01: |
|
- | 842 | mov edx,system12 ; pointer to text beginning |
|
- | 843 | jmp endd |
|
- | 844 | ||
- | 845 | ;-- |
|
- | 846 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 847 | nextclass09: |
|
- | 848 | ||
- | 849 | cmp [PCI_Class], 09h |
|
- | 850 | je check09 |
|
- | 851 | jmp nextclass0A |
|
- | 852 | ||
- | 853 | check09: |
|
- | 854 | cmp [PCI_SubClass], 04h |
|
- | 855 | je sc09_04 |
|
- | 856 | jmp endd |
|
- | 857 | ||
- | 858 | sc09_04: |
|
- | 859 | cmp [PCI_Interface], 00h |
|
- | 860 | je sc09_04_00 |
|
- | 861 | cmp [PCI_Interface], 10h |
|
- | 862 | je sc09_04_10 |
|
- | 863 | jmp endd |
|
- | 864 | ||
- | 865 | ||
- | 866 | sc09_04_00: |
|
- | 867 | mov edx,gameport1 ; pointer to text beginning |
|
- | 868 | jmp endd |
|
- | 869 | ||
- | 870 | sc09_04_10: |
|
- | 871 | mov edx,gameport2 ; pointer to text beginning |
|
- | 872 | jmp endd |
|
- | 873 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 874 | ||
- | 875 | nextclass0A: |
|
- | 876 | cmp [PCI_Class], 0Ah |
|
- | 877 | je endd |
|
- | 878 | ||
- | 879 | cmp [PCI_Class], 0Bh |
|
- | 880 | je endd |
|
- | 881 | ;============================================ |
|
- | 882 | cmp [PCI_Class], 0Ch |
|
- | 883 | je check0C |
|
- | 884 | jmp nextclass0D |
|
- | 885 | ||
- | 886 | check0C: |
|
- | 887 | cmp [PCI_SubClass], 00h |
|
- | 888 | je sc0C_00 |
|
- | 889 | cmp [PCI_SubClass], 03h |
|
- | 890 | je sc0C_03 |
|
- | 891 | cmp [PCI_SubClass], 07h |
|
- | 892 | je sc0C_07 |
|
- | 893 | jmp endd |
|
- | 894 | ;;;;;;;;;;; |
|
- | 895 | ||
- | 896 | sc0C_00: |
|
- | 897 | cmp [PCI_Interface], 00h |
|
- | 898 | je sc0C_00_00 |
|
- | 899 | ||
- | 900 | cmp [PCI_Interface], 10h |
|
- | 901 | je sc0C_00_10 |
|
- | 902 | ||
- | 903 | ||
- | 904 | ||
- | 905 | sc0C_00_00: |
|
- | 906 | mov edx,serialbus6 ; pointer to text beginning |
|
- | 907 | jmp endd |
|
- | 908 | ||
- | 909 | sc0C_00_10: |
|
- | 910 | mov edx,serialbus7 ; pointer to text beginning |
|
- | 911 | jmp endd |
|
- | 912 | ;;;;;;;;;;;;;;;;;;; |
|
- | 913 | ||
- | 914 | sc0C_03: |
|
- | 915 | cmp [PCI_Interface], 00h |
|
- | 916 | je sc0C_03_00 |
|
- | 917 | ||
- | 918 | cmp [PCI_Interface], 10h |
|
- | 919 | je sc0C_03_10 |
|
- | 920 | ||
- | 921 | cmp [PCI_Interface], 20h |
|
- | 922 | je sc0C_03_20 |
|
- | 923 | cmp [PCI_Interface], 80h |
|
- | 924 | je sc0C_03_80 |
|
- | 925 | ||
- | 926 | cmp [PCI_Interface], $FE |
|
- | 927 | je sc0C_03_FE |
|
- | 928 | ||
- | 929 | ;jmp endd |
|
- | 930 | ||
- | 931 | sc0C_03_00: |
|
- | 932 | mov edx,serialbus1 ; pointer to text beginning |
|
- | 933 | jmp endd |
|
- | 934 | ||
- | 935 | sc0C_03_10: |
|
- | 936 | mov edx,serialbus2 ; pointer to text beginning |
|
- | 937 | jmp endd |
|
- | 938 | ||
- | 939 | ||
- | 940 | sc0C_03_20: |
|
- | 941 | mov edx,serialbus3 ; pointer to text beginning |
|
- | 942 | jmp endd |
|
- | 943 | ||
- | 944 | sc0C_03_80: |
|
- | 945 | mov edx,serialbus4 ; pointer to text beginning |
|
- | 946 | jmp endd |
|
- | 947 | ||
- | 948 | sc0C_03_FE: |
|
- | 949 | mov edx,serialbus5 ; pointer to text beginning |
|
- | 950 | jmp endd |
|
- | 951 | ||
- | 952 | ;;;;;;;;;;; |
|
- | 953 | ||
- | 954 | sc0C_07: |
|
- | 955 | cmp [PCI_Interface], 00h |
|
- | 956 | je sc0C_07_00 |
|
- | 957 | ||
- | 958 | cmp [PCI_Interface], 01h |
|
- | 959 | je sc0C_07_01 |
|
- | 960 | ||
- | 961 | cmp [PCI_Interface], 02h |
|
- | 962 | je sc0C_07_02 |
|
- | 963 | ||
- | 964 | ||
- | 965 | sc0C_07_00: |
|
- | 966 | mov edx,serialbus8 ; pointer to text beginning |
|
- | 967 | jmp endd |
|
- | 968 | ||
- | 969 | sc0C_07_01: |
|
- | 970 | mov edx,serialbus9 ; pointer to text beginning |
|
- | 971 | jmp endd |
|
- | 972 | ||
- | 973 | sc0C_07_02: |
|
- | 974 | mov edx,serialbus10 ; pointer to text beginning |
|
- | 975 | jmp endd |
|
- | 976 | ;;;;;;;;;;;;;;;;;;; |
|
- | 977 | ;============================================== |
|
- | 978 | nextclass0D: |
|
- | 979 | cmp [PCI_Class], 0Dh |
|
- | 980 | je endd |
|
- | 981 | ;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 982 | cmp [PCI_Class], 0Eh |
|
- | 983 | je check0E |
|
- | 984 | jmp nextclass0F |
|
- | 985 | ||
- | 986 | check0E: |
|
- | 987 | cmp [PCI_SubClass], 00h |
|
- | 988 | je sc0E_00 |
|
- | 989 | jmp endd |
|
- | 990 | ||
- | 991 | sc0E_00: |
|
- | 992 | cmp [PCI_Interface], 00h |
|
- | 993 | je sc0E_00_00 |
|
- | 994 | cmp [PCI_Interface], 00h ;!!! |
|
- | 995 | ja sc0E_00_xx |
|
- | 996 | jmp endd |
|
- | 997 | ||
- | 998 | ||
- | 999 | sc0E_00_00: |
|
- | 1000 | mov edx,i2o1 ; pointer to text beginning |
|
- | 1001 | jmp endd |
|
- | 1002 | ||
- | 1003 | sc0E_00_xx: |
|
- | 1004 | mov edx,i2o2 ; pointer to text beginning |
|
- | 1005 | jmp endd |
|
- | 1006 | ||
- | 1007 | ||
- | 1008 | ;//////////////////////////// |
|
- | 1009 | nextclass0F: |
|
- | 1010 | cmp [PCI_Class], 0Fh |
|
- | 1011 | je endd |
|
- | 1012 | ||
- | 1013 | cmp [PCI_Class], 10h |
|
- | 1014 | je endd |
|
- | 1015 | ||
- | 1016 | cmp [PCI_Class], 11h |
|
- | 1017 | je endd |
|
- | 1018 | ||
449 | endd: |
1019 | endd: |
450 | and ebx, 0x0000FFFF ;clear X position |
1020 | and ebx, 0x0000FFFF ;clear X position |
451 | or ebx, 0x02300000 ;set X position to 560 pixels |
1021 | or ebx, 0x02300000 ;set X position to 560 pixels |
452 | xor ecx, ecx ;color of text |
1022 | xor ecx, ecx ;color of text |
453 | mov eax,4 ;draw text system function |
1023 | mov eax,4 ;draw text system function |
454 | mov esi,32 ;length of text to draw |
1024 | mov esi,32 ;length of text to draw |
455 | int 0x40 ;draw the text |
1025 | int 0x40 ;draw the text |
456 | 1026 | ||
457 | movzx edx, bx ;get y coordinate |
1027 | movzx edx, bx ;get y coordinate |
458 | add edx, 0x0014000A ;add 10 to y coordinate and set x coordinate to 20 |
1028 | add edx, 0x0014000A ;add 10 to y coordinate and set x coordinate to 20 |
459 | ret |
1029 | ret |
460 | 1030 | ||
461 | ClassList: |
1031 | ClassList: |
462 | dd Class0 , 2, Class1 , 8, Class2, 8, Class3, 4 |
1032 | dd Class0 , 2, Class1 , 8, Class2, 8, Class3, 4 |
463 | dd Class4 , 4, Class5 , 3, Class6, 12, Class7, 7 |
1033 | dd Class4 , 4, Class5 , 3, Class6, 12, Class7, 7 |
464 | dd Class8 , 8, Class9 , 6, ClassA, 2, ClassB, 7 |
1034 | dd Class8 , 8, Class9 , 6, ClassA, 2, ClassB, 7 |
465 | dd ClassC , 10, ClassD , 8, ClassE, 1, ClassF, 4 |
1035 | dd ClassC , 10, ClassD , 8, ClassE, 1, ClassF, 4 |
466 | dd Class10, 3, Class11, 5 |
1036 | dd Class10, 3, Class11, 5 |
467 | ;------------------------------------------------------------------ |
1037 | ;------------------------------------------------------------------ |
468 | 1038 | ||
469 | 1039 | ||
470 | 1040 | ||
471 | ; DATA AREA |
1041 | ; DATA AREA |
472 | 1042 | ||
473 | labelt: |
1043 | labelt: |
474 | db 'PCI Device Enumeration v 1.31 by J. Delozier, S. Kuzmin and V. Hanla' |
1044 | db 'PCI Device Enumeration v 2.0 by J. Delozier, S. Kuzmin, V. Hanla, M. Zakiyanov' |
475 | labellen: |
1045 | labellen: |
- | 1046 | ||
- | 1047 | ata1: |
|
- | 1048 | db 'Storage - ATA c. w/ single DMA ' |
|
- | 1049 | ata1len: |
|
- | 1050 | ||
- | 1051 | ata2: |
|
- | 1052 | db 'Storage - ATA c. w/ chained DMA ' |
|
- | 1053 | ata2len: |
|
- | 1054 | ||
- | 1055 | ||
- | 1056 | display1: |
|
476 | 1057 | db 'Display - VGA-compatible c. ' |
|
- | 1058 | display1len: |
|
477 | if lang eq de |
1059 | |
- | 1060 | display2: |
|
- | 1061 | db 'Display - 8514-compatible c. ' |
|
- | 1062 | display2len: |
|
- | 1063 | ||
- | 1064 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
478 | PCIWin: |
1065 | serialbus1: |
- | 1066 | db 'Serial Bus - USB Universal HC ' |
|
- | 1067 | serialbus1len: |
|
- | 1068 | ||
479 | db 'Im Einstellungsmenue muss der PCI Zugriff eingeschaltet sein. ' |
1069 | serialbus2: |
- | 1070 | db 'Serial Bus - USB Open HC ' |
|
- | 1071 | serialbus2len: |
|
- | 1072 | ||
- | 1073 | serialbus3: |
|
- | 1074 | db 'Serial Bus - USB2 Enhanced HC ' |
|
- | 1075 | serialbus3len: |
|
- | 1076 | ||
- | 1077 | serialbus4: |
|
- | 1078 | db 'Serial Bus - USB w/o specific PI' |
|
- | 1079 | serialbus4len: |
|
- | 1080 | ||
- | 1081 | serialbus5: |
|
- | 1082 | db 'Serial Bus - USB device (not HC)' |
|
- | 1083 | serialbus5len: |
|
- | 1084 | ||
- | 1085 | ||
- | 1086 | serialbus6: |
|
- | 1087 | db 'Serial Bus - IEEE 1394(FireWire)' |
|
- | 1088 | serialbus6len: |
|
- | 1089 | ||
- | 1090 | serialbus7: |
|
- | 1091 | db 'Serial Bus- IEEE 1394(Open HCI) ' |
|
- | 1092 | serialbus7len: |
|
- | 1093 | ||
- | 1094 | ||
480 | db ' ' |
1095 | serialbus8: |
- | 1096 | db 'Serial Bus - IPMI SMIC I. ' |
|
- | 1097 | serialbus8len: |
|
- | 1098 | ||
481 | db ' ' |
1099 | serialbus9: |
- | 1100 | db 'Serial Bus - IPMI Kybd CSI ' |
|
- | 1101 | serialbus9len: |
|
- | 1102 | ||
482 | db ' ' |
1103 | serialbus10: |
- | 1104 | db 'Serial Bus - IPMI BTI ' |
|
- | 1105 | serialbus10len: |
|
- | 1106 | ;;;;;;;;;;;;;;;;;;;;;;; |
|
483 | db 'PCI Version = ' |
1107 | bridge1: |
- | 1108 | db 'Bridge - PCI/PCI ' |
|
- | 1109 | bridge1len: |
|
- | 1110 | ||
- | 1111 | bridge2: |
|
- | 1112 | db 'Bridge - Subtract.Decode PCI/PCI' |
|
- | 1113 | bridge2len: |
|
- | 1114 | ||
- | 1115 | bridge3: |
|
- | 1116 | db 'Bridge - Semi-transp. PCI/PCI 1 ' |
|
- | 1117 | bridge3len: |
|
- | 1118 | ||
- | 1119 | bridge4: |
|
- | 1120 | db 'Bridge - Semi-transp. PCI/PCI 2 ' |
|
- | 1121 | bridge4len: |
|
- | 1122 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 1123 | gameport1: |
|
- | 1124 | db 'Input - Gameport c. (generic) ' |
|
- | 1125 | gameport1len: |
|
- | 1126 | ||
- | 1127 | gameport2: |
|
- | 1128 | db 'Input - Gameport c. (legacy) ' |
|
- | 1129 | gameport2len: |
|
- | 1130 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 1131 | i2o1: |
|
- | 1132 | db 'Intelligent I/O - I/O c. (I2O 1)' |
|
- | 1133 | i2o1len: |
|
- | 1134 | ||
- | 1135 | i2o2: |
|
- | 1136 | db 'Intelligent I/O - c.(FIFO @ 40h)' |
|
- | 1137 | i2o2len: |
|
- | 1138 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 1139 | ||
484 | db ' ' |
1140 | communication0: |
- | 1141 | db 'Communication - Serial (XT) ' |
|
- | 1142 | communication0len: |
|
- | 1143 | ||
- | 1144 | communication1: |
|
- | 1145 | db 'Communication - Serial c.(16450)' |
|
- | 1146 | communication1len: |
|
- | 1147 | ||
- | 1148 | communication2: |
|
- | 1149 | db 'Communication - Serial c.(16550)' |
|
- | 1150 | communication2len: |
|
- | 1151 | ||
- | 1152 | communication3: |
|
- | 1153 | db 'Communication - Serial c.(16650)' |
|
- | 1154 | communication3len: |
|
- | 1155 | ||
- | 1156 | communication4: |
|
- | 1157 | db 'Communication - Serial c.(16750)' |
|
- | 1158 | communication4len: |
|
- | 1159 | ||
- | 1160 | communication5: |
|
- | 1161 | db 'Communication - Serial c.(16850)' |
|
- | 1162 | communication5len: |
|
- | 1163 | ||
- | 1164 | communication6: |
|
- | 1165 | db 'Communication - Serial c.(16950)' |
|
- | 1166 | communication6len: |
|
- | 1167 | ;------------------------------- |
|
- | 1168 | communication7: |
|
- | 1169 | db 'Communication - Parallel port ' |
|
- | 1170 | communication7len: |
|
- | 1171 | ||
- | 1172 | communication8: |
|
- | 1173 | db 'Communication - Bi-dir. par.port' |
|
- | 1174 | communication8len: |
|
- | 1175 | ||
- | 1176 | communication9: |
|
- | 1177 | db 'Communication - ECP 1.X par.port' |
|
- | 1178 | communication9len: |
|
- | 1179 | ||
- | 1180 | communication10: |
|
- | 1181 | db 'Communication - IEEE1284 c. ' |
|
- | 1182 | communication10len: |
|
- | 1183 | ||
- | 1184 | communication11: |
|
- | 1185 | db 'Communication - IEEE1284 device ' |
|
- | 1186 | communication11len: |
|
- | 1187 | ;------------------------------- |
|
- | 1188 | communication12: |
|
- | 1189 | db 'Communication - Generic modem ' |
|
- | 1190 | communication12len: |
|
- | 1191 | ||
- | 1192 | communication13: |
|
- | 1193 | db 'Communication -Hayes modem 16450' |
|
- | 1194 | communication13len: |
|
- | 1195 | ||
- | 1196 | communication14: |
|
- | 1197 | db 'Communication -Hayes modem 16550' |
|
- | 1198 | communication14len: |
|
- | 1199 | ||
- | 1200 | communication15: |
|
- | 1201 | db 'Communication -Hayes modem 16650' |
|
- | 1202 | communication15len: |
|
- | 1203 | ||
- | 1204 | communication16: |
|
- | 1205 | db 'Communication -Hayes modem 16750' |
|
- | 1206 | communication16len: |
|
- | 1207 | ||
- | 1208 | ||
- | 1209 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 1210 | ||
485 | db 'Letzter PCI Bus = ' |
1211 | system0: |
- | 1212 | db 'System - Generic 8259 PIC ' |
|
- | 1213 | system0len: |
|
- | 1214 | ||
486 | db ' ' |
1215 | system1: |
- | 1216 | db 'System - ISA PIC ' |
|
- | 1217 | system1len: |
|
- | 1218 | ||
487 | db 'Anzahl von Geraeten = ' |
1219 | system2: |
- | 1220 | db 'System - EISA PIC ' |
|
- | 1221 | system2len: |
|
- | 1222 | ||
- | 1223 | system3: |
|
- | 1224 | db 'System - I/O APIC interrupt c. ' |
|
- | 1225 | system3len: |
|
- | 1226 | ||
- | 1227 | system4: |
|
- | 1228 | db 'System - I/O(x) APIC interrupt c' |
|
- | 1229 | system4len: |
|
- | 1230 | ;- |
|
488 | db ' ' |
1231 | system5: |
- | 1232 | db 'System - Generic 8237 DMA c. ' |
|
- | 1233 | system5len: |
|
- | 1234 | ||
489 | db ' ' |
1235 | system6: |
- | 1236 | db 'System - ISA DMA c. ' |
|
- | 1237 | system6len: |
|
- | 1238 | ||
490 | db ' ' |
1239 | system7: |
- | 1240 | db 'System - EISA DMA c. ' |
|
- | 1241 | system7len: |
|
- | 1242 | ;-- |
|
491 | db 'VenID DevID Bus# Dev# Fnc Rev Class Subclass Herste' |
1243 | system8: |
- | 1244 | db 'System - 8254 system timer ' |
|
- | 1245 | system8len: |
|
- | 1246 | ||
492 | db 'ller Beschreibung ' |
1247 | system9: |
- | 1248 | db 'System - ISA system timer ' |
|
- | 1249 | system9len: |
|
- | 1250 | ||
493 | db '----- ----- ---- ---- --- --- ----- -------- --------------------' |
1251 | system10: |
- | 1252 | db 'System - EISA (2 system timers) ' |
|
494 | db '---------------------- ----------------' |
1253 | system10len: |
- | 1254 | ;-- |
|
- | 1255 | system11: |
|
- | 1256 | db 'System - Generic RTC c. ' |
|
- | 1257 | system11len: |
|
495 | db 'x' |
1258 | |
- | 1259 | system12: |
|
- | 1260 | db 'System - ISA RTC c. ' |
|
- | 1261 | system12len: |
|
496 | else |
1262 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
497 | PCIWin: |
1263 | PCIWin: |
498 | db 'Please remember to enable PCI Access to Applications in Setup Menu.' |
1264 | db 'Please remember to enable PCI Access to Applications in Setup Menu.' |
499 | db ' ' |
1265 | db ' ' |
500 | db ' ' |
1266 | db ' ' |
501 | db ' ' |
1267 | db ' ' |
502 | db 'PCI Version = ' |
1268 | db 'PCI Version = ' |
503 | db ' ' |
1269 | db ' ' |
504 | db 'Last PCI Bus = ' |
1270 | db 'Last PCI Bus = ' |
505 | db ' ' |
1271 | db ' ' |
506 | db 'Number of devices = ' |
1272 | db 'Quantity of devices = ' |
507 | db ' ' |
1273 | db ' ' |
508 | db ' ' |
1274 | db ' ' |
509 | db ' ' |
1275 | db ' ' |
510 | db 'VenID DevID Bus# Dev# Fnc Rev Class Subclass Comp' |
1276 | db 'VenID DevID Bus# Dev# Fnc Rev Class Subclass/ Comp' |
511 | db 'any Description ' |
1277 | db 'any Description ' |
- | 1278 | db ' Interface ' |
|
- | 1279 | db ' ' |
|
512 | db '----- ----- ---- ---- --- --- ----- -------- --------------------' |
1280 | db '----- ----- ---- ---- --- --- ----- -------- --------------------' |
513 | db '---------------------- ----------------' |
1281 | db '---------------------- ----------------' |
514 | db 'x' |
1282 | db 'x' |
515 | end if |
- | |
- | 1283 | ||
516 | 1284 | ; |
|
517 | 1285 | ||
518 | total db 0 |
1286 | total db 0 |
519 | V_Bus db 0 |
1287 | V_Bus db 0 |
520 | V_Dev db 0 |
1288 | V_Dev db 0 |
521 | PCI_Version dw 0 |
1289 | PCI_Version dw 0 |
522 | PCI_LastBus db 0 |
1290 | PCI_LastBus db 0 |
523 | PCI_Device dw 0 |
1291 | PCI_Device dw 0 |
524 | PCI_Vendor dw 0 |
1292 | PCI_Vendor dw 0 |
525 | PCI_Bus db 0 |
1293 | PCI_Bus db 0 |
526 | PCI_Dev db 0 |
1294 | PCI_Dev db 0 |
527 | PCI_Rev db 0 |
1295 | PCI_Rev db 0 |
528 | PCI_Class db 0 |
1296 | PCI_Class db 0 |
529 | PCI_SubClass db 0 |
1297 | PCI_SubClass db 0 |
530 | - | ||
- | 1298 | PCI_Interface db 0 |
|
531 | 1299 | ||
532 | Proc_Info: |
1300 | Proc_Info: |
533 | times 1024 db 0 |
1301 | times 1024 db 0 |
534 | 1302 | ||
535 | I_END: |
1303 | I_END: |