From: Low Level on

I'm looking to write a boot manager in C/C++/Pascal,
much like Powerquest's PQBoot in the sense of the user's
being able to select a partition to boot from, then
(the application would) modify the MBR (I think) and
then the PC would reboot to the selected partition.

1. Programming background:

- I've had a bit of C/C++ programming experience,
but my Pascal skills are better.

- I'm not exactly familiar with Assembly language,
but if some Assembly code were to find its way
into a C/C++/Pascal wrapped function, using a
technique called 'inline Assembly' (I think) and
all parameters and/or function results were to be
passed in or returned in the hosting high level
language, that'll work :-)

2. Wishes:

- I'd like for that utility to be able to work from:
+ MSDOS mode
+ Win98, WinXP (or later)
+ BootCD, where the user may select whether to boot
either from the CD or from the hard drive, assuming
there's a bootable primary partition there of course

- For any Win version or if run from a BootCD, my utility
would have to:

+ be able to run from within Win98, WinXP or later:
++ display all bootable partitions on PC's hard drive
++ reboot the PC to selected partition

+ be able to run from a BootCD:
++ allow user to select to continue booting from BootCD,
and if so, continue boot sequence off CD
++ allow user to select a bootable partition from hard drive
and if so, boot the PC to selected hard drive partition

3. Questions:

- Does it matter if the partition to boot from is
formatted on FAT16/FAT32/NTFS, or EXT2/3 f/Linux?

- Would I benefit from looking at code such as GAG
ot GRUB, or would there be any other, at least
somewhat high level (in terms of programming
language) types of source codes out there?

- Would I need some sort of an ISO image editor
or source code, in order to make an ISO for
a BootCD? If anyone should know of any freewares,
that'd be nice :-)

So - any ideas on how to accomplish the above?
Thanks in advance