有时候需要同时支持3种类型以上的显示器输出,一个VBIOS无法同时支持这些设备时,就需要包两个VGA BIOS进去,
然后让用户根据显示器的类型来选择从哪一个VBIOS来启动。
在AMI legacy code里有2种方法可以实现:
方法 1 :
1. 使用 user_rom 的 token 来包 vBIOSB, 使用 PCI device 的 sdl 来包 vBIOSA
2. 在 dim_func_2 的 dim_2_do_c000_scan 这个 label 前面使用解压程序把 vBIOSB 解压,然后 copy 到 C0000h 的位置
去就好,不用加 code 跳进 C000:0003 的地方去执行。
注意事项:
1.Copy 的时候不用再开 C000 的 shadow ram W ,否则会 hang 在 2A 。
2. rep 的计数器只认 cx ,不认识 ecx
3. vBIOSB 的 module ID 一定不能和其它的重复
方法2:
1. 使用user_rom来包vBIOSB
USER_ROM1_DESTSEG =device ID
USER_ROM1_DESTADDR=vendor ID
2. 把di-pci.asm里的copy_pci_rom_to_shadow程序里的
PCI_OPTION_ROM_ID换成MKF_USER_ROM1_MODULEID