home .. forth .. colorforth mail list archive ..

[colorforth] PCI Soundcard


Trying to collect info for programming the
PCI bus to run SoundBlaster PCI soundcards
Hope this short list helps to interpret Chuck's North.blk.

Part1: ColorForth PCI registers for SoundBlaster
--------------------------------------------------------------------
The PCI registers are on Chuck's Block 46
'North  ok'  <>    \ shows regs 
'u' &  'd'   <>    \ scan regs Up or Down
\ to find that BIOS has configured my SB at 5800. 
\ Chuck's SB was 3800.  So shift the pointer
  : sb  5800h  dev ! ;
'sb  ok'  <>    \ now shows my SB PCI regs 
                 \ which are all 0000 except at:
5800  1274 = vendor ID ensoniq 
5802  1371 = device ID 
5804  0005 = 1+4 io+busmaster
5806  0410 = 400+10 select slow dev+list capabilities
5808  0006 = device revision no. 
580a  0401 = device class - multimedia audio
580c      00 = cache size
580d      20 = latency time
580e  0000 = header type - normal
5810  a801 = PCI base address for io
582c  1274 = subsystem vendor id
582e  1371 = subsys dev id
5834  00dc = offset to first entry in capability list
583c  010a = IRP a + pin 01
5844  0000 = ?? Legacy io base  - ought to be 220 ??
58dc  0001 = capability 1 - power manage ( see 5834)
58e0  0003 = ??



Part 2:  Bernd Beuster's wave program for SB16 
--------------------------------------------------------------------

Bernd describes this "For Soundblaster16 PnP configured by BIOS 
with IO Base address=220h" ie, for a pre-PCI legacy device:

http://www.creativechips.com/pub/colorforth/

My problems are: 
----------------
                1.  I once wrote a program like Bernd's, in a DOS
based "portable" Forth, but the DSP hung up unless SB's DOS 
initializer (SBINIT) was run first.  Now Bernd's program hangs 
up on me likewise - but I hate to resort to a DOS package in 
ColorForth.  Can someone suggest an alternative?

               2.  Why should one have to write for a virtual Legacy 
device (io base 220) when the soundcard is a real PCI 
device (io base a801)?  I asked the company for help, but the 
answer was "lowlevel information about our PCI devices is 
regarded as proprietary".    

Before I change to an open-source DAC, can anyone suggest a 
non-proprietary way to play Bernd's tada.wav explicitly thru the 
SB PCI registers?  


Nick 


------------------------

To Unsubscribe from this list, send mail to Mdaemon@xxxxxxxxxxxxxxxxxx with:
unsubscribe ColorForth
as the first and only line within the message body
Problems   -   List-Admin@xxxxxxxxxxxxxxxxxx
Main ColorForth site   -   http://www.colorforth.com
Wiki page http://kristopherjohnson.net/wiki/ColorForth
ColorForth index http://www.users.qwest.net/~loveall/c4index.htm