【问题标题】:How to make audio driver for MS-DOS? [closed]如何为 MS-DOS 制作音频驱动程序? [关闭]
【发布时间】:2019-11-06 13:46:56
【问题描述】:

我想在程序集 8086 中为 MS-DOS 制作音频驱动程序,它将游戏和其他软件中的 Tandy 声音发送到非 Tandy 1000 计算机(没有 Tandy 1000 声音芯片的计算机)上的 PC 扬声器.

【问题讨论】:

  • 对于你写的驱动程序,这有点像那里的交易。你需要知道机器是否有健全的支持,然后模拟它。
  • 查看this project,它基本上做了你想做的事情。
  • @old_timer “只是做”不是“我该怎么做”问题的好答案。
  • 太宽泛了。我如何从头开始制造汽车,请在一段中写下来,以涵盖所有可能性、用例、配置。
  • 我的问题不是 stackoverflow 问题。请对此进行编辑以使其成为 stackoverflow 问题。

标签: assembly audio driver dos x86-16


【解决方案1】:

这有点难以实现。 Tandy 声卡通过将数据写入端口0xc0 来工作。为了模拟声卡,您需要拦截对该端口的写入并使用您的软件处理它们。这在 8086 上是不可能的,而且对于 80286 上的实模式软件来说,这是不可能的,因此您至少需要一个 80386 才能使其工作。

关键的想法是让你的 CPU 进入虚拟 8086 模式,然后为它提供一个 IO 权限掩码,除了端口 0xc0–0xc7 之外的任何地方都是 0。这会导致所有硬件访问工作,除非您尝试访问 Tandy 声卡。在这种情况下,您将获得一个虚拟机出口,您可以使用它来模拟硬件。

this project 中的 LPT 端口 adlib 卡也做了类似的事情。您应该能够根据您的目的调整代码。

请注意,这使得如何真正模拟声卡声音的问题完全悬而未决。我帮不了你。 Tandy 使用 SN76489 芯片来产生声音,所以看看其他人是否尝试过模仿它,我猜。

【讨论】:

  • 没问题,尽管如此,我已经投了赞成票。
猜你喜欢
  • 2013-08-12
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
  • 2011-06-24
  • 2013-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多