VOGONS


First post, by Hojo82

User metadata
Rank Newbie
Rank
Newbie

So I've recently gotten into retro computing in a big way and wanted to make my machine have a number of OS installations, but of course one runs into the issue of being unable to boot most OSes from secondary drives. Certainly some bootloaders like XOSL will get around this by hooking int 13h, but that is problematic when booting a protected mode OS like Windows. Anyway, while playing around with Windows NT 4, I found that it would successfully boot from a secondary drive, but the original boot sector didn't actually support it. So I've gone ahead and written a tool that actually will patch supported boot sectors to allow booting from secondary drives.

Here's a link to my Github repo for the FIXBOOT tool: https://github.com/KyleJ61782/fixboot

Of course not every OS will actually support continuing the boot process once the boot sector has been fixed up, but for those that do, I plan on updating the tool to support fixing up those boot sectors. It also supports saving and restoring boot sectors, so if you ever need such a utility, this may come in handy for you too.

Anyway, I just thought someone might find this utility useful!

Reply 1 of 2, by debs3759

User metadata
Rank Oldbie
Rank
Oldbie

To save me going through all the source files (coz I'm too lazy), do the sources conform to ANSI C? (ie, is it portable code, or will it only compile in Borland C++ without modifications?)

Seems like another interesting project that could be used in a custom OS.

See my graphics card database at www.gpuzoo.com
Constantly being worked on. Feel free to message me with any corrections or details of cards you would like me to research and add.

Reply 2 of 2, by Hojo82

User metadata
Rank Newbie
Rank
Newbie
debs3759 wrote on 2021-03-03, 00:20:

To save me going through all the source files (coz I'm too lazy), do the sources conform to ANSI C? (ie, is it portable code, or will it only compile in Borland C++ without modifications?)

Seems like another interesting project that could be used in a custom OS.

Not particularly. When you get into the world of 16-bit development with segmented memory, you're going to deal with pointer aliasing, 2 byte ints and the like. Furthermore this code only works by utilizing the BIOS-specific int 13h interface, so everything goes through interrupts for the partition reading and boot sector reading/modification.

I'm not particularly sure how this would be very helpful for custom OS development anyway as all this is doing is patching existing retro boot code. Writing a new OS for retro hardware can just code assuming that booting could happen from any drive.

EDIT: Fixing spelling.