0xAA55 发表于 2014-1-31 23:59:48

【DOS】混合语言实现WAV文件播放的程序,声霸卡驱动源码

这个程序用到了NASM汇编器、Turbo C++3.0编译器和MinGW的Makefile。
NASM下载:http://www.0xaa55.com/thread-76-1-1.html
TC下载:http://www.0xaa55.com/thread-82-1-1.html
MinGW下载:http://www.0xaa55.com/thread-10-1-1.html
要完成编译请把NASM放到有PATH的地方(比如C:\Windows这里,也就是%windir%里面),把Turbo C++ 3.0安装到D:\Tools\TC,然后把MinGW安装到D:\Tools\MinGW,如下图所示:



mingw32-make.exe下载:

http://pan.baidu.com/s/1gdp8Lu7
其实只要你能保证mingw32-make.exe在Path就行。没有MinGW又不想安装MinGW的可以直接把mingw32-make.exe放到path能执行到的地方就行,用完就删了。

文件挺多的。有点“小型系统”的感觉了。
编译之后得到PLAYWAV.EXE,你只需要提供一个WAV文件,它就会播放。注意这是DOS下的WAV播放机,稀奇就稀奇在这了。但是声卡必须是Sound Blaster声霸卡。版本的话,最好是4.0以上。当然4.0一下的我的程序也支持,只是会因为受到硬件限制而影响某些格式的WAV的播放。
SoundBlaster的话……淘宝有卖的。然后,DOSBOX、Virtual PC和Virtual Box这三款虚拟机软件支持Sound Blaster 16的声霸卡模拟。
所以在DOSBOX、Virtual PC下要是不出错的话,是绝对会出声的呢。
而Virtual Box则需要设置了声卡用Sound Blaster 16才能出声。VBox默认的是Intel的声卡,那个的驱动我可写不来!
源码下载:
http://pan.baidu.com/s/1mg0nRFa
程序实现了两种方法开启A20地址线(用于开辟DMA专用缓冲区),DMA通道编程,Sound Blaster编程。其中的代码可以拿出来用于编写DOS游戏。
不知道我这个能不能在Windows XP下播放呢。因为WinXP有个特性,它的16位子系统居然……内置了一个虚拟声霸卡!虽然版本低了点,但是至少能发声。屌。

我有个梦 发表于 2014-3-26 16:35:38

谢谢分享

zkllmns 发表于 2014-4-9 12:47:02

楼主可以啊

0xAA55 发表于 2014-4-9 16:33:33

zkllmns 发表于 2014-4-9 04:47
楼主可以啊

我玩了多年的16位编程呢
页: [1]
查看完整版本: 【DOS】混合语言实现WAV文件播放的程序,声霸卡驱动源码