【问题标题】:Possible to use BIOS interrupts in Forth?可以在 Forth 中使用 BIOS 中断吗?
【发布时间】:2014-07-21 00:39:58
【问题描述】:

我正在做一个比较不同编程语言的课程项目。是否可以在 Forth 语言中使用 BIOS 中断?我似乎找不到任何这样的信息。如果是这样,那会是什么例子?

【问题讨论】:

  • 这个问题特定于Forth 的特定实现。请准确地告诉我们您使用的是什么 Forth。
  • 我们正在做一个比较不同语言的项目。例如,向全班展示 Hello World 程序是如何用各种语言编写的。我们正在使用 FreeBSD 以这些语言编写我们的简单程序。然后我们注意到引导加载程序正在使用扩展名为 .4 的文件,我们不知道那是什么。我们调查了一下,发现它实际上是一种编程语言,所以我们认为我们可以将它包含在我们的演示列表中。也许课堂上从未提到过的语言会加分!

标签: forth


【解决方案1】:

我认为你错误地认为只有一个包罗万象的“Forth”。没有。有许多 Forth 实现。那些运行“裸机”(没有操作系统)或在 DOS 下运行的服务器当然可以被诱骗访问 BIOS API。那些在 32 位或 64 位操作系统(如 Windows 或 Linux)下运行的操作系统不太可能提供此类功能,因为操作系统很难从一开始就运行 BIOS API。

在 Windows 下运行时,使用 16 位 BIOS API(相对于在不运行 BIOS 代码的情况下读取数据)很麻烦。现代 BIOS 也提供 32 位 API,但在所有情况下,您都受限于可以访问的硬件(无) - 这是由操作系统而非 BIOS 代码强制执行的。

一般来说,BIOS API 很繁琐,当您有一个成熟的操作系统可供您使用时,使用它们是没有意义的。

现在,如果您不太关心 BIOS 调用是访问真实硬件还是模拟硬件,您当然可以使用 Forth 访问类似 DOSBox 的东西并在模拟硬件上运行真实 BIOS。哎呀,DOSBox提供了自己的BIOS实现:)

【讨论】:

    猜你喜欢
    • 2020-05-24
    • 2014-06-13
    • 1970-01-01
    • 2015-04-07
    • 2014-11-11
    • 2022-08-22
    • 2012-03-24
    • 1970-01-01
    • 2014-04-17
    相关资源
    最近更新 更多