是否可以从 BIOS 中的程序调用硬盘上的 Windows 库?

2023-11-27

我正在尝试编写一个程序,该程序将成为 BIOS 选项(开机自检后)。我希望应用程序有一个漂亮的 GUI,而不是基于文本(这有多种原因,本地化就是其中之一)。

我的问题是我们受到可以刷新到 BIOS 的应用程序大小的限制。

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

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

您能提供的任何帮助将不胜感激,提前致谢。


有可能的。您所要做的就是:

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

这涉及到很多事情,而且并不容易。然而,一个接近的例子是MenuetOS,一个令人印象深刻的紧凑环境。但它完全诞生于对如何实现 GUI 环境的彻底重新思考。


我已经编写了模拟 GUI 界面的 BIOS 代码。视频卡保持在文本模式,字体变得更好看,文本单元格分隔符关闭,并且鼠标被识别。通过简单的动画,整个内容确实只有 60 KiB 左右。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以从 BIOS 中的程序调用硬盘上的 Windows 库? 的相关文章

随机推荐

  • 在 ASP.NET MVC 中编译视图

    我想要一个 msbuild 任务来编译视图 以便我可以查看是否存在编译时错误 编译时 有任何想法吗 来自 RC1 的自述文件 未由谷歌索引 ASP NET 编译器构建后步骤 目前 视图文件中的错误只有在运行时才会被检测到 为了让您在编译时检
  • 在 webapi 中使用 OData 获取仅在运行时已知的属性

    假设我有一个非常简单的类型 我想使用 NET C webapi 控制器将其作为集合的一部分公开在 OData feed 上 public class Image
  • 致命错误 LNK1104:无法打开文件“libboost_log-vc141-mt-gd-1_64.lib”

    我正在编写一个利用 Boost 日志记录功能的程序 因此 当尝试构建该程序时 在生成代码时出现以下错误 在 Visual Studio 2017 上 1 gt LINK 致命错误 LNK1104 无法打开文件 libboost log vc
  • `fs.mkdir` 正在创建具有与指定权限不同的权限的目录

    由于我的节点程序使用的模块 它需要 root 才能运行 这是因为它必须在端口 80 上运行 HTTP 服务器 正如您所知 像这样的较低端口需要 root 才能使用 但是 该程序还使用了fs方法来创建文件 我不介意 root 是否是所有者 只
  • C++ 易失性关键字是否引入了内存栅栏?

    我明白那个volatile通知编译器该值可能会更改 但是为了完成此功能 编译器是否需要引入内存栅栏才能使其工作 根据我的理解 对易失性对象的操作顺序不能重新排序 必须保留 这似乎意味着一些内存栅栏是必要的 并且没有真正解决这个问题的方法 我
  • 如何压缩 MS Access 数据库

    我有一个 mdb文件大小为 70MB 删除文件中包含的所有记录后 大小仍为 70MB 我该如何做我的 mdb文件变小 曾经存在的每个数据库引擎都需要对其运行定期维护操作 以优化数据存储并恢复闲置空间 例如 在 xBase 时代 您运行 PA
  • Python 中的 Unicode - 只是 UTF-16?

    当我需要向用户输出某些内容时 我很高兴在 Python 世界中知道我正在使用 Unicode 执行所有操作并编码为 UTF 8 然后 我的一位同事发给我 无处不在的 UTF 8 宣言 2012 这让我很困惑 The author of th
  • 映射时如何处理循环引用?

    以此数据库为例 Employee id 整数 PK 名称 varchar Salary id 整数 PK 员工 ID int FK 金额 浮动 实体框架将生成类似于以下的模型 public partial class Employee pu
  • 使用Flask、Jinja2模板渲染可编辑表格,然后处理返回的表单数据

    我正在使用 Flask 和 Jinja2 我需要制作一个包含多行的可编辑表格 该表如下所示 这是 HTML
  • jQuery 序列化文本区域时出错

    我正在使用此功能 在后台提交带有自定义消息的表单 除了文本区域字段之外 它工作得很好 我读到序列化函数有问题 换行符 function comment form validate submitHandler function form po
  • C# - FtpWebRequest - 通过同一连接/登录的多个请求

    我想在 FTP 文件夹上循环检查文件是否已到达 I do FtpWebRequest request FtpWebRequest WebRequest Create ftp localhost 8080 request Credential
  • Capistrano 没有要加载的文件 -- 部署

    当我尝试运行任何cap命令时 我收到 没有要加载的此类文件 部署 错误 这是输出 Tylers MacBook Pro cap app Tyler cap T Users Tyler rvm rubies ruby 1 9 2 p290 l
  • 使用 Google 自定义搜索 API 进行日期范围搜索

    我正在使用 Google 自定义搜索 API 来搜索图像 我的实现使用 Java 这就是我构建搜索字符串的方式 URL url new URL https ajax googleapis com ajax services search i
  • 具有两个随机效应的混合模型 - statsmodels

    import pandas as pd import statsmodels formula api as smf df pd read csv http www bodowinter com tutorial politeness dat
  • 快速存储对数组的引用

    我想将一个数组传递给一个对象并存储对此数组的引用 我希望能够修改该对象中的该数组 并确保它在其他地方都被修改 这是我想要完成的任务 代码如何不起作用 class Foo var foo Array
  • C++ 中的 float() 函数

    我需要一个简单的浮点舍入函数 因此 double round double round 0 1 0 round 0 1 0 round 0 9 1 我可以找到ceil and floor 在 math h 中 但不是round 它是否以其他
  • Rails 3.1 上邮件程序中的 asset_url

    我的邮件程序位于 Rails 3 1 上 它有一个内联附件 要打开该附件 我使用以下代码 attachments rails png File read Rails root app assets images Rails png 有没有办
  • 如何在 django 的 CreateView 中使用上下文和类?

    如何在 django 的 CreateView 中使用上下文和类 在我之前 views py from django views generic import CreateView from cars models import def C
  • OpenCV 是否为 cv::Point 提供平方范数函数?

    我必须根据距离阈值检查点之间的几个距离 我能做的就是取阈值的平方并将其与范数的平方进行比较 a b where a and b是我正在检查的点 我知道关于cv norm函数 但我想知道是否存在一个不计算平方根 因此更快 的版本 或者我是否应
  • 是否可以从 BIOS 中的程序调用硬盘上的 Windows 库?

    我正在尝试编写一个程序 该程序将成为 BIOS 选项 开机自检后 我希望应用程序有一个漂亮的 GUI 而不是基于文本 这有多种原因 本地化就是其中之一 我的问题是我们受到可以刷新到 BIOS 的应用程序大小的限制 是否可以使用MASM32