Subversion Repositories Kolibri OS

Rev

Rev 5234 | Rev 7737 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5234 Rev 5363
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
2
;;                                                              ;;
3
;; Copyright (C) KolibriOS team 2004-2014. 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_CPT           =  0x1c20
62
CTRL_INTEL_CPT           =  0x1c20
63
CTRL_INTEL_PGB           =  0x1d20
63
CTRL_INTEL_PGB           =  0x1d20
64
CTRL_INTEL_PPT1          =  0x1e20
64
CTRL_INTEL_PPT1          =  0x1e20
65
CTRL_INTEL_82801F        =  0x2668
65
CTRL_INTEL_82801F        =  0x2668
66
CTRL_INTEL_63XXESB       =  0x269a
66
CTRL_INTEL_63XXESB       =  0x269a
67
CTRL_INTEL_82801G        =  0x27d8
67
CTRL_INTEL_82801G        =  0x27d8
68
CTRL_INTEL_82801H        =  0x284b
68
CTRL_INTEL_82801H        =  0x284b
69
CTRL_INTEL_82801_UNK1    =  0x2911
69
CTRL_INTEL_82801_UNK1    =  0x2911
70
CTRL_INTEL_82801I        =  0x293e
70
CTRL_INTEL_82801I        =  0x293e
71
CTRL_INTEL_82801_UNK2    =  0x293f
71
CTRL_INTEL_82801_UNK2    =  0x293f
72
CTRL_INTEL_82801JI       =  0x3a3e
72
CTRL_INTEL_82801JI       =  0x3a3e
73
CTRL_INTEL_82801JD       =  0x3a6e
73
CTRL_INTEL_82801JD       =  0x3a6e
74
CTRL_INTEL_PCH           =  0x3b56
74
CTRL_INTEL_PCH           =  0x3b56
75
CTRL_INTEL_PCH2          =  0x3b57
75
CTRL_INTEL_PCH2          =  0x3b57
76
CTRL_INTEL_SCH           =  0x811b
76
CTRL_INTEL_SCH           =  0x811b
77
CTRL_INTEL_LPT           =  0x8c20
77
CTRL_INTEL_LPT           =  0x8c20
78
 
78
 
79
CTRL_NVIDIA_MCP51        =  0x026c
79
CTRL_NVIDIA_MCP51        =  0x026c
80
CTRL_NVIDIA_MCP55        =  0x0371
80
CTRL_NVIDIA_MCP55        =  0x0371
81
CTRL_NVIDIA_MCP61_1      =  0x03e4
81
CTRL_NVIDIA_MCP61_1      =  0x03e4
82
CTRL_NVIDIA_MCP61_2      =  0x03f0
82
CTRL_NVIDIA_MCP61_2      =  0x03f0
83
CTRL_NVIDIA_MCP65_1      =  0x044a
83
CTRL_NVIDIA_MCP65_1      =  0x044a
84
CTRL_NVIDIA_MCP65_2      =  0x044b
84
CTRL_NVIDIA_MCP65_2      =  0x044b
85
CTRL_NVIDIA_MCP67_1      =  0x055c
85
CTRL_NVIDIA_MCP67_1      =  0x055c
86
CTRL_NVIDIA_MCP67_2      =  0x055d
86
CTRL_NVIDIA_MCP67_2      =  0x055d
87
CTRL_NVIDIA_MCP78_1      =  0x0774
87
CTRL_NVIDIA_MCP78_1      =  0x0774
88
CTRL_NVIDIA_MCP78_2      =  0x0775
88
CTRL_NVIDIA_MCP78_2      =  0x0775
89
CTRL_NVIDIA_MCP78_3      =  0x0776
89
CTRL_NVIDIA_MCP78_3      =  0x0776
90
CTRL_NVIDIA_MCP78_4      =  0x0777
90
CTRL_NVIDIA_MCP78_4      =  0x0777
91
CTRL_NVIDIA_MCP73_1      =  0x07fc
91
CTRL_NVIDIA_MCP73_1      =  0x07fc
92
CTRL_NVIDIA_MCP73_2      =  0x07fd
92
CTRL_NVIDIA_MCP73_2      =  0x07fd
93
CTRL_NVIDIA_MCP79_1      =  0x0ac0
93
CTRL_NVIDIA_MCP79_1      =  0x0ac0
94
CTRL_NVIDIA_MCP79_2      =  0x0ac1
94
CTRL_NVIDIA_MCP79_2      =  0x0ac1
95
CTRL_NVIDIA_MCP79_3      =  0x0ac2
95
CTRL_NVIDIA_MCP79_3      =  0x0ac2
96
CTRL_NVIDIA_MCP79_4      =  0x0ac3
96
CTRL_NVIDIA_MCP79_4      =  0x0ac3
97
CTRL_NVIDIA_0BE2         =  0x0be2
97
CTRL_NVIDIA_0BE2         =  0x0be2
98
CTRL_NVIDIA_0BE3         =  0x0be3
98
CTRL_NVIDIA_0BE3         =  0x0be3
99
CTRL_NVIDIA_0BE4         =  0x0be4
99
CTRL_NVIDIA_0BE4         =  0x0be4
100
CTRL_NVIDIA_GT100        =  0x0be5
100
CTRL_NVIDIA_GT100        =  0x0be5
101
CTRL_NVIDIA_GT106        =  0x0be9
101
CTRL_NVIDIA_GT106        =  0x0be9
102
CTRL_NVIDIA_GT108        =  0x0bea
102
CTRL_NVIDIA_GT108        =  0x0bea
103
CTRL_NVIDIA_GT104        =  0x0beb
103
CTRL_NVIDIA_GT104        =  0x0beb
104
CTRL_NVIDIA_GT116        =  0x0bee
104
CTRL_NVIDIA_GT116        =  0x0bee
105
CTRL_NVIDIA_MCP89_1      =  0x0d94
105
CTRL_NVIDIA_MCP89_1      =  0x0d94
106
CTRL_NVIDIA_MCP89_2      =  0x0d95
106
CTRL_NVIDIA_MCP89_2      =  0x0d95
107
CTRL_NVIDIA_MCP89_3      =  0x0d96
107
CTRL_NVIDIA_MCP89_3      =  0x0d96
108
CTRL_NVIDIA_MCP89_4      =  0x0d97
108
CTRL_NVIDIA_MCP89_4      =  0x0d97
109
CTRL_NVIDIA_GF119        =  0x0e08
109
CTRL_NVIDIA_GF119        =  0x0e08
110
CTRL_NVIDIA_GF110_1      =  0x0e09
110
CTRL_NVIDIA_GF110_1      =  0x0e09
111
CTRL_NVIDIA_GF110_2      =  0x0e0c
111
CTRL_NVIDIA_GF110_2      =  0x0e0c
112
 
112
 
113
CTRL_ATI_SB450           =  0x437b
113
CTRL_ATI_SB450           =  0x437b
114
CTRL_ATI_SB600           =  0x4383
114
CTRL_ATI_SB600           =  0x4383
115
 
115
 
116
CTRL_ATI_RS600           =  0x793b
116
CTRL_ATI_RS600           =  0x793b
117
CTRL_ATI_RS690           =  0x7919
117
CTRL_ATI_RS690           =  0x7919
118
CTRL_ATI_RS780           =  0x960f
118
CTRL_ATI_RS780           =  0x960f
119
CTRL_ATI_RS_UNK1         =  0x970f
119
CTRL_ATI_RS_UNK1         =  0x970f
120
CTRL_ATI_R600            =  0xaa00
120
CTRL_ATI_R600            =  0xaa00
121
CTRL_ATI_RV630           =  0xaa08
121
CTRL_ATI_RV630           =  0xaa08
122
CTRL_ATI_RV610           =  0xaa10
122
CTRL_ATI_RV610           =  0xaa10
123
CTRL_ATI_RV670           =  0xaa18
123
CTRL_ATI_RV670           =  0xaa18
124
CTRL_ATI_RV635           =  0xaa20
124
CTRL_ATI_RV635           =  0xaa20
125
CTRL_ATI_RV620           =  0xaa28
125
CTRL_ATI_RV620           =  0xaa28
126
CTRL_ATI_RV770           =  0xaa30
126
CTRL_ATI_RV770           =  0xaa30
127
CTRL_ATI_RV730           =  0xaa38
127
CTRL_ATI_RV730           =  0xaa38
128
CTRL_ATI_RV710           =  0xaa40
128
CTRL_ATI_RV710           =  0xaa40
129
CTRL_ATI_RV740           =  0xaa48
129
CTRL_ATI_RV740           =  0xaa48
130
 
130
 
131
CTRL_AMD_HUDSON          =  0x780d
131
CTRL_AMD_HUDSON          =  0x780d
132
 
132
 
133
CTRL_VIA_VT82XX          =  0x3288
133
CTRL_VIA_VT82XX          =  0x3288
134
CTRL_VIA_VT61XX          =  0x9140
134
CTRL_VIA_VT61XX          =  0x9140
135
CTRL_VIA_VT71XX          =  0x9170
135
CTRL_VIA_VT71XX          =  0x9170
136
 
136
 
137
CTRL_SIS_966             =  0x7502
137
CTRL_SIS_966             =  0x7502
138
 
138
 
139
CTRL_ULI_M5461           =  0x5461
139
CTRL_ULI_M5461           =  0x5461
140
 
140
 
141
CTRL_CREATIVE_CA0110_IBG     =  0x0009
141
CTRL_CREATIVE_CA0110_IBG     =  0x0009
142
CTRL_CREATIVE_SOUND_CORE3D_1 =  0x0010
142
CTRL_CREATIVE_SOUND_CORE3D_1 =  0x0010
143
CTRL_CREATIVE_SOUND_CORE3D_2 =  0x0012
143
CTRL_CREATIVE_SOUND_CORE3D_2 =  0x0012
144
 
144
 
145
CTRL_TERA_UNK1           =  0x1200
145
CTRL_TERA_UNK1           =  0x1200
146
 
146
 
147
CTRL_RDC_R3010           =  0x3010
147
CTRL_RDC_R3010           =  0x3010
148
 
148
 
149
CTRL_VMWARE_UNK1         =  0x1977
149
CTRL_VMWARE_UNK1         =  0x1977
150
 
150
 
151
struct  SRV
151
struct  SRV
152
        srv_name        rb 16    ;ASCIIZ string
152
        srv_name        rb 16    ;ASCIIZ string
153
        magic           dd ?     ;+0x10 ;'SRV '
153
        magic           dd ?     ;+0x10 ;'SRV '
154
        size            dd ?     ;+0x14 ;size of structure SRV
154
        size            dd ?     ;+0x14 ;size of structure SRV
155
        fd              dd ?     ;+0x18 ;next SRV descriptor
155
        fd              dd ?     ;+0x18 ;next SRV descriptor
156
        bk              dd ?     ;+0x1C ;prev SRV descriptor
156
        bk              dd ?     ;+0x1C ;prev SRV descriptor
157
        base            dd ?     ;+0x20 ;service base address
157
        base            dd ?     ;+0x20 ;service base address
158
        entry           dd ?     ;+0x24 ;service START function
158
        entry           dd ?     ;+0x24 ;service START function
159
        srv_proc        dd ?     ;+0x28 ;user mode service handler
159
        srv_proc        dd ?     ;+0x28 ;user mode service handler
160
        srv_proc_ex     dd ?     ;+0x2C ;kernel mode service handler
160
        srv_proc_ex     dd ?     ;+0x2C ;kernel mode service handler
161
ends
161
ends
162
 
162
 
163
 
163
 
164
proc START c uses ebx esi edi, state:dword, cmdline:dword
164
proc START c uses ebx esi edi, state:dword, cmdline:dword
165
 
165
 
166
        mov     eax, [srv_entry]
166
        mov     eax, [srv_entry]
167
        cmp     [state], 1
167
        cmp     [state], 1
168
        jne     .stop
168
        jne     .stop
169
 
169
 
170
     if DEBUG
170
     if DEBUG
171
        mov     esi, msgInit
171
        mov     esi, msgInit
172
        invoke  SysMsgBoardStr
172
        invoke  SysMsgBoardStr
173
     end if
173
     end if
174
 
174
 
175
        test    eax, eax
175
        test    eax, eax
176
        jnz     .done
176
        jnz     .done
177
        call    detect_controller
177
        call    detect_controller
178
        ret
178
        ret
179
.stop:
179
.stop:
180
        test    eax, eax
180
        test    eax, eax
181
        jz      .done
181
        jz      .done
182
        leave
182
        leave
183
        jmp     eax
183
        jmp     eax
184
.done:
184
.done:
185
        xor     eax, eax
185
        xor     eax, eax
186
        ret
186
        ret
187
endp
187
endp
188
 
188
 
189
proc service_proc stdcall, ioctl:dword
189
proc service_proc stdcall, ioctl:dword
190
 
190
 
191
        or      eax, -1
191
        or      eax, -1
192
        ret
192
        ret
193
endp
193
endp
194
 
194
 
195
proc detect_controller
195
proc detect_controller
196
 
196
 
197
        invoke  GetPCIList
197
        invoke  GetPCIList
198
        mov     edx, eax
198
        mov     edx, eax
199
 
199
 
200
  .loop:
200
  .loop:
201
        mov     ecx, [eax + PCIDEV.vendor_device_id]
201
        mov     ecx, [eax + PCIDEV.vendor_device_id]
202
        mov     edi, devices
202
        mov     edi, devices
203
  @@:
203
  @@:
204
        mov     ebx, [edi]
204
        mov     ebx, [edi]
205
        test    ebx, ebx
205
        test    ebx, ebx
206
        jz      .next
206
        jz      .next
207
 
207
 
208
        cmp     ecx, ebx
208
        cmp     ecx, ebx
209
        je      .found
209
        je      .found
210
        add     edi, 8
210
        add     edi, 8
211
        jmp     @b
211
        jmp     @b
212
 
212
 
213
  .next:
213
  .next:
214
        mov     eax, [eax + PCIDEV.fd]
214
        mov     eax, [eax + PCIDEV.fd]
215
        cmp     eax, edx
215
        cmp     eax, edx
216
        jne     .loop
216
        jne     .loop
217
 
217
 
218
     if DEBUG
218
     if DEBUG
219
        mov     esi, msgFail
219
        mov     esi, msgFail
220
        invoke  SysMsgBoardStr
220
        invoke  SysMsgBoardStr
221
 
221
 
222
        mov     esi, msgLoading
222
        mov     esi, msgLoading
223
        invoke  SysMsgBoardStr
223
        invoke  SysMsgBoardStr
224
 
224
 
225
        mov     esi, sb16
225
        mov     esi, sb16
226
        invoke  SysMsgBoardStr
226
        invoke  SysMsgBoardStr
227
 
227
 
228
        mov     esi, msgNewline
228
        mov     esi, msgNewline
229
        invoke  SysMsgBoardStr
229
        invoke  SysMsgBoardStr
230
     end if
230
     end if
231
 
231
 
232
        invoke  GetService, sb16
232
        invoke  GetService, sb16
233
        test    eax, eax
233
        test    eax, eax
234
        jz      .fail
234
        jz      .fail
235
 
235
 
236
        mov     edx, [eax+SRV.entry]
236
        mov     edx, [eax+SRV.entry]
237
        mov     [srv_entry], edx
237
        mov     [srv_entry], edx
238
        ret
238
        ret
239
 
239
 
240
  .found:
240
  .found:
241
     if DEBUG
241
     if DEBUG
242
        mov     esi, msgLoading
242
        mov     esi, msgLoading
243
        invoke  SysMsgBoardStr
243
        invoke  SysMsgBoardStr
244
 
244
 
245
        mov     esi, dword[edi+4]
245
        mov     esi, dword[edi+4]
246
        invoke  SysMsgBoardStr
246
        invoke  SysMsgBoardStr
247
 
247
 
248
        mov     esi, msgNewline
248
        mov     esi, msgNewline
249
        invoke  SysMsgBoardStr
249
        invoke  SysMsgBoardStr
250
     end if
250
     end if
251
 
251
 
252
        invoke  GetService, dword[edi+4]
252
        invoke  GetService, dword[edi+4]
253
        test    eax, eax
253
        test    eax, eax
254
        jz      .fail
254
        jz      .fail
255
 
255
 
256
        mov     edx, [eax+SRV.entry]
256
        mov     edx, [eax+SRV.entry]
257
        mov     [srv_entry], edx
257
        mov     [srv_entry], edx
258
        ret
258
        ret
259
 
259
 
260
  .fail:
260
  .fail:
261
        xor     eax, eax
261
        xor     eax, eax
262
        ret
262
        ret
263
 
263
 
264
endp
264
endp
265
 
265
 
266
align 4
266
align 4
267
devices         dd (CTRL_ICH  shl 16)+VID_INTEL, intelac97
267
devices         dd (CTRL_ICH  shl 16)+VID_INTEL, intelac97
268
                dd (CTRL_ICH0 shl 16)+VID_INTEL, intelac97
268
                dd (CTRL_ICH0 shl 16)+VID_INTEL, intelac97
269
                dd (CTRL_ICH2 shl 16)+VID_INTEL, intelac97
269
                dd (CTRL_ICH2 shl 16)+VID_INTEL, intelac97
270
                dd (CTRL_ICH3 shl 16)+VID_INTEL, intelac97
270
                dd (CTRL_ICH3 shl 16)+VID_INTEL, intelac97
271
                dd (CTRL_ICH4 shl 16)+VID_INTEL, intelac97
271
                dd (CTRL_ICH4 shl 16)+VID_INTEL, intelac97
272
                dd (CTRL_ICH5 shl 16)+VID_INTEL, intelac97
272
                dd (CTRL_ICH5 shl 16)+VID_INTEL, intelac97
273
                dd (CTRL_ICH6 shl 16)+VID_INTEL, intelac97
273
                dd (CTRL_ICH6 shl 16)+VID_INTEL, intelac97
274
                dd (CTRL_ICH7 shl 16)+VID_INTEL, intelac97
274
                dd (CTRL_ICH7 shl 16)+VID_INTEL, intelac97
275
 
275
 
276
                dd (CTRL_NFORCE  shl 16)+VID_NVIDIA, intelac97
276
                dd (CTRL_NFORCE  shl 16)+VID_NVIDIA, intelac97
277
                dd (CTRL_NFORCE2 shl 16)+VID_NVIDIA, intelac97
277
                dd (CTRL_NFORCE2 shl 16)+VID_NVIDIA, intelac97
278
                dd (CTRL_NFORCE3 shl 16)+VID_NVIDIA, intelac97
278
                dd (CTRL_NFORCE3 shl 16)+VID_NVIDIA, intelac97
279
                dd (CTRL_MCP04   shl 16)+VID_NVIDIA, intelac97
279
                dd (CTRL_MCP04   shl 16)+VID_NVIDIA, intelac97
280
                dd (CTRL_CK804   shl 16)+VID_NVIDIA, intelac97
280
                dd (CTRL_CK804   shl 16)+VID_NVIDIA, intelac97
281
                dd (CTRL_CK8     shl 16)+VID_NVIDIA, intelac97
281
                dd (CTRL_CK8     shl 16)+VID_NVIDIA, intelac97
282
                dd (CTRL_CK8S    shl 16)+VID_NVIDIA, intelac97
282
                dd (CTRL_CK8S    shl 16)+VID_NVIDIA, intelac97
283
                dd (CTRL_MCP51   shl 16)+VID_NVIDIA, intelac97
283
                dd (CTRL_MCP51   shl 16)+VID_NVIDIA, intelac97
284
 
284
 
285
                dd (CTRL_VT82C686  shl 16)+VID_VIA, vt823x
285
                dd (CTRL_VT82C686  shl 16)+VID_VIA, vt823x
286
                dd (CTRL_VT8233_5  shl 16)+VID_VIA, vt823x
286
                dd (CTRL_VT8233_5  shl 16)+VID_VIA, vt823x
287
 
287
 
288
                dd (CTRL_SIS  shl 16)+VID_SIS, sis
288
                dd (CTRL_SIS  shl 16)+VID_SIS, sis
289
 
289
 
290
                dd (CTRL_FM801 shl 16)+VID_FM801, fm801
290
                dd (CTRL_FM801 shl 16)+VID_FM801, fm801
291
 
291
 
292
                dd (0x5000 shl 16)+0x1274, ensoniq
292
                dd (0x5000 shl 16)+0x1274, ensoniq
293
                dd (0x5880 shl 16)+0x1274, ensoniq
293
                dd (0x5880 shl 16)+0x1274, ensoniq
294
 
294
 
295
                dd (CTRL_CT0200 shl 16)+VID_CREATIVE, emu10k1x
295
                dd (CTRL_CT0200 shl 16)+VID_CREATIVE, emu10k1x
296
; Intel
296
; Intel
297
                dd (CTRL_INTEL_SCH2    shl 16)+VID_INTEL, intelhda
297
                dd (CTRL_INTEL_SCH2    shl 16)+VID_INTEL, intelhda
298
                dd (CTRL_INTEL_HPT     shl 16)+VID_INTEL, intelhda
298
                dd (CTRL_INTEL_HPT     shl 16)+VID_INTEL, intelhda
299
                dd (CTRL_INTEL_CPT     shl 16)+VID_INTEL, intelhda
299
                dd (CTRL_INTEL_CPT     shl 16)+VID_INTEL, intelhda
300
                dd (CTRL_INTEL_PGB     shl 16)+VID_INTEL, intelhda
300
                dd (CTRL_INTEL_PGB     shl 16)+VID_INTEL, intelhda
301
                dd (CTRL_INTEL_PPT1    shl 16)+VID_INTEL, intelhda
301
                dd (CTRL_INTEL_PPT1    shl 16)+VID_INTEL, intelhda
302
                dd (CTRL_INTEL_82801F  shl 16)+VID_INTEL, intelhda
302
                dd (CTRL_INTEL_82801F  shl 16)+VID_INTEL, intelhda
303
                dd (CTRL_INTEL_63XXESB shl 16)+VID_INTEL, intelhda
303
                dd (CTRL_INTEL_63XXESB shl 16)+VID_INTEL, intelhda
304
                dd (CTRL_INTEL_82801G  shl 16)+VID_INTEL, intelhda
304
                dd (CTRL_INTEL_82801G  shl 16)+VID_INTEL, intelhda
305
                dd (CTRL_INTEL_82801H  shl 16)+VID_INTEL, intelhda
305
                dd (CTRL_INTEL_82801H  shl 16)+VID_INTEL, intelhda
306
                dd (CTRL_INTEL_82801_UNK1  shl 16)+VID_INTEL, intelhda
306
                dd (CTRL_INTEL_82801_UNK1  shl 16)+VID_INTEL, intelhda
307
                dd (CTRL_INTEL_82801I  shl 16)+VID_INTEL, intelhda
307
                dd (CTRL_INTEL_82801I  shl 16)+VID_INTEL, intelhda
308
                dd (CTRL_INTEL_82801_UNK2  shl 16)+VID_INTEL, intelhda
308
                dd (CTRL_INTEL_82801_UNK2  shl 16)+VID_INTEL, intelhda
309
                dd (CTRL_INTEL_82801JI shl 16)+VID_INTEL, intelhda
309
                dd (CTRL_INTEL_82801JI shl 16)+VID_INTEL, intelhda
310
                dd (CTRL_INTEL_82801JD shl 16)+VID_INTEL, intelhda
310
                dd (CTRL_INTEL_82801JD shl 16)+VID_INTEL, intelhda
311
                dd (CTRL_INTEL_PCH     shl 16)+VID_INTEL, intelhda
311
                dd (CTRL_INTEL_PCH     shl 16)+VID_INTEL, intelhda
312
                dd (CTRL_INTEL_PCH2    shl 16)+VID_INTEL, intelhda
312
                dd (CTRL_INTEL_PCH2    shl 16)+VID_INTEL, intelhda
313
                dd (CTRL_INTEL_SCH     shl 16)+VID_INTEL, intelhda
313
                dd (CTRL_INTEL_SCH     shl 16)+VID_INTEL, intelhda
314
                dd (CTRL_INTEL_LPT     shl 16)+VID_INTEL, intelhda
314
                dd (CTRL_INTEL_LPT     shl 16)+VID_INTEL, intelhda
315
; Nvidia
315
; Nvidia
316
                dd (CTRL_NVIDIA_MCP51    shl 16)+VID_NVIDIA, intelhda
316
                dd (CTRL_NVIDIA_MCP51    shl 16)+VID_NVIDIA, intelhda
317
                dd (CTRL_NVIDIA_MCP55    shl 16)+VID_NVIDIA, intelhda
317
                dd (CTRL_NVIDIA_MCP55    shl 16)+VID_NVIDIA, intelhda
318
                dd (CTRL_NVIDIA_MCP61_1  shl 16)+VID_NVIDIA, intelhda
318
                dd (CTRL_NVIDIA_MCP61_1  shl 16)+VID_NVIDIA, intelhda
319
                dd (CTRL_NVIDIA_MCP61_2  shl 16)+VID_NVIDIA, intelhda
319
                dd (CTRL_NVIDIA_MCP61_2  shl 16)+VID_NVIDIA, intelhda
320
                dd (CTRL_NVIDIA_MCP65_1  shl 16)+VID_NVIDIA, intelhda
320
                dd (CTRL_NVIDIA_MCP65_1  shl 16)+VID_NVIDIA, intelhda
321
                dd (CTRL_NVIDIA_MCP65_2  shl 16)+VID_NVIDIA, intelhda
321
                dd (CTRL_NVIDIA_MCP65_2  shl 16)+VID_NVIDIA, intelhda
322
                dd (CTRL_NVIDIA_MCP67_1  shl 16)+VID_NVIDIA, intelhda
322
                dd (CTRL_NVIDIA_MCP67_1  shl 16)+VID_NVIDIA, intelhda
323
                dd (CTRL_NVIDIA_MCP67_2  shl 16)+VID_NVIDIA, intelhda
323
                dd (CTRL_NVIDIA_MCP67_2  shl 16)+VID_NVIDIA, intelhda
324
                dd (CTRL_NVIDIA_MCP73_1  shl 16)+VID_NVIDIA, intelhda
324
                dd (CTRL_NVIDIA_MCP73_1  shl 16)+VID_NVIDIA, intelhda
325
                dd (CTRL_NVIDIA_MCP73_2  shl 16)+VID_NVIDIA, intelhda
325
                dd (CTRL_NVIDIA_MCP73_2  shl 16)+VID_NVIDIA, intelhda
326
                dd (CTRL_NVIDIA_MCP78_1  shl 16)+VID_NVIDIA, intelhda
326
                dd (CTRL_NVIDIA_MCP78_1  shl 16)+VID_NVIDIA, intelhda
327
                dd (CTRL_NVIDIA_MCP78_2  shl 16)+VID_NVIDIA, intelhda
327
                dd (CTRL_NVIDIA_MCP78_2  shl 16)+VID_NVIDIA, intelhda
328
                dd (CTRL_NVIDIA_MCP78_3  shl 16)+VID_NVIDIA, intelhda
328
                dd (CTRL_NVIDIA_MCP78_3  shl 16)+VID_NVIDIA, intelhda
329
                dd (CTRL_NVIDIA_MCP78_4  shl 16)+VID_NVIDIA, intelhda
329
                dd (CTRL_NVIDIA_MCP78_4  shl 16)+VID_NVIDIA, intelhda
330
                dd (CTRL_NVIDIA_MCP79_1  shl 16)+VID_NVIDIA, intelhda
330
                dd (CTRL_NVIDIA_MCP79_1  shl 16)+VID_NVIDIA, intelhda
331
                dd (CTRL_NVIDIA_MCP79_2  shl 16)+VID_NVIDIA, intelhda
331
                dd (CTRL_NVIDIA_MCP79_2  shl 16)+VID_NVIDIA, intelhda
332
                dd (CTRL_NVIDIA_MCP79_3  shl 16)+VID_NVIDIA, intelhda
332
                dd (CTRL_NVIDIA_MCP79_3  shl 16)+VID_NVIDIA, intelhda
333
                dd (CTRL_NVIDIA_MCP79_4  shl 16)+VID_NVIDIA, intelhda
333
                dd (CTRL_NVIDIA_MCP79_4  shl 16)+VID_NVIDIA, intelhda
334
                dd (CTRL_NVIDIA_0BE2     shl 16)+VID_NVIDIA, intelhda
334
                dd (CTRL_NVIDIA_0BE2     shl 16)+VID_NVIDIA, intelhda
335
                dd (CTRL_NVIDIA_0BE3     shl 16)+VID_NVIDIA, intelhda
335
                dd (CTRL_NVIDIA_0BE3     shl 16)+VID_NVIDIA, intelhda
336
                dd (CTRL_NVIDIA_0BE4     shl 16)+VID_NVIDIA, intelhda
336
                dd (CTRL_NVIDIA_0BE4     shl 16)+VID_NVIDIA, intelhda
337
                dd (CTRL_NVIDIA_GT100    shl 16)+VID_NVIDIA, intelhda
337
                dd (CTRL_NVIDIA_GT100    shl 16)+VID_NVIDIA, intelhda
338
                dd (CTRL_NVIDIA_GT106    shl 16)+VID_NVIDIA, intelhda
338
                dd (CTRL_NVIDIA_GT106    shl 16)+VID_NVIDIA, intelhda
339
                dd (CTRL_NVIDIA_GT108    shl 16)+VID_NVIDIA, intelhda
339
                dd (CTRL_NVIDIA_GT108    shl 16)+VID_NVIDIA, intelhda
340
                dd (CTRL_NVIDIA_GT104    shl 16)+VID_NVIDIA, intelhda
340
                dd (CTRL_NVIDIA_GT104    shl 16)+VID_NVIDIA, intelhda
341
                dd (CTRL_NVIDIA_GT116    shl 16)+VID_NVIDIA, intelhda
341
                dd (CTRL_NVIDIA_GT116    shl 16)+VID_NVIDIA, intelhda
342
                dd (CTRL_NVIDIA_MCP89_1  shl 16)+VID_NVIDIA, intelhda
342
                dd (CTRL_NVIDIA_MCP89_1  shl 16)+VID_NVIDIA, intelhda
343
                dd (CTRL_NVIDIA_MCP89_2  shl 16)+VID_NVIDIA, intelhda
343
                dd (CTRL_NVIDIA_MCP89_2  shl 16)+VID_NVIDIA, intelhda
344
                dd (CTRL_NVIDIA_MCP89_3  shl 16)+VID_NVIDIA, intelhda
344
                dd (CTRL_NVIDIA_MCP89_3  shl 16)+VID_NVIDIA, intelhda
345
                dd (CTRL_NVIDIA_MCP89_4  shl 16)+VID_NVIDIA, intelhda
345
                dd (CTRL_NVIDIA_MCP89_4  shl 16)+VID_NVIDIA, intelhda
346
                dd (CTRL_NVIDIA_GF119    shl 16)+VID_NVIDIA, intelhda
346
                dd (CTRL_NVIDIA_GF119    shl 16)+VID_NVIDIA, intelhda
347
                dd (CTRL_NVIDIA_GF110_1  shl 16)+VID_NVIDIA, intelhda
347
                dd (CTRL_NVIDIA_GF110_1  shl 16)+VID_NVIDIA, intelhda
348
                dd (CTRL_NVIDIA_GF110_2  shl 16)+VID_NVIDIA, intelhda
348
                dd (CTRL_NVIDIA_GF110_2  shl 16)+VID_NVIDIA, intelhda
349
; ATI
349
; ATI
350
                dd (CTRL_ATI_SB450   shl 16)+VID_ATI, intelhda
350
                dd (CTRL_ATI_SB450   shl 16)+VID_ATI, intelhda
351
                dd (CTRL_ATI_SB600   shl 16)+VID_ATI, intelhda
351
                dd (CTRL_ATI_SB600   shl 16)+VID_ATI, intelhda
352
                dd (CTRL_ATI_RS600   shl 16)+VID_ATI, intelhda
352
                dd (CTRL_ATI_RS600   shl 16)+VID_ATI, intelhda
353
                dd (CTRL_ATI_RS690   shl 16)+VID_ATI, intelhda
353
                dd (CTRL_ATI_RS690   shl 16)+VID_ATI, intelhda
354
                dd (CTRL_ATI_RS780   shl 16)+VID_ATI, intelhda
354
                dd (CTRL_ATI_RS780   shl 16)+VID_ATI, intelhda
355
                dd (CTRL_ATI_RS_UNK1 shl 16)+VID_ATI, intelhda
355
                dd (CTRL_ATI_RS_UNK1 shl 16)+VID_ATI, intelhda
356
                dd (CTRL_ATI_R600    shl 16)+VID_ATI, intelhda
356
                dd (CTRL_ATI_R600    shl 16)+VID_ATI, intelhda
357
                dd (CTRL_ATI_RV610   shl 16)+VID_ATI, intelhda
357
                dd (CTRL_ATI_RV610   shl 16)+VID_ATI, intelhda
358
                dd (CTRL_ATI_RV620   shl 16)+VID_ATI, intelhda
358
                dd (CTRL_ATI_RV620   shl 16)+VID_ATI, intelhda
359
                dd (CTRL_ATI_RV630   shl 16)+VID_ATI, intelhda
359
                dd (CTRL_ATI_RV630   shl 16)+VID_ATI, intelhda
360
                dd (CTRL_ATI_RV635   shl 16)+VID_ATI, intelhda
360
                dd (CTRL_ATI_RV635   shl 16)+VID_ATI, intelhda
361
                dd (CTRL_ATI_RV670   shl 16)+VID_ATI, intelhda
361
                dd (CTRL_ATI_RV670   shl 16)+VID_ATI, intelhda
362
                dd (CTRL_ATI_RV710   shl 16)+VID_ATI, intelhda
362
                dd (CTRL_ATI_RV710   shl 16)+VID_ATI, intelhda
363
                dd (CTRL_ATI_RV730   shl 16)+VID_ATI, intelhda
363
                dd (CTRL_ATI_RV730   shl 16)+VID_ATI, intelhda
364
                dd (CTRL_ATI_RV740   shl 16)+VID_ATI, intelhda
364
                dd (CTRL_ATI_RV740   shl 16)+VID_ATI, intelhda
365
                dd (CTRL_ATI_RV770   shl 16)+VID_ATI, intelhda
365
                dd (CTRL_ATI_RV770   shl 16)+VID_ATI, intelhda
366
; AMD
366
; AMD
367
                dd (CTRL_AMD_HUDSON shl 16)+VID_AMD, intelhda
367
                dd (CTRL_AMD_HUDSON shl 16)+VID_AMD, intelhda
368
; VIA
368
; VIA
369
                dd (CTRL_VIA_VT82XX shl 16)+VID_VIA, intelhda
369
                dd (CTRL_VIA_VT82XX shl 16)+VID_VIA, intelhda
370
                dd (CTRL_VIA_VT61XX shl 16)+VID_VIA, intelhda
370
                dd (CTRL_VIA_VT61XX shl 16)+VID_VIA, intelhda
371
                dd (CTRL_VIA_VT71XX shl 16)+VID_VIA, intelhda
371
                dd (CTRL_VIA_VT71XX shl 16)+VID_VIA, intelhda
372
; SiS
372
; SiS
373
                dd (CTRL_SIS_966    shl 16)+VID_SIS, intelhda
373
                dd (CTRL_SIS_966    shl 16)+VID_SIS, intelhda
374
; ULI
374
; ULI
375
                dd (CTRL_ULI_M5461  shl 16)+VID_ULI, intelhda
375
                dd (CTRL_ULI_M5461  shl 16)+VID_ULI, intelhda
376
; Teradici
376
; Teradici
377
                dd (CTRL_TERA_UNK1  shl 16)+VID_ULI, intelhda
377
                dd (CTRL_TERA_UNK1  shl 16)+VID_ULI, intelhda
378
; Creative
378
; Creative
379
                dd (CTRL_CREATIVE_CA0110_IBG     shl 16)+VID_CREATIVE, intelhda
379
                dd (CTRL_CREATIVE_CA0110_IBG     shl 16)+VID_CREATIVE, intelhda
380
                dd (CTRL_CREATIVE_SOUND_CORE3D_1 shl 16)+VID_CREATIVE, intelhda
380
                dd (CTRL_CREATIVE_SOUND_CORE3D_1 shl 16)+VID_CREATIVE, intelhda
381
                dd (CTRL_CREATIVE_SOUND_CORE3D_2 shl 16)+VID_CREATIVE, intelhda
381
                dd (CTRL_CREATIVE_SOUND_CORE3D_2 shl 16)+VID_CREATIVE, intelhda
382
; RDC Semiconductor
382
; RDC Semiconductor
383
                dd (CTRL_RDC_R3010  shl 16)+VID_RDC, intelhda
383
                dd (CTRL_RDC_R3010  shl 16)+VID_RDC, intelhda
384
; VMware
384
; VMware
385
                dd (CTRL_VMWARE_UNK1  shl 16)+VID_VMWARE, intelhda
385
                dd (CTRL_VMWARE_UNK1  shl 16)+VID_VMWARE, intelhda
386
 
386
 
387
                dd 0    ; terminator
387
                dd 0    ; terminator
388
 
388
 
389
 
389
 
390
srv_entry       dd 0
390
srv_entry       dd 0
391
 
391
 
392
intelac97       db 'INTELAC97', 0
392
intelac97       db 'INTELAC97', 0
393
vt823x          db 'VT823X', 0
393
vt823x          db 'VT823X', 0
394
sis             db 'SIS', 0
394
sis             db 'SIS', 0
395
fm801           db 'FM801', 0
395
fm801           db 'FM801', 0
396
ensoniq         db 'ENSONIQ', 0
396
ensoniq         db 'ENSONIQ', 0
397
emu10k1x        db 'EMU10K1X', 0
397
emu10k1x        db 'EMU10K1X', 0
398
intelhda        db 'INTEL_HDA', 0
398
intelhda        db 'INTEL_HDA', 0
399
sb16            db 'SB16', 0
399
sb16            db 'SB16', 0
400
 
400
 
401
msgInit         db 'Detecting hardware...',13,10,0
401
msgInit         db 'Detecting hardware...',13,10,0
402
msgFail         db 'No compatible PCI soundcard found!',13,10,0
402
msgFail         db 'No compatible PCI soundcard found!',13,10,0
403
msgLoading      db 'Loading ',0
403
msgLoading      db 'Loading ',0
404
msgNewline      db 13,10,0
404
msgNewline      db 13,10,0
405
 
405
 
406
align 4
406
align 4
407
data fixups
407
data fixups
408
end data
408
end data