

- Sound blaster software dos how to#
- Sound blaster software dos update#
- Sound blaster software dos manual#
- Sound blaster software dos code#
Sound blaster software dos update#
The high-level process is as follow: the card is given a buffer to read, when done it triggers an interrupt and stops the software then update the buffer and restart the playback.
Sound blaster software dos how to#
How to play samplesĪfter a long introduction, we are now ready to see how to play a buffer of samples.Ī very good and synthetic reference is tutorial/documentation on the SB16 here. The cfg.asm has nothing else of interest and won't be discussed again. The values here must reflect the ones present in the DOSBox config file.Įvery other constant defined in the file is for the use of the program and not intended to be modified unless you know what you are doing 8. 16-bit DMA channel (must be between 5-7) In the file cfg.asm there are these constants IO Base Though this is a premature introduction to the sources, it is handy to present the configuration constants now that we have just seen the DOSBox configurations. The program given has been tested with these options 7: Had a form of 2x0h where x was configurable.Īll these options are reflected in the DOSBox configuration file. A part was fixed and a part was variable, the base address base address, of this block was configurable too. The SB16 had another jumper to select the Interrupt ReQuest line (IRQ) to use.įinally, as every legacy device, the SB16 was mapped in the IO address space where it occupied sixteen The chip handling the interrupts had 8x2 request lines. When a block of sampling was over the card requested the attention of the CPU through an interrupt, The SB16 had a jumper, or a switch, to configure the channel to use to read the samplings. Such transfers was capable of handling 4x2 in flight data movements. To read the samples the card took advantage of a special transfer mode called Direct Memory Access (DMA), the chip that handled

The SoundBlaster 16 (SB16) had a simple DSP that when filled withĭigital samples converted them into an analogue output.

To facilitate it, TASM and TLINK can be instructed to generate, and include, debugging symbols.Ĭoupled with the use of TD debugging is greatly simplified.Īssemble the sources with tasm /zi sb16.asm The default values match the default configuration of DOSBox.ĭue to the not elementary nature of this task, debugging is essential. The sources use conditional macro and symbolic values 6 in order to be configurable, only three values need to be adjusted eventually. The sources target the 8086 as per OP request.

The binary format is the MZ executable with memory model SMALL, one data segment named _DATI 3 and oneĮach segment is defined multiple times for convenience 4, both segments are PUBLIC so all these different definitions are merged together by the linker, resulting
Sound blaster software dos code#
Assembling, general source format and debuggingĪs a matter of convenience, the code developed for this answer can be found on GitHub. Though no uncommon syntax has been used, being unfamiliar with the assembler directives makes any code harder to read and understand.
Sound blaster software dos manual#
TASM can be run under DOSBox without any problem.Ī scanned version of the TASM 5 manual 2 is I'm using DOSBox to emulate a DOS environment.ĭOSBox ships with a preconfigured SoundBlaster 16 card. There is no particular reason behind this choice but childhood memories. Though the question may classify as off-topic 1 I believe it could be a precious resource to have on this site. The program has been tested in DOSBox, but a lot of things can go wrong on different configurations.įinally, I was forced to split the code into two answers. This present a demo program that plays a specific WAV file (to avoid introducing a RIFF parser to the already too-long-for-SO code.
