三、瞒天过海——化整为零屏蔽多余的容量
对2M的BIOS芯片,当A17是低电平时,使用的是00000-1FFFF之间低端1M空间;当A17是高电平时,使用的是20000-3FFFF之间的高端1M空间,这一点非常重要。通过分析使用1M BIOS芯片的主板电路发现,由于1M的芯片A17管脚没有定义,是空脚,因此,主板电路在设计时,就把该脚的电压拉至+5V的高电位(如图13),如果在1M BIOS的插座上插入一块2M的BIOS芯片,主板自动屏蔽了2M芯片的低端1M空间。
图13
如果用编程器向2M的芯片中写入1M的BIOS代码,然后把该芯片插到主板上,不能正常启动机器。用编程器把BIOS代码强行刷入高端128K空间,该芯片插入主板后,却可以正常启动机器。这是由于第一次编程器默认把数据写在芯片的低端128K,主板读取的却是芯片高端的128K空白区域;第二次强制把数据写入高端128K空间,主板读取的正好是高端BIOS代码,所以启动主板成功。
通过上面的分析我们知道,主板上A17(即芯片的30脚)已经被设计为高电平了(图3)。所以除了改变BIOS文件的大小外,只需找到一个不进行一致性检查的刷新程序就可简单地把1M的BIOS文件写入2M的BIOS芯片中。先找到一个使用1M芯片的主板的机器,开机进入纯DOS模式,然后拔下1M的芯片,换上2M的芯片。启动刷新程序,进入程序画面,软件会自动识别出插入的BIOS芯片的类型及2M的容量。
如果这时写入1M的BIOS文件,刷新程序发现二者大小不符,拒绝执行。在刷新程序的主菜单中,用方向键把光标移到“Part List”项(图14),敲回车后进入芯片型号选择窗口,在此窗口中,用左右键选择芯片的厂家,用上下键选择与主板上2M芯片型号一致而容量为1M芯片(图15)。选择完毕后,按ESC键返回主菜单,读入1M的BIOS文件,一路回车即可完成操作。
图14
图15