Subversion Repositories Kolibri OS

Rev

Rev 5077 | Rev 5170 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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