[BOOTSECT]
authorColin Finck <colin@reactos.org>
Tue, 24 Jan 2017 22:45:37 +0000 (22:45 +0000)
committerColin Finck <colin@reactos.org>
Tue, 24 Jan 2017 22:45:37 +0000 (22:45 +0000)
commit29bebdf5b3178c60ca8108b2354f45674bf40071
tree2cc36f7ace93a2fdc5441e3489834e006b7579ac
parentb2c245865a05a3086fcb1803f315fd4f258941d2
[BOOTSECT]
Overhaul our ISO boot sector:
- Add another entry point for hybrid booting (called by isombr) and the hybrid signature needed for isohybrid.
- Import latest isolinux.asm "API" from http://repo.or.cz/syslinux.git/blob/8bbb10b70905339b7ca6b58d6833b6a95ab03dae:/core/isolinux.asm (latest version to date) and http://repo.or.cz/syslinux.git/blob/9141c603930ef23da1e08e487a0c26750fbb4fbe:/core/isolinux.asm (latest version that came with all functions in ASM).
  Among other things, this brings us getlinsec_ebios (for reading setupldr.sys in hybrid/MBR mode) and BrokenAwardHack (for working around broken Award BIOSes)
- Fix upstream getlinsec_ebios to load files >64K.
- Load the HDD boot sector directly to 0x7C00 instead of trackbuf. This way, we don't have to load it again when the user decides to boot from HDD.
- Check for the 0xAA55 signature to decide if the HDD contains a valid MBR. This was done differently and inconsistently for isoboot and isobtrt.
- Adapt the file and comment style to ReactOS guidelines. Add meaningful comments to our main code. Remove stuff that was just taken from isolinux.asm, but makes no sense for our version.
- Remove DEBUG_MESSAGES ifdef. There is no chance they can ever fit into the 2K sector with all the added features. Debugging can still happen using Bochs or adding specific messages.

Tested with Bochs, QEMU, VMware, VirtualBox and four real computers.
Many thanks to Hermès for all the helpful suggestions and additional investigations! :)

CORE-12648

svn path=/trunk/; revision=73594
reactos/boot/freeldr/bootsect/isoboot.S