flat assembler
Message board for the users of flat assembler.

Index > Main > SoundBlaster FM programming.

Author
Thread Post new topic Reply to topic
SoLo2



Joined: 09 Mar 2007
Posts: 14
SoLo2 26 Aug 2007, 07:16
Hello!

I have been trying to make
the Sounblaster FM capability
sound, and although I found
some usefull and well written
texts describing its ports and
registers... the PC won't sound.
OK, I am using DOSBox 0.71
and fasm167 under Linux, but
this doesn't seem to be the
obstacle.

I use the register port that
DOSBox is supposedly using
for Soundblaster (0x220)
directly, I don't test if it could
be a different port. But then I
see that AdLib uses 0x388
or something like that instead.
But trying other ports doesn't
give sound, either.



References:
"Programming the AdLib/Sound Blaster
FM Music Chips
Version 2.0 (24 Feb 1992)" by Jeffrey S. Lee <jlee@smylex.uucp>
Post 26 Aug 2007, 07:16
View user's profile Send private message Visit poster's website Reply with quote
SoLo2



Joined: 09 Mar 2007
Posts: 14
SoLo2 27 Aug 2007, 03:39
As I have managed, after
some days, to make the
Soundblaster/AdLib FM
synthesizer work, under
DOSBox/Linux, so here is
my impression.

The right port to use for
AdLib FM is 0x388. It seems
to be fixed and then
mirrored or emulated at
some other addresses in
newer sound cards.

I have made use of OPL2
for the first time, which is
a little simpler than OPL3
but has nearly the same
functions.

First tries with vibrato
effect didn't work, yet.

My error for the soundcard
not working was that I was
writing the data to the same
0x388 port instead into
0x389.

Greetings,
SoLo2
Post 27 Aug 2007, 03:39
View user's profile Send private message Visit poster's website Reply with quote
SoLo2



Joined: 09 Mar 2007
Posts: 14
SoLo2 27 Aug 2007, 03:44
Another thing is that I don't
use the card detect code
described by "Jeffrey S. Lee".

As other programmers
mentioned first, if the port
was from another card,
writing to it for test could be
harmfull. There is a remote
possibility that the different
card returned same values,
but it wouldn't know it.

The detect routine is not
really required to make the
card function. It just uses
the usefull timers, so these
give some feedback in the
only readable register.

As the port address is fixed,
0x388 and there is a
soundblaster in the computer,
then I sound directly.

It sounds simple and good
like synthis do.

Greetings,
SoLo2
Post 27 Aug 2007, 03:44
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.