Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

SBMIX questions (Developers)

posted by unterwulf Homepage, Saint-Petersburg, Russia, 15.11.2024, 11:27

Hi,

Recently I was looking for a DOS utility for changing Sound Blaster (more precisely ViBRA16C-based ASUS I-A16C card) mixer parameters and SBMIX by BTTR software was one of the top results in Google, so I tried it.

It worked, but had no means to change PC Speaker volume which was crucial for me as I planned to use the card with internal speaker as a primary output device (PC Speaker output from motherboard is connected to the card and the card output is connected to the internal speaker of PC case, so no need in external speakers).

Hopefully, SBMIX comes with the source code, so I was thinking maybe I could modify it to support PC Speaker channel as well. I was able to find Sound Blaster Hardware Programming Guide [1] and it turned out that registers that SBMIX fiddles with are of CT1745 mixer chip which, as the document claims, is only used in Sound Blaster 16 cards.

As per [1] Sound Blaster Pro sports CT1345 mixer chip which registers differ from what SBMIX is changing, yet SBMIX claims to target Sound Blaster Pro and compatibles.

I have no Sound Blaster Pro in my possession to check this myself, but according to [1] SBMIX shouldn't work for Sound Blaster Pro. So I wonder if it's just a vague usage of Sound Blaster Pro term in SBMIX documentation or [1] is not a dependable source of information.

Since SBMIX is such a nice tiny program, I thought it would be fun to reimplement it in pure assembly to see how smaller it would be comparing to a Pascal implementation. It turned out to be about 2K bytes (so 4x times smaller than the unpacked version and 2x times smaller than the packed one). I'm planning to publish it somewhere on the internet and want to ask your opinion on how to do it properly.

1. Should I change the name of the utility? From one hand, the command-line interface is completely the same, so it can be used as a drop-in replacement. From the other hand, it can cause confusion. Although, AFAIK it was a common practice in DOS times to reuse the same name (probably due to lack of information).

2. Should I mention BTTR Software in the command help screen? (Like 'Copyright (c) 1997-2020 BTTR Software'). The only source code reused is ASM routines for changing SB registers which are itself seem to be taken from some SB programming guide, but the look and command-line interface are blatantly stolen from you.

3. Should I stick to 'MODIFIED' BSD LICENSE? I'd rather change it to the MIT license, but won't if you object.

Before I reimplemented it in assembly, I made a patch for the Pascal version which adds PC Speaker volume changing feature. If you are interested, I'd be more than happy to share it with you.

Thank you for your software and this forum (I'm a long-time reader).

[1] https://pdos.csail.mit.edu/6.828/2018/readings/hardware/SoundBlaster.pdf

 

Complete thread:

Back to the forum
Board view  Mix view
22049 Postings in 2034 Threads, 396 registered users, 91 users online (0 registered, 91 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum