可以在 Forth 中使用 BIOS 中断吗?

LT0*_*T01 2 forth

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

Rei*_*ica 5

我认为您错误地认为那里有一个包罗万象的“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 实现:)