I still don't know how the rest of the code works after the copying of the 512 bytes from 7C00h to 600h and starting of execution from 612h.
My guess is that it is troubleshootingcode and the system through tests with the help of in13, makes it choose between the three error mesages.
well - hopefully, the error messages are not needed, right ? :P
when the computer boots up, the BIOS code reads the boot sector into memory and executes it
it is 512 bytes - not a lot of room for advanced code
the task of the boot sector code is to load a more advanced piece of code into memory and execute it
this process varies from OS to OS
some OS's may read 1 sector in and execute it
some may locate a series of sectors and read them
in DOS, the bootloader had to be the first thing in the data area of the disk
and it had to be in contiguous sectors
that way, the code that loaded it did not have to find it or chain sectors together to load it
i think modern ones read several sectors in and execute
now - the code has some room for more advanced code
like code that is complex enough to locate files on an NTFS drive and load/execute