I'm working on no-emulation booting OS , as you know in no-emulation booting, the boot image can be any (real-mode) binary executable code.
i use 2 stage bootloader for my os , first i load the fist stage the problem that i encounter is in the second stage, When the bootloader tries to load the OS image, it needs a device number of the CD/DVD drive to make BIOS calls
The question is: which device number i should use ?
i have tryed 0x81
(first IDE slave) and 0x82
(the second IDE master)
on some pc it work on others it not
The El Torito (CD-ROM standard) protocol only states that BIOS
shall emulate the
CD/DVD
drive by an arbitrary device number.
Different BIOS
may come up with
different drive numbers.
when BIOS invokes a bootloader, it also passes the
emulated drive number in the CPU’s DL
register.
The bootloader must catch the drive number and use it to make BIOS calls.
and the rest of it is similar to emulation booting