From b94939c0dcc3913fb20e8dcaca0c1abf1257e2ba Mon Sep 17 00:00:00 2001 From: "Sergey Semyonov (Serge)" Date: Thu, 9 Oct 2008 10:41:41 +0000 Subject: [PATCH] 1) more chips: x1000, HD2000, HD3000, HD4000, mobile, IGP, X2 etc... 2) forgotten sb16/readme.txt git-svn-id: svn://kolibrios.org@874 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/drivers/ati2d.asm | 234 ++++++++++++++++++++------- kernel/trunk/drivers/r500hw.inc | 6 +- kernel/trunk/drivers/sb16/README.TXT | 72 +++++++++ 3 files changed, 256 insertions(+), 56 deletions(-) create mode 100644 kernel/trunk/drivers/sb16/README.TXT diff --git a/kernel/trunk/drivers/ati2d.asm b/kernel/trunk/drivers/ati2d.asm index 4bed5f0bd0..001a100e49 100644 --- a/kernel/trunk/drivers/ati2d.asm +++ b/kernel/trunk/drivers/ati2d.asm @@ -1195,61 +1195,185 @@ devices: dd (0x5D4D shl 16)+VID_ATI, init_r200 ;R480 X850 dd (0x5D52 shl 16)+VID_ATI, init_r200 ;R480 X850 - dd (0x791E shl 16)+VID_ATI, init_r500 ;RS690 X1200 - - dd (0x7140 shl 16)+VID_ATI, init_r500 ;RV515 X1300 - dd (0x7142 shl 16)+VID_ATI, init_r500 ;RV515 X1300 - dd (0x7146 shl 16)+VID_ATI, init_r500 ;RV515 X1300 - dd (0x714D shl 16)+VID_ATI, init_r500 ;RV515 X1300 - dd (0x714E shl 16)+VID_ATI, init_r500 ;RV515 X1300 - - dd (0x7183 shl 16)+VID_ATI, init_r500 ;RV515 X1300 - dd (0x7187 shl 16)+VID_ATI, init_r500 ;RV515 X1300 - dd (0x718F shl 16)+VID_ATI, init_r500 ;RV515 X1300 - - dd (0x7143 shl 16)+VID_ATI, init_r500 ;RV515 X1550 - dd (0x7147 shl 16)+VID_ATI, init_r500 ;RV515 X1550 - dd (0x715F shl 16)+VID_ATI, init_r500 ;RV515 X1550 - dd (0x7193 shl 16)+VID_ATI, init_r500 ;RV515 X1550 - dd (0x719F shl 16)+VID_ATI, init_r500 ;RV515 X1550 - - dd (0x71C0 shl 16)+VID_ATI, init_r500 ;RV530 X1600 - dd (0x71C1 shl 16)+VID_ATI, init_r500 ;RV535 X1650 - dd (0x71C2 shl 16)+VID_ATI, init_r500 ;RV530 X1600 - dd (0x71C3 shl 16)+VID_ATI, init_r500 ;RV535 X1600 - dd (0x71C6 shl 16)+VID_ATI, init_r500 ;RV530 X1600 - dd (0x71C7 shl 16)+VID_ATI, init_r500 ;RV534 X1650 - - dd (0x7181 shl 16)+VID_ATI, init_r500 ;RV515 X1600 - dd (0x71CD shl 16)+VID_ATI, init_r500 ;RV530 X1600 - - dd (0x7291 shl 16)+VID_ATI, init_r500 ;R580 X1650 - dd (0x7293 shl 16)+VID_ATI, init_r500 ;R580 X1650 - - dd (0x7100 shl 16)+VID_ATI, init_r500 ;RV520 X1800 - dd (0x7109 shl 16)+VID_ATI, init_r500 ;RV520 X1800 - dd (0x710A shl 16)+VID_ATI, init_r500 ;RV520 X1800 GTO - - dd (0x7249 shl 16)+VID_ATI, init_r500 ;RV580 X1900 - dd (0x724B shl 16)+VID_ATI, init_r500 ;RV580 X1900 GT - - dd (0x7240 shl 16)+VID_ATI, init_r500 ;RV580 X1950 - dd (0x7244 shl 16)+VID_ATI, init_r500 ;RV580 X1950 - dd (0x7248 shl 16)+VID_ATI, init_r500 ;RV580 X1950 - - dd (0x7288 shl 16)+VID_ATI, init_r500 ;R580 X1950 GT - dd (0x7280 shl 16)+VID_ATI, init_r500 ;R580 X1950 PRO - - dd (0x94C3 shl 16)+VID_ATI, init_r500 ;RV610 HD 2400 PRO - dd (0x94C1 shl 16)+VID_ATI, init_r500 ;RV610 HD 2400 XT - - dd (0x9589 shl 16)+VID_ATI, init_r500 ;RV630 HD 2600 PRO - dd (0x958A shl 16)+VID_ATI, init_r500 ;RV630 HD 2600 X2 - dd (0x9588 shl 16)+VID_ATI, init_r500 ;RV630 HD 2600 XT - - dd (0x9403 shl 16)+VID_ATI, init_r500 ;R600 HD 2900 PRO - dd (0x9409 shl 16)+VID_ATI, init_r500 ;R600 HD 2900 XT - + dd (0x7100 shl 16)+VID_ATI, init_r500 ;Radeon X1800 + dd (0x7101 shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1800 XT + dd (0x7102 shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1800 + dd (0x7103 shl 16)+VID_ATI, init_r500 ;Mobility FireGL V7200 + dd (0x7104 shl 16)+VID_ATI, init_r500 ;FireGL V7200 + dd (0x7105 shl 16)+VID_ATI, init_r500 ;FireGL V5300 + dd (0x7106 shl 16)+VID_ATI, init_r500 ;Mobility FireGL V7100 + dd (0x7108 shl 16)+VID_ATI, init_r500 ;Radeon X1800 + dd (0x7109 shl 16)+VID_ATI, init_r500 ;Radeon X1800 + dd (0x710A shl 16)+VID_ATI, init_r500 ;Radeon X1800 + dd (0x710B shl 16)+VID_ATI, init_r500 ;Radeon X1800 + dd (0x710C shl 16)+VID_ATI, init_r500 ;Radeon X1800 + dd (0x710E shl 16)+VID_ATI, init_r500 ;FireGL V7300 + dd (0x710F shl 16)+VID_ATI, init_r500 ;FireGL V7350 + dd (0x7140 shl 16)+VID_ATI, init_r500 ;Radeon X1600/X1550 + dd (0x7141 shl 16)+VID_ATI, init_r500 ;RV505 + dd (0x7142 shl 16)+VID_ATI, init_r500 ;Radeon X1300/X1550 + dd (0x7143 shl 16)+VID_ATI, init_r500 ;Radeon X1550 + dd (0x7144 shl 16)+VID_ATI, init_r500 ;M54-GL + dd (0x7145 shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1400 + dd (0x7146 shl 16)+VID_ATI, init_r500 ;Radeon X1300/X1550 + dd (0x7147 shl 16)+VID_ATI, init_r500 ;Radeon X1550 64-bit + dd (0x7149 shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1300 + dd (0x714A shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1300 + dd (0x714B shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1300 + dd (0x714C shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1300 + dd (0x714D shl 16)+VID_ATI, init_r500 ;Radeon X1300 + dd (0x714E shl 16)+VID_ATI, init_r500 ;Radeon X1300 + dd (0x714F shl 16)+VID_ATI, init_r500 ;RV505 + dd (0x7151 shl 16)+VID_ATI, init_r500 ;RV505 + dd (0x7152 shl 16)+VID_ATI, init_r500 ;FireGL V3300 + dd (0x7153 shl 16)+VID_ATI, init_r500 ;FireGL V3350 + dd (0x715E shl 16)+VID_ATI, init_r500 ;Radeon X1300 + dd (0x715F shl 16)+VID_ATI, init_r500 ;Radeon X1550 64-bit + dd (0x7180 shl 16)+VID_ATI, init_r500 ;Radeon X1300/X1550 + dd (0x7181 shl 16)+VID_ATI, init_r500 ;Radeon X1600 + dd (0x7183 shl 16)+VID_ATI, init_r500 ;Radeon X1300/X1550 + dd (0x7186 shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1450 + dd (0x7187 shl 16)+VID_ATI, init_r500 ;Radeon X1300/X1550 + dd (0x7188 shl 16)+VID_ATI, init_r500 ;Mobility Radeon X2300 + dd (0x718A shl 16)+VID_ATI, init_r500 ;Mobility Radeon X2300 + dd (0x718B shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1350 + dd (0x718C shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1350 + dd (0x718D shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1450 + dd (0x718F shl 16)+VID_ATI, init_r500 ;Radeon X1300 + dd (0x7193 shl 16)+VID_ATI, init_r500 ;Radeon X1550 + dd (0x7196 shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1350 + dd (0x719B shl 16)+VID_ATI, init_r500 ;FireMV 2250 + dd (0x719F shl 16)+VID_ATI, init_r500 ;Radeon X1550 64-bit + dd (0x71C0 shl 16)+VID_ATI, init_r500 ;Radeon X1600 + dd (0x71C1 shl 16)+VID_ATI, init_r500 ;Radeon X1650 + dd (0x71C2 shl 16)+VID_ATI, init_r500 ;Radeon X1600 + dd (0x71C3 shl 16)+VID_ATI, init_r500 ;Radeon X1600 + dd (0x71C4 shl 16)+VID_ATI, init_r500 ;Mobility FireGL V5200 + dd (0x71C5 shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1600 + dd (0x71C6 shl 16)+VID_ATI, init_r500 ;Radeon X1650 + dd (0x71C7 shl 16)+VID_ATI, init_r500 ;Radeon X1650 + dd (0x71CD shl 16)+VID_ATI, init_r500 ;Radeon X1600 + dd (0x71CE shl 16)+VID_ATI, init_r500 ;Radeon X1300 XT/X1600 Pro + dd (0x71D2 shl 16)+VID_ATI, init_r500 ;FireGL V3400 + dd (0x71D4 shl 16)+VID_ATI, init_r500 ;Mobility FireGL V5250 + dd (0x71D5 shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1700 + dd (0x71D6 shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1700 XT + dd (0x71DA shl 16)+VID_ATI, init_r500 ;FireGL V5200 + dd (0x71DE shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1700 + dd (0x7200 shl 16)+VID_ATI, init_r500 ;Radeon X2300HD + dd (0x7210 shl 16)+VID_ATI, init_r500 ;Mobility Radeon HD 2300 + dd (0x7211 shl 16)+VID_ATI, init_r500 ;Mobility Radeon HD 2300 + dd (0x7240 shl 16)+VID_ATI, init_r500 ;Radeon X1950 + dd (0x7243 shl 16)+VID_ATI, init_r500 ;Radeon X1900 + dd (0x7244 shl 16)+VID_ATI, init_r500 ;Radeon X1950 + dd (0x7245 shl 16)+VID_ATI, init_r500 ;Radeon X1900 + dd (0x7246 shl 16)+VID_ATI, init_r500 ;Radeon X1900 + dd (0x7247 shl 16)+VID_ATI, init_r500 ;Radeon X1900 + dd (0x7248 shl 16)+VID_ATI, init_r500 ;Radeon X1900 + dd (0x7249 shl 16)+VID_ATI, init_r500 ;Radeon X1900 + dd (0x724A shl 16)+VID_ATI, init_r500 ;Radeon X1900 + dd (0x724B shl 16)+VID_ATI, init_r500 ;Radeon X1900 + dd (0x724C shl 16)+VID_ATI, init_r500 ;Radeon X1900 + dd (0x724D shl 16)+VID_ATI, init_r500 ;Radeon X1900 + dd (0x724E shl 16)+VID_ATI, init_r500 ;AMD Stream Processor + dd (0x724F shl 16)+VID_ATI, init_r500 ;Radeon X1900 + dd (0x7280 shl 16)+VID_ATI, init_r500 ;Radeon X1950 + dd (0x7281 shl 16)+VID_ATI, init_r500 ;RV560 + dd (0x7283 shl 16)+VID_ATI, init_r500 ;RV560 + dd (0x7284 shl 16)+VID_ATI, init_r500 ;Mobility Radeon X1900 + dd (0x7287 shl 16)+VID_ATI, init_r500 ;RV560 + dd (0x7288 shl 16)+VID_ATI, init_r500 ;Radeon X1950 GT + dd (0x7289 shl 16)+VID_ATI, init_r500 ;RV570 + dd (0x728B shl 16)+VID_ATI, init_r500 ;RV570 + dd (0x728C shl 16)+VID_ATI, init_r500 ;ATI FireGL V7400 + dd (0x7290 shl 16)+VID_ATI, init_r500 ;RV560 + dd (0x7291 shl 16)+VID_ATI, init_r500 ;Radeon X1650 + dd (0x7293 shl 16)+VID_ATI, init_r500 ;Radeon X1650 + dd (0x7297 shl 16)+VID_ATI, init_r500 ;RV560 + dd (0x791E shl 16)+VID_ATI, init_r500 ;Radeon X1200 + dd (0x791F shl 16)+VID_ATI, init_r500 ;Radeon X1200 + dd (0x793F shl 16)+VID_ATI, init_r500 ;Radeon Xpress 1200 + dd (0x7941 shl 16)+VID_ATI, init_r500 ;Radeon Xpress 1200 + dd (0x7942 shl 16)+VID_ATI, init_r500 ;Radeon Xpress 1200 (M) + dd (0x796C shl 16)+VID_ATI, init_r500 ;RS740 + dd (0x796D shl 16)+VID_ATI, init_r500 ;RS740M + dd (0x796E shl 16)+VID_ATI, init_r500 ;ATI Radeon 2100 RS740 + dd (0x796F shl 16)+VID_ATI, init_r500 ;RS740M + dd (0x9400 shl 16)+VID_ATI, init_r500 ;Radeon HD 2900 XT + dd (0x9401 shl 16)+VID_ATI, init_r500 ;Radeon HD 2900 XT + dd (0x9402 shl 16)+VID_ATI, init_r500 ;Radeon HD 2900 XT + dd (0x9403 shl 16)+VID_ATI, init_r500 ;Radeon HD 2900 Pro + dd (0x9405 shl 16)+VID_ATI, init_r500 ;Radeon HD 2900 GT + dd (0x940A shl 16)+VID_ATI, init_r500 ;FireGL V8650 + dd (0x940B shl 16)+VID_ATI, init_r500 ;FireGL V8600 + dd (0x940F shl 16)+VID_ATI, init_r500 ;FireGL V7600 + dd (0x94C0 shl 16)+VID_ATI, init_r500 ;RV610 + dd (0x94C1 shl 16)+VID_ATI, init_r500 ;Radeon HD 2400 XT + dd (0x94C3 shl 16)+VID_ATI, init_r500 ;Radeon HD 2400 Pro + dd (0x94C4 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 2400 PRO AGP + dd (0x94C5 shl 16)+VID_ATI, init_r500 ;FireGL V4000 + dd (0x94C6 shl 16)+VID_ATI, init_r500 ;RV610 + dd (0x94C7 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 2350 + dd (0x94C8 shl 16)+VID_ATI, init_r500 ;Mobility Radeon HD 2400 XT + dd (0x94C9 shl 16)+VID_ATI, init_r500 ;Mobility Radeon HD 2400 + dd (0x94CB shl 16)+VID_ATI, init_r500 ;ATI RADEON E2400 + dd (0x94CC shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 2400 + dd (0x9500 shl 16)+VID_ATI, init_r500 ;RV670 + dd (0x9501 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD3870 + dd (0x9504 shl 16)+VID_ATI, init_r500 ;ATI Mobility Radeon HD 3850 + dd (0x9505 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD3850 + dd (0x9506 shl 16)+VID_ATI, init_r500 ;ATI Mobility Radeon HD 3850 X2 + dd (0x9507 shl 16)+VID_ATI, init_r500 ;RV670 + dd (0x9508 shl 16)+VID_ATI, init_r500 ;ATI Mobility Radeon HD 3870 + dd (0x9509 shl 16)+VID_ATI, init_r500 ;ATI Mobility Radeon HD 3870 X2 + dd (0x950F shl 16)+VID_ATI, init_r500 ;ATI Radeon HD3870 X2 + dd (0x9511 shl 16)+VID_ATI, init_r500 ;ATI FireGL V7700 + dd (0x9515 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3850 AGP + dd (0x9517 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3960 + dd (0x9519 shl 16)+VID_ATI, init_r500 ;FireStream 9170 + dd (0x9580 shl 16)+VID_ATI, init_r500 ;RV630 + dd (0x9581 shl 16)+VID_ATI, init_r500 ;Mobility Radeon HD 2600 + dd (0x9583 shl 16)+VID_ATI, init_r500 ;Mobility Radeon HD 2600 XT + dd (0x9586 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 2600 XT AGP + dd (0x9587 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 2600 Pro AGP + dd (0x9588 shl 16)+VID_ATI, init_r500 ;Radeon HD 2600 XT + dd (0x9589 shl 16)+VID_ATI, init_r500 ;Radeon HD 2600 Pro + dd (0x958A shl 16)+VID_ATI, init_r500 ;Gemini RV630 + dd (0x958B shl 16)+VID_ATI, init_r500 ;Gemini ATI Mobility Radeon HD 2600 XT + dd (0x958C shl 16)+VID_ATI, init_r500 ;FireGL V5600 + dd (0x958D shl 16)+VID_ATI, init_r500 ;FireGL V3600 + dd (0x958E shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 2600 LE + dd (0x958F shl 16)+VID_ATI, init_r500 ;ATI Mobility FireGL Graphics Processor + dd (0x9590 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3600 Series + dd (0x9591 shl 16)+VID_ATI, init_r500 ;Mobility Radeon HD 3650 + dd (0x9593 shl 16)+VID_ATI, init_r500 ;Mobility Radeon HD 3670 + dd (0x9595 shl 16)+VID_ATI, init_r500 ;Mobility FireGL V5700 + dd (0x9596 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3650 AGP + dd (0x9597 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3600 Series + dd (0x9598 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3670 + dd (0x9599 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3600 Series + dd (0x959B shl 16)+VID_ATI, init_r500 ;Mobility FireGL Graphics Processor + dd (0x95C0 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3470 + dd (0x95C2 shl 16)+VID_ATI, init_r500 ;ATI Mobility Radeon HD 3430 (M82) + dd (0x95C4 shl 16)+VID_ATI, init_r500 ;Mobility Radeon HD 3400 Series (M82) + dd (0x95C5 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3450 + dd (0x95C7 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3430 + dd (0x95CC shl 16)+VID_ATI, init_r500 ;Fire PRO Professional Graphics ASIC + dd (0x95CD shl 16)+VID_ATI, init_r500 ;ATI FireMV 2450 + dd (0x95CE shl 16)+VID_ATI, init_r500 ;ATI FireMV 2260 + dd (0x95CF shl 16)+VID_ATI, init_r500 ;ATI FireMV 2260 + dd (0x9610 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3200 Graphics + dd (0x9611 shl 16)+VID_ATI, init_r500 ;ATI Radeon 3100 Graphics + dd (0x9612 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3200 Graphics + dd (0x9613 shl 16)+VID_ATI, init_r500 ;ATI Radeon 3100 Graphics + dd (0x9614 shl 16)+VID_ATI, init_r500 ;ATI Radeon HD 3300 Graphics + dd (0x9440 shl 16)+VID_ATI, init_r500 ;ATI Radeon 4800 Series + dd (0x9441 shl 16)+VID_ATI, init_r500 ;ATI Radeon 4870 X2 + dd (0x9442 shl 16)+VID_ATI, init_r500 ;ATI Radeon 4800 Series + dd (0x9444 shl 16)+VID_ATI, init_r500 ;Everest ATI FirePro Graphics Accelerator + dd (0x9446 shl 16)+VID_ATI, init_r500 ;K2 ATI FirePro Graphics Accelerator + dd (0x944E shl 16)+VID_ATI, init_r500 ;RV770 + dd (0x9456 shl 16)+VID_ATI, init_r500 ;Denali ATI FirePro Graphics dd 0 ;terminator diff --git a/kernel/trunk/drivers/r500hw.inc b/kernel/trunk/drivers/r500hw.inc index 32181825bc..a2ce9ac695 100644 --- a/kernel/trunk/drivers/r500hw.inc +++ b/kernel/trunk/drivers/r500hw.inc @@ -5,6 +5,10 @@ if 0 The below code is a rework from code in xf86-video-radeonhd/src/r5xx_accel.c, xf86-video-radeonhd/src/r5xx_xaa.c + git://anongit.freedesktop.org/git/nouveau/xf86-video-radeonhd + git://anongit.freedesktop.org/git/xorg/driver/xf86-video-ati + + Copyright 2008 Luc Verhaegen Copyright 2008 Matthias Hopf Copyright 2008 Egbert Eich @@ -662,7 +666,7 @@ proc R5xxSetupForSolidFill stdcall,color:dword, rop:dword, planemask:dword or edx, [rhd.control] or edx, (R5XX_GMC_BRUSH_SOLID_COLOR or R5XX_GMC_SRC_DATATYPE_COLOR) -; Save for later clipping */ +; Save for later clipping mov [rhd.control_saved], edx mov eax, 4 diff --git a/kernel/trunk/drivers/sb16/README.TXT b/kernel/trunk/drivers/sb16/README.TXT new file mode 100644 index 0000000000..7f82babacd --- /dev/null +++ b/kernel/trunk/drivers/sb16/README.TXT @@ -0,0 +1,72 @@ +Nable 21.05.2008. +This driver is my contribution (or donation) to KolibriOS. This is provided +AS IS in hope it'll be useful, but WITHOUT ANY WARRANTY! No responcibility +for any hardware damage or data loss. Use at your own risk! + +;------------------------------------------------------------------------------- +;Changelog: +;------------------------------------------------------------------------------- +v0.2 - DEV_SET(GET)_MASTERVOL functions are unlocked and implemented. + +v0.1 - first release. + +;------------------------------------------------------------------------------- +;Tiny FAQ for sound driver by Nable for SB16 sound card. +;------------------------------------------------------------------------------- + +;What is it?-------------------------------------------------------------------- + As you may know there is a sound subsystem ('INFINITY') in KolibriOS. +This subsystem includes mixer and separate interface for soundplayer +program and driver, so player application don't need to know what soundcard +is installed and how to cope with it, all work with card do the driver. +Before this time there were drivers only for AC97 integrated sound, but I +don't have such at home and if I would upgrade my computer with a newest +hardware, with 100% probability integrated sound will be HD Codec, nowadays +AC97 is not actual (2008 year is at calendar). But I'm not planning to upgrade +my computer so much now (and in next 5-6 years), writing the driver for my PCI +ESS Maestro1 card is difficult for me (may be some time later), so I decided +to write a driver for SB16. At first it is easy, there are many working +examples for DOS, there are heaps of good documentation and as an ISA device +SB16 can be programmed through I/O ports (about 5 ports are used), that is +more easy than PCI access. Now, enough lirics, lets go to physics :-) + If you still don't understand what stuff is it, I'll tell this in brief: +with this driver you can play MP3 and WAV music (using AC97SND player) and +sounds (some games and DOSBOX can produce sound output through sound +subsystem) in KolibriOS. + +;Yeah! I need sound in Kolibri and I have SB16 card. Whats then?---------------- + At first copy my SOUND.OBJ to /sys/drivers at your Kolibri system. Note, +that if you have AC97 card and it's driver started - then new driver won't +run until reboot. Then run BOARD and go to 'user' tab. Then try to run +AC97SND player. At BOARD you will see the following (if you had a proper +card): +|----------------------------| +|detecting hardware... | <- detector startup message +|DSP found at port 220h | <- if you have a proper card, it'll be +|DSP version 4.13 - SB16 | autodetected. Numbers may be different. +|failed to attach IRQ5 | <- don't mention. Old kernels reserve IRQ5 +|owner's handler: 0x80D74284 | see below how to fix it. +|----------------------------| + At first, note that DSP version must be 4.xx or higher. Older cards are not +supported in this first release, maybe some time later. If nothing detected +but PNP/BIOS or some other OS detects your card - I'm sorry, it's perverted +PNP card like OPTi16, that is like HD Codec - until you init it through +PCI->ISA bridge (HD Codec of course through PCI->PCI bridge), map it, etc, +you can't use it in any way. I'd rather write a PCI device driver, than +for this extreme perversion. If your card detected and has a proper version +but you see 'failed to attach IRQ' - delete stroke 'mov [irq_owner+4*5],1' from the +file kernel.asm of your kernel source, save it, rebuild kernel, copy new +kernel to /sys/ (did you rename 'kernel' to 'kernel.mnt'? You should do it), +restart kernel (Ctrl+Alt+F12, Home). THE EASIER WAY IS TO USE A NEWER KERNEL, +since SVN802 it's fixed. +Now everything should be OK. + +;It works for a part of the second and then stops, but system doesn't hang------ +Go to 'config.inc' of my driver and change 'sb_irq_num' value from 5 to 7. +Then save, rebuild driver (compile 'sound.asm'), put 'sound' to /sys/drivers/ +(you need to rename file 'sound' to 'sound.obj'), restart kernel and try again +to produce sound. + +;------------------------------------------------------------------------------- +Ask your questions at KolibriOS forum: board.kolibrios.org +I'll try to answer you if possible. \ No newline at end of file