Loading...
bios
====

This grub4dos helper utility allows you to make any BIOS call you like. You can setup the registers and which interrupt you want to use, it then makes the BIOS call and prints out the CPU register contents after the call returns, like this:

EAX=00008600  EBX=00000000  ECX=00000000  EDX=00000000  ESI=00000000
EDI=00000000  EBP=00000000  ESP=00006284  EIP=00000000  eFLAG=00000A83
DS=0000  ES=0000  FS=0000  GS=0000  SS=0000  CS=0000  OV UP EI NG NZ NA PO CY

The flag registers are displayed so you can test for the Carry Flag (NC or CY) or Zero flag (NZ or ZR).

This allows you to make any BIOS call (for instance write characters to a certain position on the screen, read a disk sector, etc.).

You can then check these registers by redirecting the output to memory and using cat - e.g. a single line in a grub4dos menu ...

# if plop is not installed, then run it to reboot from USB in USB 2.0 mode
/plpbt/bios int=0x13 eax=0x504c6f50 ebp=0x43484b44 > (md)0x300+1 && cat --locate="EAX=79657320" (md)0x300+1 || pause --wait=3 loading Plop! && kernel /plpbt/plpbt.bin hiddenusb && boot

Do not experiment with int13h calls unless you are careful and know what you are doing as they can be dangerous (e.g. could trash your hard disk!).