Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uwm.edu!zaphod.mps.ohio-state.edu!unix.cis.pitt.edu!tjw From: tjw@unix.cis.pitt.edu (TJ Wood WA3VQJ) Newsgroups: comp.sys.ibm.pc.hardware Subject: Re: Sound Blaster Registers Message-ID: <28112@unix.cis.pitt.edu> Date: 13 Aug 90 21:51:50 GMT References: <1990Aug7.153600.10175@IRO.UMontreal.CA> Reply-To: tjw@unix.cis.pitt.edu (Terry J. Wood) Organization: Univ. of Pittsburgh, Comp & Info Services Lines: 57 In article <1990Aug7.153600.10175@IRO.UMontreal.CA> fasciano@degusse.UUCP (Massimo Fasciano) writes: >Hi everybody, > > The soundblaster manual gives the adresses of all of the > card's I/O ports but does not explain exactly how to use > them... I saw the sound blaster hardware in an electronics store (here in Pgh) for $299 about 2 weeks ago and it looked so neat that I had to buy one. Now the salesman insisted that it had a text to speech chip on it but from what I can see it simply has a DA and an AD (along with the MIDI/JOYSTICK port). Anyway, I've wanted to fool around with a DA since my PDP-11 days. So I get this thing home and start playing with it. I used the canned programs and got the thing operational. (I suppose that the guy who wrote the programs is the one I'm hearing. He's obviously not from Pittsburgh, with that far east accent! ;-) Anyway, after digitizing some BAGPIPE music from a CD player, I wanted to program this board myself. (At 13,000 Hz the music sounded OK, but hey, all that squealing isn't probably in the original recording. But with bagpipes how can you tell!?! ;-) So I look at the program loadable driver described in the back of the manual and I finally conclude that it REALLY is just what they say it is: program loadable. It's instructions that have to be copied into memory (at any segment, starting at displacement zero). Well, this turned out to be, for me, easier said than done. Whenever I link my "driver area" (created by MS Assembler) in with my MS C main program, it's never at displacement zero of the segment. It's always at displacement "A" or "E". At zero is some code (I assume from MS C). I finally took the hacker's approach and just overwrote the instructions. I'm playing the game of "overlaying" the driver with the original code, but I'm doing it myself. I got the driver working, but I'm not real happy with the solution. I'd much rather have a driver that was relocatable. (I pulled a disassembler off the net, but I don't have the time now to do all the symbol substition). I'll probably keep working with it in my "spare" time. However, if anyone out there in net land would like a copy of the code I now have, I'll be happy to send it. Beware: I don't write MS C or MS Assembly code for a living, just for fun. All of this is a learning experience for me! Also, if anyone else wrote a program for this board, I'd love to see it, too. Anyone buy the "Programmer's Toolkit" that they sell for $100? Terry J. Wood -- INTERNET: tjw@unix.cis.pitt.edu BITNET: TJW@PITTVMS CC-NET: 33802::tjw UUCP: {decwrl!decvax!idis, allegra, bellcore}!pitt!unix.cis.pitt.edu!tjw And if dreams could come true, I'd still be there with you, On the banks of cold waters at the close of the day. - Craig Johnson