这 网页介绍了MIOS项目。MIOS是一个 片对片更换BIOS(基本输入输出系统)ON IBM5150个人计算机。在IBM PC上,BIOS包含在 位于主板上插座位置U33的ROM IC芯片。集成电路 是套接字的,并且不能替换为包含以下内容的自定义ROM 自定义代码。 本项目的目的是探索对IBMPC的控制 以非标准方式提供硬件。其目的不是更换BIOS 用另一个BIOS来做完全相同的事情!我们要去 通过描述我们的开发路径来描述MIOS的工作原理。我们从考虑其他BIOS替换软件开始这个项目。 值得注意的是,对于IBMPC,有一种称为 Landmark/Supersoft软件包,如下所述:减号 零度 Landmark/SuperSoft代码是唯一的。通过烧录代码 到ROM并将其放入BIOS位置U33,可以引导IBM PC并根据结果执行一系列诊断测试 在屏幕上实时报道。一张典型展示的照片 屏幕如图1所示。 关于这个问题的几个关键点 诊断性 ROM是代码完全控制PC的事实 硬件:没有DOS操作系统。没有BIOS。直接控制PC硬件,而不使用标准BIOS, 由大量可用的文档提供帮助,这些文档描述 IBM 5150如何 工作和操作。IBM技术手册包含完整的 电路图,以及对硬件的有用补充说明 组件,以及BIOS源代码的完整列表。这个 汇编代码-在没有BIOS的情况下控制计算机硬件 或者操作系统有时被称为使用原语。 直接控制计算机硬件有一定的优势,而不是 最少 这就是提高运行速度的可能性。建成后,IBM5150PC专门为BIOS提供了一个ROM插槽。 这是主板上的插座U33,如图2所示。插座 旨在接受 一个摩托罗拉MC68766可编程只读存储器。ROM有空间用于 8192 代码的字节数。(这通常缩写为";8K";。)。原版ROM IBM选择的芯片比较少见,编程协议 需要可能很难找到的老式硬件。 幸运的是,ROM芯片可以用更普通的IC代替 芯片通过使用插座适配器。MIOS代码必须烧录到ROM中 芯片才能使用。我们将适配器与 可编程M27128A 奇普, 如图3所示,MIOS被设计为避免使用CPU 打断一下。这标志着与 原始IBM 5150 BIOS。我们决定采用这种设计方法,其基础是 根据PER提出的类似想法 布林克 汉森在他的书“编程”中写道。 A Personal Computer";,1982,第54页。 因此,MIOS软件的第一个任务是消除中断以 8088 CPU。CPU中断有多个来源:可屏蔽 外部中断、不可屏蔽的外部中断和不可屏蔽的 内部中断。可以使用汇编代码屏蔽可屏蔽中断 COMMAND";CLI&34;,意思是清除中断&34;的机械式命令。作为运气 如果有的话,IBM5150外部不可屏蔽中断确实可以 通过 通过对CPU输入引脚之前的逻辑门发出命令来禁用,因为 在Mazidi,第435页中描述。(屏蔽NMI 中断)内部不可屏蔽中断是 唯一剩下的。(中断0:除以 零等)。 8088 CPU是 已编码 在内部继续到特定的内存地址,该地址位于 RAM读取要跟随并执行代码的中断矢量地址 处理中断。IBMPC中的第一个16K RAM是焊接的 直接连接到主板上。虽然该RAM可供使用, 因为它是动态RAM,所以存储器需要不断刷新以 保存地址字节内容。因此,我们没有一种简单的方法来 处理不可屏蔽的内部CPU中断。我们认识到这是一种 MIOS缺乏症。下面讨论的是在不使用DRAM的情况下运行 刷新中断。(DRAM 刷新) MIOS设计为与MDA显示适配器配合运行。 MDA是IBM5150PC最简单的显示适配器。然而, 丙二醛(MDA) 显示适配器有一个非常显著和有用的功能:视频 内存是SRAM,不是RAM。*可以使用MDA卡上的SRAM 通过 作为通用存储器的MIOS,用于创建堆栈段(SS)和 额外分段。使用SRAM避免了复杂性和资源 为存储器刷新服务中断的要求。在使用MDA显示适配器之前,必须对其进行初始化。这个 通过将设置字节参数发送到板载存储器来初始化MDA 称为寄存器的位置。这 事实证明,由于出色的文档编排,做起来相当容易 关于mda的内部工作:mda 卡片解释