Need assist with multi-stage bootloader...
Posted: Sun Jan 24, 2010 10:41 am
omg can sum1 PLZ give me codes to mak new verzin of wind0ws!!!111!!one!!!1!
No... lol, this isn't one of those posts... I swear! Well,
Very sorry to pester anyone with might seem like a totally trivial thing. But I've gone through absolute hell trying to find even tiny scraps of information. I've been an application programmer for years, but system programming is relatively foreign to me. All I've been able to succeed with so far is getting a simple bootloader to boot in real mode and write to the screen. Why is this so difficult? I program in Visual Studio Pro 08 on Windows. Just searching on the internet returns myriads of results for Linux; and nothing for Windows/VS. I FINALLY, after 3 days of no sleep, found a website with some solid tutorials for using VS. All was well, until I hit the "deadly" snag: Floppy disks.
Not only do I NOT want to use floppy disks, I don't have any, don't have a drive and lack any facilities to use them even if I wanted to. So using ISO images or CD/DVDs is a requirement. That might sound strange, but there is a reason for it all. This project is some early "academic" research I'm doing to plan a future project properly (and no, it won't be a desktop system). I'm new to ASM and being in ring 0 altogether, really. The concepts make sense, and I understand the general scheme of things. But I'm totally snagged when it comes to transferring control out of that little 512b bootloader and trying to go beyond.
When I make an ISO image, this is what I can do:
1) Put the boot.bin into the bootsector (this works on its own just fine)
2) Add other files to the main file list
I have no idea how memory is partitioned/segmented in an ISO, and how the heck I get to it to invoke the entry point of another executable. All examples I come across are using floppies, which I cannot use. I guess this really throws everything I've learned so far out the Window. I don't think this is FAT-12, and I believe the ISO memory is contiguous as well. I've searched endlessly, and it's been totally fruitless.
I'm not trying to beg people to do all the work for me, but I don't think searching anymore is going to do any good. I'm exhausted and frustrated, and haven't slept in the last 26+ hours. It's wearing me down quickly. I hope someone can point me in the right direction or pull me out of this rut! I want to focus on the implementation of the system, and not this.
No... lol, this isn't one of those posts... I swear! Well,
Very sorry to pester anyone with might seem like a totally trivial thing. But I've gone through absolute hell trying to find even tiny scraps of information. I've been an application programmer for years, but system programming is relatively foreign to me. All I've been able to succeed with so far is getting a simple bootloader to boot in real mode and write to the screen. Why is this so difficult? I program in Visual Studio Pro 08 on Windows. Just searching on the internet returns myriads of results for Linux; and nothing for Windows/VS. I FINALLY, after 3 days of no sleep, found a website with some solid tutorials for using VS. All was well, until I hit the "deadly" snag: Floppy disks.
Not only do I NOT want to use floppy disks, I don't have any, don't have a drive and lack any facilities to use them even if I wanted to. So using ISO images or CD/DVDs is a requirement. That might sound strange, but there is a reason for it all. This project is some early "academic" research I'm doing to plan a future project properly (and no, it won't be a desktop system). I'm new to ASM and being in ring 0 altogether, really. The concepts make sense, and I understand the general scheme of things. But I'm totally snagged when it comes to transferring control out of that little 512b bootloader and trying to go beyond.
When I make an ISO image, this is what I can do:
1) Put the boot.bin into the bootsector (this works on its own just fine)
2) Add other files to the main file list
I have no idea how memory is partitioned/segmented in an ISO, and how the heck I get to it to invoke the entry point of another executable. All examples I come across are using floppies, which I cannot use. I guess this really throws everything I've learned so far out the Window. I don't think this is FAT-12, and I believe the ISO memory is contiguous as well. I've searched endlessly, and it's been totally fruitless.
I'm not trying to beg people to do all the work for me, but I don't think searching anymore is going to do any good. I'm exhausted and frustrated, and haven't slept in the last 26+ hours. It's wearing me down quickly. I hope someone can point me in the right direction or pull me out of this rut! I want to focus on the implementation of the system, and not this.