是否可以通过BIOS中的程序调用将存储在硬盘上的Windows库?

Ani*_*rac 8 assembly bios

我正在尝试编写一个程序,这将是一个BIOS选项(POST后).我希望应用程序有一个漂亮的GUI而不是基于文本(有很多原因,本地化就是其中之一).

我的问题是我们受到应用程序大小的限制,我们可以闪存到BIOS.

是否可以使用MASM32"链接"到硬盘上的dll,以便我们可以使用Windows API来开发GUI?

或者是否有一个API可供我们创建可以链接到最终可执行文件的GUI?(最终程序可执行文件的60K大小约束)

我们将非常感谢您提供的任何帮助,在此先感谢您.

wal*_*lyk 9

有可能的.你所要做的就是:

  • 将处理器设置为保护模式并按预期映射内存(平面模型)
  • 开发文件系统驱动程序并加载它
  • 支持所有可能的视频卡,鼠标,显示器,键盘等,包括潜在的传统硬件
  • 设置执行环境,以便存在所请求的DLL的所有外部引用,包括(对于Windows)KERNEL32,GDI等.

这有很多,这并不容易.然而,一个接近的例子是MenuetOS,这是一个令人印象深刻的紧凑环境.但它完全源于对如何实现GUI环境的完全重新思考.


我编写了模拟GUI界面的BIOS代码.视频卡保持文本模式,字体看起来更漂亮,文本单元分隔符关闭,鼠标被识别.通过简单的动画,整个事情确实适合60 KiB左右.

  • 我有一个杀手级的令人敬畏的代码压缩算法来做到这一点.但我还没有完全解决这个问题.:-) (4认同)

小智 5

不,这是不可能的.Windows应用程序需要Windows操作系统在其上运行,因此BIOS必须已启动操作系统并且在使用Windows GUI(或控制台应用程序)之前已完成运行.即使访问磁盘上的DLL文件,您也需要一个文件系统,在操作系统启动之前该文件系统不可用.

但是,在60K中,您应该能够使用相当合理的基于字符的GUI.我会看看一些linux引导加载程序是如何做到这一点的.