Subversion Repositories Kolibri OS

Rev

Rev 9274 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9274 Rev 9285
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
2
;;                                                              ;;
3
;; Copyright (C) KolibriOS team 2004-2015. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2015. All rights reserved. ;;
4
;; Distributed under terms of the GNU General Public License    ;;
4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
5
;;                                                              ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7
 
7
 
8
format PE DLL native 0.05
8
format PE DLL native 0.05
9
entry START
9
entry START
10
 
10
 
11
        DEBUG = 1
11
        DEBUG = 1
12
 
12
 
13
section '.flat' code readable writable executable
13
section '.flat' code readable writable executable
14
include '../proc32.inc'
14
include '../proc32.inc'
15
include '../struct.inc'
15
include '../struct.inc'
16
include '../pci.inc'
16
include '../pci.inc'
17
include '../macros.inc'
17
include '../macros.inc'
18
include '../peimport.inc'
18
include '../peimport.inc'
19
 
19
 
20
VID_INTEL         = 0x8086
20
VID_INTEL         = 0x8086
21
VID_NVIDIA        = 0x10DE
21
VID_NVIDIA        = 0x10DE
22
VID_VIA           = 0x1106
22
VID_VIA           = 0x1106
23
VID_SIS           = 0x1039
23
VID_SIS           = 0x1039
24
VID_FM801         = 0x1319
24
VID_FM801         = 0x1319
25
VID_CREATIVE      = 0x1102
25
VID_CREATIVE      = 0x1102
26
VID_ATI           = 0x1002
26
VID_ATI           = 0x1002
27
VID_AMD           = 0x1022
27
VID_AMD           = 0x1022
28
VID_ULI           = 0x10B9
28
VID_ULI           = 0x10B9
29
VID_TERA          = 0x6549
29
VID_TERA          = 0x6549
30
VID_RDC           = 0x17F3
30
VID_RDC           = 0x17F3
31
VID_VMWARE        = 0x15AD
31
VID_VMWARE        = 0x15AD
32
 
32
 
33
CTRL_ICH          = 0x2415
33
CTRL_ICH          = 0x2415
34
CTRL_ICH0         = 0x2425
34
CTRL_ICH0         = 0x2425
35
CTRL_ICH2         = 0x2435
35
CTRL_ICH2         = 0x2435
36
CTRL_ICH3         = 0x2445
36
CTRL_ICH3         = 0x2445
37
CTRL_ICH4         = 0x24C5
37
CTRL_ICH4         = 0x24C5
38
CTRL_ICH5         = 0x24D5
38
CTRL_ICH5         = 0x24D5
39
CTRL_ICH6         = 0x266E
39
CTRL_ICH6         = 0x266E
40
CTRL_ICH7         = 0x27DE
40
CTRL_ICH7         = 0x27DE
41
 
41
 
42
CTRL_NFORCE       = 0x01B1
42
CTRL_NFORCE       = 0x01B1
43
CTRL_NFORCE2      = 0x006A
43
CTRL_NFORCE2      = 0x006A
44
CTRL_NFORCE3      = 0x00DA
44
CTRL_NFORCE3      = 0x00DA
45
CTRL_MCP04        = 0x003A
45
CTRL_MCP04        = 0x003A
46
CTRL_CK804        = 0x0059
46
CTRL_CK804        = 0x0059
47
CTRL_CK8          = 0x008A
47
CTRL_CK8          = 0x008A
48
CTRL_CK8S         = 0x00EA
48
CTRL_CK8S         = 0x00EA
49
CTRL_MCP51        = 0x026B
49
CTRL_MCP51        = 0x026B
50
 
50
 
51
CTRL_VT82C686     = 0x3058
51
CTRL_VT82C686     = 0x3058
52
CTRL_VT8233_5     = 0x3059
52
CTRL_VT8233_5     = 0x3059
53
 
53
 
54
CTRL_SIS          = 0x7012
54
CTRL_SIS          = 0x7012
55
 
55
 
56
CTRL_FM801        = 0x0801
56
CTRL_FM801        = 0x0801
57
 
57
 
58
CTRL_CT0200       = 0x0006  ; Dell OEM version (EMU10K1X)
58
CTRL_CT0200       = 0x0006  ; Dell OEM version (EMU10K1X)
59
 
59
 
60
CTRL_INTEL_SCH2          =  0x080a
60
CTRL_INTEL_SCH2          =  0x080a
61
CTRL_INTEL_HPT           =  0x0c0c
61
CTRL_INTEL_HPT           =  0x0c0c
62
CTRL_INTEL_0F04          =  0x0F04
62
CTRL_INTEL_0F04          =  0x0F04
63
CTRL_INTEL_CPT           =  0x1c20
63
CTRL_INTEL_CPT           =  0x1c20
64
CTRL_INTEL_PGB           =  0x1d20
64
CTRL_INTEL_PGB           =  0x1d20
65
CTRL_INTEL_PPT1          =  0x1e20
65
CTRL_INTEL_PPT1          =  0x1e20
66
CTRL_INTEL_2284          =  0x2284
66
CTRL_INTEL_2284          =  0x2284
67
CTRL_INTEL_82801F        =  0x2668
67
CTRL_INTEL_82801F        =  0x2668
68
CTRL_INTEL_63XXESB       =  0x269a
68
CTRL_INTEL_63XXESB       =  0x269a
69
CTRL_INTEL_82801G        =  0x27d8
69
CTRL_INTEL_82801G        =  0x27d8
70
CTRL_INTEL_82801H        =  0x284b
70
CTRL_INTEL_82801H        =  0x284b
71
CTRL_INTEL_82801_UNK1    =  0x2911
71
CTRL_INTEL_82801_UNK1    =  0x2911
72
CTRL_INTEL_82801I        =  0x293e
72
CTRL_INTEL_82801I        =  0x293e
73
CTRL_INTEL_82801_UNK2    =  0x293f
73
CTRL_INTEL_82801_UNK2    =  0x293f
74
CTRL_INTEL_82801JI       =  0x3a3e
74
CTRL_INTEL_82801JI       =  0x3a3e
75
CTRL_INTEL_82801JD       =  0x3a6e
75
CTRL_INTEL_82801JD       =  0x3a6e
76
CTRL_INTEL_PCH           =  0x3b56
76
CTRL_INTEL_PCH           =  0x3b56
77
CTRL_INTEL_PCH2          =  0x3b57
77
CTRL_INTEL_PCH2          =  0x3b57
78
CTRL_INTEL_SCH           =  0x811b
78
CTRL_INTEL_SCH           =  0x811b
79
CTRL_INTEL_LPT           =  0x8c20
79
CTRL_INTEL_LPT           =  0x8c20
80
CTRL_INTEL_8ca0          =  0x8cA0
80
CTRL_INTEL_8ca0          =  0x8cA0
81
CTRL_INTEL_8d20          =  0x8d20
81
CTRL_INTEL_8d20          =  0x8d20
82
CTRL_INTEL_8d21          =  0x8d21
82
CTRL_INTEL_8d21          =  0x8d21
83
CTRL_INTEL_A1F0          =  0xA1F0
83
CTRL_INTEL_A1F0          =  0xA1F0
84
CTRL_INTEL_A270          =  0xA270
84
CTRL_INTEL_A270          =  0xA270
85
CTRL_INTEL_9C20          =  0x9c20
85
CTRL_INTEL_9C20          =  0x9c20
86
CTRL_INTEL_9C21          =  0x9c21
86
CTRL_INTEL_9C21          =  0x9c21
87
CTRL_INTEL_9CA0          =  0x9cA0
87
CTRL_INTEL_9CA0          =  0x9cA0
88
CTRL_INTEL_A170          =  0xA170
88
CTRL_INTEL_A170          =  0xA170
89
CTRL_INTEL_9D70          =  0x9D70
89
CTRL_INTEL_9D70          =  0x9D70
90
CTRL_INTEL_5A98          =  0x5A98
90
CTRL_INTEL_5A98          =  0x5A98
91
 
91
 
92
 
92
 
93
CTRL_NVIDIA_MCP51        =  0x026c
93
CTRL_NVIDIA_MCP51        =  0x026c
94
CTRL_NVIDIA_MCP55        =  0x0371
94
CTRL_NVIDIA_MCP55        =  0x0371
95
CTRL_NVIDIA_MCP61_1      =  0x03e4
95
CTRL_NVIDIA_MCP61_1      =  0x03e4
96
CTRL_NVIDIA_MCP61_2      =  0x03f0
96
CTRL_NVIDIA_MCP61_2      =  0x03f0
97
CTRL_NVIDIA_MCP65_1      =  0x044a
97
CTRL_NVIDIA_MCP65_1      =  0x044a
98
CTRL_NVIDIA_MCP65_2      =  0x044b
98
CTRL_NVIDIA_MCP65_2      =  0x044b
99
CTRL_NVIDIA_MCP67_1      =  0x055c
99
CTRL_NVIDIA_MCP67_1      =  0x055c
100
CTRL_NVIDIA_MCP67_2      =  0x055d
100
CTRL_NVIDIA_MCP67_2      =  0x055d
101
CTRL_NVIDIA_MCP78_1      =  0x0774
101
CTRL_NVIDIA_MCP78_1      =  0x0774
102
CTRL_NVIDIA_MCP78_2      =  0x0775
102
CTRL_NVIDIA_MCP78_2      =  0x0775
103
CTRL_NVIDIA_MCP78_3      =  0x0776
103
CTRL_NVIDIA_MCP78_3      =  0x0776
104
CTRL_NVIDIA_MCP78_4      =  0x0777
104
CTRL_NVIDIA_MCP78_4      =  0x0777
105
CTRL_NVIDIA_MCP73_1      =  0x07fc
105
CTRL_NVIDIA_MCP73_1      =  0x07fc
106
CTRL_NVIDIA_MCP73_2      =  0x07fd
106
CTRL_NVIDIA_MCP73_2      =  0x07fd
107
CTRL_NVIDIA_MCP79_1      =  0x0ac0
107
CTRL_NVIDIA_MCP79_1      =  0x0ac0
108
CTRL_NVIDIA_MCP79_2      =  0x0ac1
108
CTRL_NVIDIA_MCP79_2      =  0x0ac1
109
CTRL_NVIDIA_MCP79_3      =  0x0ac2
109
CTRL_NVIDIA_MCP79_3      =  0x0ac2
110
CTRL_NVIDIA_MCP79_4      =  0x0ac3
110
CTRL_NVIDIA_MCP79_4      =  0x0ac3
111
CTRL_NVIDIA_0BE2         =  0x0be2
111
CTRL_NVIDIA_0BE2         =  0x0be2
112
CTRL_NVIDIA_0BE3         =  0x0be3
112
CTRL_NVIDIA_0BE3         =  0x0be3
113
CTRL_NVIDIA_0BE4         =  0x0be4
113
CTRL_NVIDIA_0BE4         =  0x0be4
114
CTRL_NVIDIA_GT100        =  0x0be5
114
CTRL_NVIDIA_GT100        =  0x0be5
115
CTRL_NVIDIA_GT106        =  0x0be9
115
CTRL_NVIDIA_GT106        =  0x0be9
116
CTRL_NVIDIA_GT108        =  0x0bea
116
CTRL_NVIDIA_GT108        =  0x0bea
117
CTRL_NVIDIA_GT104        =  0x0beb
117
CTRL_NVIDIA_GT104        =  0x0beb
118
CTRL_NVIDIA_GT116        =  0x0bee
118
CTRL_NVIDIA_GT116        =  0x0bee
119
CTRL_NVIDIA_MCP89_1      =  0x0d94
119
CTRL_NVIDIA_MCP89_1      =  0x0d94
120
CTRL_NVIDIA_MCP89_2      =  0x0d95
120
CTRL_NVIDIA_MCP89_2      =  0x0d95
121
CTRL_NVIDIA_MCP89_3      =  0x0d96
121
CTRL_NVIDIA_MCP89_3      =  0x0d96
122
CTRL_NVIDIA_MCP89_4      =  0x0d97
122
CTRL_NVIDIA_MCP89_4      =  0x0d97
123
CTRL_NVIDIA_GF119        =  0x0e08
123
CTRL_NVIDIA_GF119        =  0x0e08
124
CTRL_NVIDIA_GF110_1      =  0x0e09
124
CTRL_NVIDIA_GF110_1      =  0x0e09
125
CTRL_NVIDIA_GF110_2      =  0x0e0c
125
CTRL_NVIDIA_GF110_2      =  0x0e0c
126
 
126
 
127
CTRL_ATI_SB450           =  0x437b
127
CTRL_ATI_SB450           =  0x437b
128
CTRL_ATI_SB600           =  0x4383
128
CTRL_ATI_SB600           =  0x4383
129
 
129
 
130
CTRL_ATI_RS600           =  0x793b
130
CTRL_ATI_RS600           =  0x793b
131
CTRL_ATI_RS690           =  0x7919
131
CTRL_ATI_RS690           =  0x7919
132
CTRL_ATI_RS780           =  0x960f
132
CTRL_ATI_RS780           =  0x960f
133
CTRL_ATI_RS_UNK1         =  0x970f
133
CTRL_ATI_RS_UNK1         =  0x970f
134
CTRL_ATI_R600            =  0xaa00
134
CTRL_ATI_R600            =  0xaa00
135
CTRL_ATI_RV630           =  0xaa08
135
CTRL_ATI_RV630           =  0xaa08
136
CTRL_ATI_RV610           =  0xaa10
136
CTRL_ATI_RV610           =  0xaa10
137
CTRL_ATI_RV670           =  0xaa18
137
CTRL_ATI_RV670           =  0xaa18
138
CTRL_ATI_RV635           =  0xaa20
138
CTRL_ATI_RV635           =  0xaa20
139
CTRL_ATI_RV620           =  0xaa28
139
CTRL_ATI_RV620           =  0xaa28
140
CTRL_ATI_RV770           =  0xaa30
140
CTRL_ATI_RV770           =  0xaa30
141
CTRL_ATI_RV730           =  0xaa38
141
CTRL_ATI_RV730           =  0xaa38
142
CTRL_ATI_RV710           =  0xaa40
142
CTRL_ATI_RV710           =  0xaa40
143
CTRL_ATI_RV740           =  0xaa48
143
CTRL_ATI_RV740           =  0xaa48
144
 
144
 
145
CTRL_AMD_HUDSON          =  0x780d
145
CTRL_AMD_HUDSON          =  0x780d
146
CTRL_AMD_RAVEN_RIDGE     =  0x15e3
146
CTRL_AMD_RAVEN_RIDGE     =  0x15e3
-
 
147
CTRL_AMD_MATISSE         =  0x1487
147
 
148
 
148
CTRL_VIA_VT82XX          =  0x3288
149
CTRL_VIA_VT82XX          =  0x3288
149
CTRL_VIA_VT61XX          =  0x9140
150
CTRL_VIA_VT61XX          =  0x9140
150
CTRL_VIA_VT71XX          =  0x9170
151
CTRL_VIA_VT71XX          =  0x9170
151
 
152
 
152
CTRL_SIS_966             =  0x7502
153
CTRL_SIS_966             =  0x7502
153
 
154
 
154
CTRL_ULI_M5461           =  0x5461
155
CTRL_ULI_M5461           =  0x5461
155
 
156
 
156
CTRL_CREATIVE_CA0110_IBG     =  0x0009
157
CTRL_CREATIVE_CA0110_IBG     =  0x0009
157
CTRL_CREATIVE_SOUND_CORE3D_1 =  0x0010
158
CTRL_CREATIVE_SOUND_CORE3D_1 =  0x0010
158
CTRL_CREATIVE_SOUND_CORE3D_2 =  0x0012
159
CTRL_CREATIVE_SOUND_CORE3D_2 =  0x0012
159
 
160
 
160
CTRL_TERA_UNK1           =  0x1200
161
CTRL_TERA_UNK1           =  0x1200
161
 
162
 
162
CTRL_RDC_R3010           =  0x3010
163
CTRL_RDC_R3010           =  0x3010
163
 
164
 
164
CTRL_VMWARE_UNK1         =  0x1977
165
CTRL_VMWARE_UNK1         =  0x1977
165
 
166
 
166
struct  SRV
167
struct  SRV
167
        srv_name        rb 16    ;ASCIIZ string
168
        srv_name        rb 16    ;ASCIIZ string
168
        magic           dd ?     ;+0x10 ;'SRV '
169
        magic           dd ?     ;+0x10 ;'SRV '
169
        size            dd ?     ;+0x14 ;size of structure SRV
170
        size            dd ?     ;+0x14 ;size of structure SRV
170
        fd              dd ?     ;+0x18 ;next SRV descriptor
171
        fd              dd ?     ;+0x18 ;next SRV descriptor
171
        bk              dd ?     ;+0x1C ;prev SRV descriptor
172
        bk              dd ?     ;+0x1C ;prev SRV descriptor
172
        base            dd ?     ;+0x20 ;service base address
173
        base            dd ?     ;+0x20 ;service base address
173
        entry           dd ?     ;+0x24 ;service START function
174
        entry           dd ?     ;+0x24 ;service START function
174
        srv_proc        dd ?     ;+0x28 ;user mode service handler
175
        srv_proc        dd ?     ;+0x28 ;user mode service handler
175
        srv_proc_ex     dd ?     ;+0x2C ;kernel mode service handler
176
        srv_proc_ex     dd ?     ;+0x2C ;kernel mode service handler
176
ends
177
ends
177
 
178
 
178
 
179
 
179
proc START c uses ebx esi edi, state:dword, cmdline:dword
180
proc START c uses ebx esi edi, state:dword, cmdline:dword
180
 
181
 
181
        mov     eax, [srv_entry]
182
        mov     eax, [srv_entry]
182
        cmp     [state], 1
183
        cmp     [state], 1
183
        jne     .stop
184
        jne     .stop
184
 
185
 
185
     if DEBUG
186
     if DEBUG
186
        mov     esi, msgInit
187
        mov     esi, msgInit
187
        invoke  SysMsgBoardStr
188
        invoke  SysMsgBoardStr
188
     end if
189
     end if
189
 
190
 
190
        test    eax, eax
191
        test    eax, eax
191
        jnz     .done
192
        jnz     .done
192
        call    detect_controller
193
        call    detect_controller
193
        ret
194
        ret
194
.stop:
195
.stop:
195
        test    eax, eax
196
        test    eax, eax
196
        jz      .done
197
        jz      .done
197
        leave
198
        leave
198
        jmp     eax
199
        jmp     eax
199
.done:
200
.done:
200
        xor     eax, eax
201
        xor     eax, eax
201
        ret
202
        ret
202
endp
203
endp
203
 
204
 
204
proc service_proc stdcall, ioctl:dword
205
proc service_proc stdcall, ioctl:dword
205
 
206
 
206
        or      eax, -1
207
        or      eax, -1
207
        ret
208
        ret
208
endp
209
endp
209
 
210
 
210
proc detect_controller
211
proc detect_controller
211
 
212
 
212
        invoke  GetPCIList
213
        invoke  GetPCIList
213
        mov     edx, eax
214
        mov     edx, eax
214
 
215
 
215
  .loop:
216
  .loop:
216
        mov     ecx, [eax + PCIDEV.vendor_device_id]
217
        mov     ecx, [eax + PCIDEV.vendor_device_id]
217
        mov     edi, devices
218
        mov     edi, devices
218
  @@:
219
  @@:
219
        mov     ebx, [edi]
220
        mov     ebx, [edi]
220
        test    ebx, ebx
221
        test    ebx, ebx
221
        jz      .next
222
        jz      .next
222
 
223
 
223
        cmp     ecx, ebx
224
        cmp     ecx, ebx
224
        je      .found
225
        je      .found
225
        add     edi, 8
226
        add     edi, 8
226
        jmp     @b
227
        jmp     @b
227
 
228
 
228
  .next:
229
  .next:
229
        mov     eax, [eax + PCIDEV.fd]
230
        mov     eax, [eax + PCIDEV.fd]
230
        cmp     eax, edx
231
        cmp     eax, edx
231
        jne     .loop
232
        jne     .loop
232
 
233
 
233
     if DEBUG
234
     if DEBUG
234
        mov     esi, msgFail
235
        mov     esi, msgFail
235
        invoke  SysMsgBoardStr
236
        invoke  SysMsgBoardStr
236
 
237
 
237
        mov     esi, msgLoading
238
        mov     esi, msgLoading
238
        invoke  SysMsgBoardStr
239
        invoke  SysMsgBoardStr
239
 
240
 
240
        mov     esi, sb16
241
        mov     esi, sb16
241
        invoke  SysMsgBoardStr
242
        invoke  SysMsgBoardStr
242
 
243
 
243
        mov     esi, msgNewline
244
        mov     esi, msgNewline
244
        invoke  SysMsgBoardStr
245
        invoke  SysMsgBoardStr
245
     end if
246
     end if
246
 
247
 
247
        invoke  GetService, sb16
248
        invoke  GetService, sb16
248
        test    eax, eax
249
        test    eax, eax
249
        jz      .fail
250
        jz      .fail
250
 
251
 
251
        mov     edx, [eax+SRV.entry]
252
        mov     edx, [eax+SRV.entry]
252
        mov     [srv_entry], edx
253
        mov     [srv_entry], edx
253
        ret
254
        ret
254
 
255
 
255
  .found:
256
  .found:
256
     if DEBUG
257
     if DEBUG
257
        mov     esi, msgLoading
258
        mov     esi, msgLoading
258
        invoke  SysMsgBoardStr
259
        invoke  SysMsgBoardStr
259
 
260
 
260
        mov     esi, dword[edi+4]
261
        mov     esi, dword[edi+4]
261
        invoke  SysMsgBoardStr
262
        invoke  SysMsgBoardStr
262
 
263
 
263
        mov     esi, msgNewline
264
        mov     esi, msgNewline
264
        invoke  SysMsgBoardStr
265
        invoke  SysMsgBoardStr
265
     end if
266
     end if
266
 
267
 
267
        invoke  GetService, dword[edi+4]
268
        invoke  GetService, dword[edi+4]
268
        test    eax, eax
269
        test    eax, eax
269
        jz      .fail
270
        jz      .fail
270
 
271
 
271
        mov     edx, [eax+SRV.entry]
272
        mov     edx, [eax+SRV.entry]
272
        mov     [srv_entry], edx
273
        mov     [srv_entry], edx
273
        ret
274
        ret
274
 
275
 
275
  .fail:
276
  .fail:
276
        xor     eax, eax
277
        xor     eax, eax
277
        ret
278
        ret
278
 
279
 
279
endp
280
endp
280
 
281
 
281
align 4
282
align 4
282
devices         dd (CTRL_ICH  shl 16)+VID_INTEL, intelac97
283
devices         dd (CTRL_ICH  shl 16)+VID_INTEL, intelac97
283
                dd (CTRL_ICH0 shl 16)+VID_INTEL, intelac97
284
                dd (CTRL_ICH0 shl 16)+VID_INTEL, intelac97
284
                dd (CTRL_ICH2 shl 16)+VID_INTEL, intelac97
285
                dd (CTRL_ICH2 shl 16)+VID_INTEL, intelac97
285
                dd (CTRL_ICH3 shl 16)+VID_INTEL, intelac97
286
                dd (CTRL_ICH3 shl 16)+VID_INTEL, intelac97
286
                dd (CTRL_ICH4 shl 16)+VID_INTEL, intelac97
287
                dd (CTRL_ICH4 shl 16)+VID_INTEL, intelac97
287
                dd (CTRL_ICH5 shl 16)+VID_INTEL, intelac97
288
                dd (CTRL_ICH5 shl 16)+VID_INTEL, intelac97
288
                dd (CTRL_ICH6 shl 16)+VID_INTEL, intelac97
289
                dd (CTRL_ICH6 shl 16)+VID_INTEL, intelac97
289
                dd (CTRL_ICH7 shl 16)+VID_INTEL, intelac97
290
                dd (CTRL_ICH7 shl 16)+VID_INTEL, intelac97
290
 
291
 
291
                dd (CTRL_NFORCE  shl 16)+VID_NVIDIA, intelac97
292
                dd (CTRL_NFORCE  shl 16)+VID_NVIDIA, intelac97
292
                dd (CTRL_NFORCE2 shl 16)+VID_NVIDIA, intelac97
293
                dd (CTRL_NFORCE2 shl 16)+VID_NVIDIA, intelac97
293
                dd (CTRL_NFORCE3 shl 16)+VID_NVIDIA, intelac97
294
                dd (CTRL_NFORCE3 shl 16)+VID_NVIDIA, intelac97
294
                dd (CTRL_MCP04   shl 16)+VID_NVIDIA, intelac97
295
                dd (CTRL_MCP04   shl 16)+VID_NVIDIA, intelac97
295
                dd (CTRL_CK804   shl 16)+VID_NVIDIA, intelac97
296
                dd (CTRL_CK804   shl 16)+VID_NVIDIA, intelac97
296
                dd (CTRL_CK8     shl 16)+VID_NVIDIA, intelac97
297
                dd (CTRL_CK8     shl 16)+VID_NVIDIA, intelac97
297
                dd (CTRL_CK8S    shl 16)+VID_NVIDIA, intelac97
298
                dd (CTRL_CK8S    shl 16)+VID_NVIDIA, intelac97
298
                dd (CTRL_MCP51   shl 16)+VID_NVIDIA, intelac97
299
                dd (CTRL_MCP51   shl 16)+VID_NVIDIA, intelac97
299
 
300
 
300
                dd (CTRL_VT82C686  shl 16)+VID_VIA, vt823x
301
                dd (CTRL_VT82C686  shl 16)+VID_VIA, vt823x
301
                dd (CTRL_VT8233_5  shl 16)+VID_VIA, vt823x
302
                dd (CTRL_VT8233_5  shl 16)+VID_VIA, vt823x
302
 
303
 
303
                dd (CTRL_SIS  shl 16)+VID_SIS, sis
304
                dd (CTRL_SIS  shl 16)+VID_SIS, sis
304
 
305
 
305
                dd (CTRL_FM801 shl 16)+VID_FM801, fm801
306
                dd (CTRL_FM801 shl 16)+VID_FM801, fm801
306
 
307
 
307
                dd (0x5000 shl 16)+0x1274, ensoniq
308
                dd (0x5000 shl 16)+0x1274, ensoniq
308
                dd (0x5880 shl 16)+0x1274, ensoniq
309
                dd (0x5880 shl 16)+0x1274, ensoniq
309
 
310
 
310
                dd (CTRL_CT0200 shl 16)+VID_CREATIVE, emu10k1x
311
                dd (CTRL_CT0200 shl 16)+VID_CREATIVE, emu10k1x
311
; Intel HDA
312
; Intel HDA
312
                dd (CTRL_INTEL_SCH2       shl 16)+VID_INTEL, intelhda
313
                dd (CTRL_INTEL_SCH2       shl 16)+VID_INTEL, intelhda
313
                dd (CTRL_INTEL_HPT        shl 16)+VID_INTEL, intelhda
314
                dd (CTRL_INTEL_HPT        shl 16)+VID_INTEL, intelhda
314
                dd (CTRL_INTEL_0F04       shl 16)+VID_INTEL, intelhda
315
                dd (CTRL_INTEL_0F04       shl 16)+VID_INTEL, intelhda
315
                dd (CTRL_INTEL_CPT        shl 16)+VID_INTEL, intelhda
316
                dd (CTRL_INTEL_CPT        shl 16)+VID_INTEL, intelhda
316
                dd (CTRL_INTEL_PGB        shl 16)+VID_INTEL, intelhda
317
                dd (CTRL_INTEL_PGB        shl 16)+VID_INTEL, intelhda
317
                dd (CTRL_INTEL_PPT1       shl 16)+VID_INTEL, intelhda
318
                dd (CTRL_INTEL_PPT1       shl 16)+VID_INTEL, intelhda
318
                dd (CTRL_INTEL_2284       shl 16)+VID_INTEL, intelhda
319
                dd (CTRL_INTEL_2284       shl 16)+VID_INTEL, intelhda
319
                dd (CTRL_INTEL_82801F     shl 16)+VID_INTEL, intelhda
320
                dd (CTRL_INTEL_82801F     shl 16)+VID_INTEL, intelhda
320
                dd (CTRL_INTEL_63XXESB    shl 16)+VID_INTEL, intelhda
321
                dd (CTRL_INTEL_63XXESB    shl 16)+VID_INTEL, intelhda
321
                dd (CTRL_INTEL_82801G     shl 16)+VID_INTEL, intelhda
322
                dd (CTRL_INTEL_82801G     shl 16)+VID_INTEL, intelhda
322
                dd (CTRL_INTEL_82801H     shl 16)+VID_INTEL, intelhda
323
                dd (CTRL_INTEL_82801H     shl 16)+VID_INTEL, intelhda
323
                dd (CTRL_INTEL_82801_UNK1 shl 16)+VID_INTEL, intelhda
324
                dd (CTRL_INTEL_82801_UNK1 shl 16)+VID_INTEL, intelhda
324
                dd (CTRL_INTEL_82801I     shl 16)+VID_INTEL, intelhda
325
                dd (CTRL_INTEL_82801I     shl 16)+VID_INTEL, intelhda
325
                dd (CTRL_INTEL_82801_UNK2 shl 16)+VID_INTEL, intelhda
326
                dd (CTRL_INTEL_82801_UNK2 shl 16)+VID_INTEL, intelhda
326
                dd (CTRL_INTEL_82801JI    shl 16)+VID_INTEL, intelhda
327
                dd (CTRL_INTEL_82801JI    shl 16)+VID_INTEL, intelhda
327
                dd (CTRL_INTEL_82801JD    shl 16)+VID_INTEL, intelhda
328
                dd (CTRL_INTEL_82801JD    shl 16)+VID_INTEL, intelhda
328
                dd (CTRL_INTEL_PCH        shl 16)+VID_INTEL, intelhda
329
                dd (CTRL_INTEL_PCH        shl 16)+VID_INTEL, intelhda
329
                dd (CTRL_INTEL_PCH2       shl 16)+VID_INTEL, intelhda
330
                dd (CTRL_INTEL_PCH2       shl 16)+VID_INTEL, intelhda
330
                dd (CTRL_INTEL_SCH        shl 16)+VID_INTEL, intelhda
331
                dd (CTRL_INTEL_SCH        shl 16)+VID_INTEL, intelhda
331
                dd (CTRL_INTEL_LPT        shl 16)+VID_INTEL, intelhda
332
                dd (CTRL_INTEL_LPT        shl 16)+VID_INTEL, intelhda
332
                dd (CTRL_INTEL_8ca0       shl 16)+VID_INTEL, intelhda
333
                dd (CTRL_INTEL_8ca0       shl 16)+VID_INTEL, intelhda
333
                dd (CTRL_INTEL_8d20       shl 16)+VID_INTEL, intelhda
334
                dd (CTRL_INTEL_8d20       shl 16)+VID_INTEL, intelhda
334
                dd (CTRL_INTEL_8d21       shl 16)+VID_INTEL, intelhda
335
                dd (CTRL_INTEL_8d21       shl 16)+VID_INTEL, intelhda
335
                dd (CTRL_INTEL_A1F0       shl 16)+VID_INTEL, intelhda
336
                dd (CTRL_INTEL_A1F0       shl 16)+VID_INTEL, intelhda
336
                dd (CTRL_INTEL_A270       shl 16)+VID_INTEL, intelhda
337
                dd (CTRL_INTEL_A270       shl 16)+VID_INTEL, intelhda
337
                dd (CTRL_INTEL_9C20       shl 16)+VID_INTEL, intelhda
338
                dd (CTRL_INTEL_9C20       shl 16)+VID_INTEL, intelhda
338
                dd (CTRL_INTEL_9C21       shl 16)+VID_INTEL, intelhda
339
                dd (CTRL_INTEL_9C21       shl 16)+VID_INTEL, intelhda
339
                dd (CTRL_INTEL_9CA0       shl 16)+VID_INTEL, intelhda
340
                dd (CTRL_INTEL_9CA0       shl 16)+VID_INTEL, intelhda
340
                dd (CTRL_INTEL_A170       shl 16)+VID_INTEL, intelhda
341
                dd (CTRL_INTEL_A170       shl 16)+VID_INTEL, intelhda
341
                dd (CTRL_INTEL_9D70       shl 16)+VID_INTEL, intelhda
342
                dd (CTRL_INTEL_9D70       shl 16)+VID_INTEL, intelhda
342
                dd (CTRL_INTEL_5A98       shl 16)+VID_INTEL, intelhda
343
                dd (CTRL_INTEL_5A98       shl 16)+VID_INTEL, intelhda
343
 
344
 
344
; Nvidia
345
; Nvidia
345
                dd (CTRL_NVIDIA_MCP51    shl 16)+VID_NVIDIA, intelhda
346
                dd (CTRL_NVIDIA_MCP51    shl 16)+VID_NVIDIA, intelhda
346
                dd (CTRL_NVIDIA_MCP55    shl 16)+VID_NVIDIA, intelhda
347
                dd (CTRL_NVIDIA_MCP55    shl 16)+VID_NVIDIA, intelhda
347
                dd (CTRL_NVIDIA_MCP61_1  shl 16)+VID_NVIDIA, intelhda
348
                dd (CTRL_NVIDIA_MCP61_1  shl 16)+VID_NVIDIA, intelhda
348
                dd (CTRL_NVIDIA_MCP61_2  shl 16)+VID_NVIDIA, intelhda
349
                dd (CTRL_NVIDIA_MCP61_2  shl 16)+VID_NVIDIA, intelhda
349
                dd (CTRL_NVIDIA_MCP65_1  shl 16)+VID_NVIDIA, intelhda
350
                dd (CTRL_NVIDIA_MCP65_1  shl 16)+VID_NVIDIA, intelhda
350
                dd (CTRL_NVIDIA_MCP65_2  shl 16)+VID_NVIDIA, intelhda
351
                dd (CTRL_NVIDIA_MCP65_2  shl 16)+VID_NVIDIA, intelhda
351
                dd (CTRL_NVIDIA_MCP67_1  shl 16)+VID_NVIDIA, intelhda
352
                dd (CTRL_NVIDIA_MCP67_1  shl 16)+VID_NVIDIA, intelhda
352
                dd (CTRL_NVIDIA_MCP67_2  shl 16)+VID_NVIDIA, intelhda
353
                dd (CTRL_NVIDIA_MCP67_2  shl 16)+VID_NVIDIA, intelhda
353
                dd (CTRL_NVIDIA_MCP73_1  shl 16)+VID_NVIDIA, intelhda
354
                dd (CTRL_NVIDIA_MCP73_1  shl 16)+VID_NVIDIA, intelhda
354
                dd (CTRL_NVIDIA_MCP73_2  shl 16)+VID_NVIDIA, intelhda
355
                dd (CTRL_NVIDIA_MCP73_2  shl 16)+VID_NVIDIA, intelhda
355
                dd (CTRL_NVIDIA_MCP78_1  shl 16)+VID_NVIDIA, intelhda
356
                dd (CTRL_NVIDIA_MCP78_1  shl 16)+VID_NVIDIA, intelhda
356
                dd (CTRL_NVIDIA_MCP78_2  shl 16)+VID_NVIDIA, intelhda
357
                dd (CTRL_NVIDIA_MCP78_2  shl 16)+VID_NVIDIA, intelhda
357
                dd (CTRL_NVIDIA_MCP78_3  shl 16)+VID_NVIDIA, intelhda
358
                dd (CTRL_NVIDIA_MCP78_3  shl 16)+VID_NVIDIA, intelhda
358
                dd (CTRL_NVIDIA_MCP78_4  shl 16)+VID_NVIDIA, intelhda
359
                dd (CTRL_NVIDIA_MCP78_4  shl 16)+VID_NVIDIA, intelhda
359
                dd (CTRL_NVIDIA_MCP79_1  shl 16)+VID_NVIDIA, intelhda
360
                dd (CTRL_NVIDIA_MCP79_1  shl 16)+VID_NVIDIA, intelhda
360
                dd (CTRL_NVIDIA_MCP79_2  shl 16)+VID_NVIDIA, intelhda
361
                dd (CTRL_NVIDIA_MCP79_2  shl 16)+VID_NVIDIA, intelhda
361
                dd (CTRL_NVIDIA_MCP79_3  shl 16)+VID_NVIDIA, intelhda
362
                dd (CTRL_NVIDIA_MCP79_3  shl 16)+VID_NVIDIA, intelhda
362
                dd (CTRL_NVIDIA_MCP79_4  shl 16)+VID_NVIDIA, intelhda
363
                dd (CTRL_NVIDIA_MCP79_4  shl 16)+VID_NVIDIA, intelhda
363
                dd (CTRL_NVIDIA_0BE2     shl 16)+VID_NVIDIA, intelhda
364
                dd (CTRL_NVIDIA_0BE2     shl 16)+VID_NVIDIA, intelhda
364
                dd (CTRL_NVIDIA_0BE3     shl 16)+VID_NVIDIA, intelhda
365
                dd (CTRL_NVIDIA_0BE3     shl 16)+VID_NVIDIA, intelhda
365
                dd (CTRL_NVIDIA_0BE4     shl 16)+VID_NVIDIA, intelhda
366
                dd (CTRL_NVIDIA_0BE4     shl 16)+VID_NVIDIA, intelhda
366
                dd (CTRL_NVIDIA_GT100    shl 16)+VID_NVIDIA, intelhda
367
                dd (CTRL_NVIDIA_GT100    shl 16)+VID_NVIDIA, intelhda
367
                dd (CTRL_NVIDIA_GT106    shl 16)+VID_NVIDIA, intelhda
368
                dd (CTRL_NVIDIA_GT106    shl 16)+VID_NVIDIA, intelhda
368
                dd (CTRL_NVIDIA_GT108    shl 16)+VID_NVIDIA, intelhda
369
                dd (CTRL_NVIDIA_GT108    shl 16)+VID_NVIDIA, intelhda
369
                dd (CTRL_NVIDIA_GT104    shl 16)+VID_NVIDIA, intelhda
370
                dd (CTRL_NVIDIA_GT104    shl 16)+VID_NVIDIA, intelhda
370
                dd (CTRL_NVIDIA_GT116    shl 16)+VID_NVIDIA, intelhda
371
                dd (CTRL_NVIDIA_GT116    shl 16)+VID_NVIDIA, intelhda
371
                dd (CTRL_NVIDIA_MCP89_1  shl 16)+VID_NVIDIA, intelhda
372
                dd (CTRL_NVIDIA_MCP89_1  shl 16)+VID_NVIDIA, intelhda
372
                dd (CTRL_NVIDIA_MCP89_2  shl 16)+VID_NVIDIA, intelhda
373
                dd (CTRL_NVIDIA_MCP89_2  shl 16)+VID_NVIDIA, intelhda
373
                dd (CTRL_NVIDIA_MCP89_3  shl 16)+VID_NVIDIA, intelhda
374
                dd (CTRL_NVIDIA_MCP89_3  shl 16)+VID_NVIDIA, intelhda
374
                dd (CTRL_NVIDIA_MCP89_4  shl 16)+VID_NVIDIA, intelhda
375
                dd (CTRL_NVIDIA_MCP89_4  shl 16)+VID_NVIDIA, intelhda
375
                dd (CTRL_NVIDIA_GF119    shl 16)+VID_NVIDIA, intelhda
376
                dd (CTRL_NVIDIA_GF119    shl 16)+VID_NVIDIA, intelhda
376
                dd (CTRL_NVIDIA_GF110_1  shl 16)+VID_NVIDIA, intelhda
377
                dd (CTRL_NVIDIA_GF110_1  shl 16)+VID_NVIDIA, intelhda
377
                dd (CTRL_NVIDIA_GF110_2  shl 16)+VID_NVIDIA, intelhda
378
                dd (CTRL_NVIDIA_GF110_2  shl 16)+VID_NVIDIA, intelhda
378
; ATI
379
; ATI
379
                dd (CTRL_ATI_SB450   shl 16)+VID_ATI, intelhda
380
                dd (CTRL_ATI_SB450   shl 16)+VID_ATI, intelhda
380
                dd (CTRL_ATI_SB600   shl 16)+VID_ATI, intelhda
381
                dd (CTRL_ATI_SB600   shl 16)+VID_ATI, intelhda
381
                dd (CTRL_ATI_RS600   shl 16)+VID_ATI, intelhda
382
                dd (CTRL_ATI_RS600   shl 16)+VID_ATI, intelhda
382
                dd (CTRL_ATI_RS690   shl 16)+VID_ATI, intelhda
383
                dd (CTRL_ATI_RS690   shl 16)+VID_ATI, intelhda
383
                dd (CTRL_ATI_RS780   shl 16)+VID_ATI, intelhda
384
                dd (CTRL_ATI_RS780   shl 16)+VID_ATI, intelhda
384
                dd (CTRL_ATI_RS_UNK1 shl 16)+VID_ATI, intelhda
385
                dd (CTRL_ATI_RS_UNK1 shl 16)+VID_ATI, intelhda
385
                dd (CTRL_ATI_R600    shl 16)+VID_ATI, intelhda
386
                dd (CTRL_ATI_R600    shl 16)+VID_ATI, intelhda
386
                dd (CTRL_ATI_RV610   shl 16)+VID_ATI, intelhda
387
                dd (CTRL_ATI_RV610   shl 16)+VID_ATI, intelhda
387
                dd (CTRL_ATI_RV620   shl 16)+VID_ATI, intelhda
388
                dd (CTRL_ATI_RV620   shl 16)+VID_ATI, intelhda
388
                dd (CTRL_ATI_RV630   shl 16)+VID_ATI, intelhda
389
                dd (CTRL_ATI_RV630   shl 16)+VID_ATI, intelhda
389
                dd (CTRL_ATI_RV635   shl 16)+VID_ATI, intelhda
390
                dd (CTRL_ATI_RV635   shl 16)+VID_ATI, intelhda
390
                dd (CTRL_ATI_RV670   shl 16)+VID_ATI, intelhda
391
                dd (CTRL_ATI_RV670   shl 16)+VID_ATI, intelhda
391
                dd (CTRL_ATI_RV710   shl 16)+VID_ATI, intelhda
392
                dd (CTRL_ATI_RV710   shl 16)+VID_ATI, intelhda
392
                dd (CTRL_ATI_RV730   shl 16)+VID_ATI, intelhda
393
                dd (CTRL_ATI_RV730   shl 16)+VID_ATI, intelhda
393
                dd (CTRL_ATI_RV740   shl 16)+VID_ATI, intelhda
394
                dd (CTRL_ATI_RV740   shl 16)+VID_ATI, intelhda
394
                dd (CTRL_ATI_RV770   shl 16)+VID_ATI, intelhda
395
                dd (CTRL_ATI_RV770   shl 16)+VID_ATI, intelhda
395
; AMD
396
; AMD
396
                dd (CTRL_AMD_HUDSON shl 16)+VID_AMD, intelhda
397
                dd (CTRL_AMD_HUDSON shl 16)+VID_AMD, intelhda
397
                dd (CTRL_AMD_RAVEN_RIDGE shl 16)+VID_AMD, intelhda
398
                dd (CTRL_AMD_RAVEN_RIDGE shl 16)+VID_AMD, intelhda
-
 
399
                dd (CTRL_AMD_MATISSE shl 16)+VID_AMD, intelhda
398
; VIA
400
; VIA
399
                dd (CTRL_VIA_VT82XX shl 16)+VID_VIA, intelhda
401
                dd (CTRL_VIA_VT82XX shl 16)+VID_VIA, intelhda
400
                dd (CTRL_VIA_VT61XX shl 16)+VID_VIA, intelhda
402
                dd (CTRL_VIA_VT61XX shl 16)+VID_VIA, intelhda
401
                dd (CTRL_VIA_VT71XX shl 16)+VID_VIA, intelhda
403
                dd (CTRL_VIA_VT71XX shl 16)+VID_VIA, intelhda
402
; SiS
404
; SiS
403
                dd (CTRL_SIS_966    shl 16)+VID_SIS, intelhda
405
                dd (CTRL_SIS_966    shl 16)+VID_SIS, intelhda
404
; ULI
406
; ULI
405
                dd (CTRL_ULI_M5461  shl 16)+VID_ULI, intelhda
407
                dd (CTRL_ULI_M5461  shl 16)+VID_ULI, intelhda
406
; Teradici
408
; Teradici
407
                dd (CTRL_TERA_UNK1  shl 16)+VID_ULI, intelhda
409
                dd (CTRL_TERA_UNK1  shl 16)+VID_ULI, intelhda
408
; Creative
410
; Creative
409
                dd (CTRL_CREATIVE_CA0110_IBG     shl 16)+VID_CREATIVE, intelhda
411
                dd (CTRL_CREATIVE_CA0110_IBG     shl 16)+VID_CREATIVE, intelhda
410
                dd (CTRL_CREATIVE_SOUND_CORE3D_1 shl 16)+VID_CREATIVE, intelhda
412
                dd (CTRL_CREATIVE_SOUND_CORE3D_1 shl 16)+VID_CREATIVE, intelhda
411
                dd (CTRL_CREATIVE_SOUND_CORE3D_2 shl 16)+VID_CREATIVE, intelhda
413
                dd (CTRL_CREATIVE_SOUND_CORE3D_2 shl 16)+VID_CREATIVE, intelhda
412
; RDC Semiconductor
414
; RDC Semiconductor
413
                dd (CTRL_RDC_R3010  shl 16)+VID_RDC, intelhda
415
                dd (CTRL_RDC_R3010  shl 16)+VID_RDC, intelhda
414
; VMware
416
; VMware
415
                dd (CTRL_VMWARE_UNK1  shl 16)+VID_VMWARE, intelhda
417
                dd (CTRL_VMWARE_UNK1  shl 16)+VID_VMWARE, intelhda
416
 
418
 
417
                dd 0    ; terminator
419
                dd 0    ; terminator
418
 
420
 
419
 
421
 
420
srv_entry       dd 0
422
srv_entry       dd 0
421
 
423
 
422
intelac97       db 'AC97', 0
424
intelac97       db 'AC97', 0
423
vt823x          db 'VT823X', 0
425
vt823x          db 'VT823X', 0
424
sis             db 'SIS', 0
426
sis             db 'SIS', 0
425
fm801           db 'FM801', 0
427
fm801           db 'FM801', 0
426
ensoniq         db 'ENSONIQ', 0
428
ensoniq         db 'ENSONIQ', 0
427
emu10k1x        db 'EMU10K1X', 0
429
emu10k1x        db 'EMU10K1X', 0
428
intelhda        db 'HDAUDIO', 0
430
intelhda        db 'HDAUDIO', 0
429
sb16            db 'SB16', 0
431
sb16            db 'SB16', 0
430
 
432
 
431
msgInit         db 'Detecting hardware...',13,10,0
433
msgInit         db 'Detecting hardware...',13,10,0
432
msgFail         db 'No compatible PCI soundcard found!',13,10,0
434
msgFail         db 'No compatible PCI soundcard found!',13,10,0
433
msgLoading      db 'Loading ',0
435
msgLoading      db 'Loading ',0
434
msgNewline      db 13,10,0
436
msgNewline      db 13,10,0
435
 
437
 
436
align 4
438
align 4
437
data fixups
439
data fixups
438
end data
440
end data