Subversion Repositories Kolibri OS

Rev

Rev 9274 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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