0

我正在编写一个组装游戏,它使用实时硬件 BIOS 时钟(每秒滴答 18.2 次)进行延迟。我正在使用 BOCHS 调试程序,并且还使用 VirtualBox 对其进行了测试。

现在,问题是在这些虚拟环境中,硬件时钟太快了(肯定快于每秒 18.2 次)。如果我将延迟设置为 1 秒,BOCHS 和 VirtualBox 会比预期的时间快 10 倍左右完成延迟。在一台真实的计算机上,延迟正好是 1 秒(应该是这样)。

几天前我问了一个问题,我错误地认为我真正的笔记本电脑 BIOS 运行得太快了:嗯,实际上是相反的。

BIOS = 精确时序
仿真 = 时序太快

我的实际代码没有问题(我只是使用 int 15h,ah = 86h)BIOS WAIT 服务,它反过来访问时钟。所以...

我想知道模拟环境如何能够承受如此高的“实时”时钟滴答率。这不会弄乱其他程序吗?最重要的是,例如,如何“调整” BOCHS 中的时钟?我是否可以使模拟时钟准确,这样我每次想要测试我的游戏时都不必重新启动笔记本电脑?

PS:我还注意到“_”光标的闪烁速度比 BOCHS 中的预期快

4

0 回答 0