So, am I correct in assuming that you're making a user level program, in an existing OS, to load in a boot sector and execute it?
what OS are you attempting to do this in?
The _only_ OS that this is even remotely possible in, would be DOS. One, because you can still access BIOS int 0x13, and two, because you can just randomly write to memory, such as 07c00.
If you're trying to do this in any other OS, then you _should_ be getting errors, reboots and illegal operations. No OS should allow you to read a sector from disk and write it randomly into memory.
However, while this _is_ possible in DOS, that doesn't mean it's _workable_
First off, you can't be garaunteed that 07c00 is free... no doubt it's in use by a DOS device driver, and overwriting it with anything is never a good idea.
Secondly, having written to 07c00 with your boot sector, what does it do? If it loads in a kernel then, again, you're overwritting potentially used memory, which is also not a good idea.
If you _must_ do this (which I'm quite certain you don't) you'll need a relocateable boot sector, and a relocateable kernel. And your user level boot program is pretty much restricted to plain vanilla DOS (it wont even work in a Win95+ DOS prompt...). This is obviously a pretty huge limitation, unfortunately.
Lastly, an OS that uses more then _1_MB of memory must be running in protected mode (or, more specifically, must switch to protected mode (or unreal mode, or other variants) to read/write to those memory addresses above 1MB).
Memory use above _16_MB (I believe) simply signifies the use of 32-bit protected mode... I seem to recall that the 286's protected mode had an upper limit of 16MB of memory access... but... it's been ages since I've used 286 pmode, so... I could be wrong
Hope that helped...!
Cheers,
Jeff