Neptune Boot Loader 2.0 Beta

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
Post Reply
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Neptune Boot Loader 2.0 Beta

Post by neon »

Neptune Boot Loader 2

Neptune's boot loader has been rewritten to use the new boot library written for Neptune's two main startup programs. Because this is a rewrite, I am releasing it as version 2.

Image

Features

-Modular. Composed of three programs in two files and its usage of the boot library
-Everything runs in protected mode
-Portable: Works in tested laptops, PCs, Virtual PC, and all tested versions of Bochs
-Supports all volume types and filesystems that the BootLib supports. Currently FAT12; Any volume drive (No HDD support yet do to technical limitations in the BootLib.)
-Very easy to boot other OS's or add additional entries to boot from by making additional entries in the boot.lst configuration file.
-Hardware independent. All hardware access is done through a standard one-function BIOS calling interface via the BootLib.
-Basic boot time command parser (Currently being re-implemented)
-Not much of a feature, but written in C using MSVC 2008, with NASM.

More information can be obtained here (Clicky).

Testing

If you would like to test it, please obtain the files from here (Clicky).

To install, first format a floppy disk or virtual floppy image for a FAT12 file system. Write bootsect.bak in two parts as shown below using partcopy. This is needed as bootsect.bak does not contain a BPB table by default. Instead, it must be merged with a preformatted boot sector.

Code: Select all

partcopy bootsect.bak 0 3 -f0 0
partcopy bootsect.bak 3E 1C2 -f0 3E
All other files can be copied over as any other file.

Please let me know if you run into any problems. Know issues are:

-BootLdr will give an error if boot.lst is not found
-Filenames in boot.lst are sent straight to the filesystem. Do to filesystem naming conventions, all image names must be in all CAPS in order to be found by BootLib's file system code.
-Does not parse directory paths nor volume mount points. BootLib kind of supports this but it is not yet used by the boot loader.
-Command parser not yet implemented. One of our dedicated programmers are working on it...

Please let me know if you have any suggestions, comments, or questions. :D
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
User avatar
lcowles
Posts: 17
Joined: Sun May 24, 2009 9:11 pm
Location: Essex, United Kingdom
Contact:

Re: Neptune Boot Loader 2.0 Beta

Post by lcowles »

hi, I've never read of bootlib before but what is the point in a system that only supports removable media or floppy, I haven't seen a floppy disk in well over a decade and CD-ROM only provides a read-only space for an OS (slows boot time)

on the plus side I have tested this in my PC, vmware, virtualbox and qemu and it works fine
there are only 1 0 types of people in the world, (un)fortunately Base 2 allows for a lot more than just 0 and 1
quok
Member
Member
Posts: 490
Joined: Wed Oct 18, 2006 10:43 pm
Location: Kansas City, KS, USA

Re: Neptune Boot Loader 2.0 Beta

Post by quok »

lcowles wrote:hi, I've never read of bootlib before but what is the point in a system that only supports removable media or floppy, I haven't seen a floppy disk in well over a decade and CD-ROM only provides a read-only space for an OS
Crickey, are you really going to be one of those types of forum members? Look:
No HDD support yet do to technical limitations in the BootLib.
Emphasis mine. No HDD support yet. So it's planned, it's just not there yet. Oh, and it's tagged 'beta', so it's obviously not complete, and may contain bugs. Thanks for testing, but why moan and complain about the lack of features that the OP has already said are missing? You may not find floppy booting very useful anymore, but many forum members here still do it.

Please, if you don't have anything nice to post, please don't post at all. :)
User avatar
lcowles
Posts: 17
Joined: Sun May 24, 2009 9:11 pm
Location: Essex, United Kingdom
Contact:

Re: Neptune Boot Loader 2.0 Beta

Post by lcowles »

[-X dude don't flame me because I point out an error in the Lib as mentioned by the authors post (not even the damn project whch I complemented) now I don't want to flame troll etc it's just an opinion so chill :x :evil:
there are only 1 0 types of people in the world, (un)fortunately Base 2 allows for a lot more than just 0 and 1
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Neptune Boot Loader 2.0 Beta

Post by Combuster »

When I browsed the forum you appeared like a spambot. And your posts in this forum are very close to noise - some even contain pure nonsense.

And you just whined like a little kid with waaaaay too much ego. There was no flame at your address, and even if there was your reaction was completely uncalled for.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
OrOS
Member
Member
Posts: 143
Joined: Sat Sep 08, 2007 11:26 pm
Location: Canada

Re: Neptune Boot Loader 2.0 Beta

Post by OrOS »

Combuster = ++quok;
free(lcowles);

Looks interesting neon, I'll try it out on real hardware & Parallels when I get a chance.
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: Neptune Boot Loader 2.0 Beta

Post by neon »

lcowles wrote:[-X dude don't flame me because I point out an error in the Lib as mentioned by the authors post (not even the damn project whch I complemented) now I don't want to flame troll etc it's just an opinion so chill :x :evil:
The bootlib is Neptune's Boot Library, which is used in several of Neptune boot time and startup programs to aid in compatibility and to insure code is not duplicated.

Also, its not an error. It is a feature soon to come. I thank you for testing it though. It is a complete rewrite of the original bootloader (this time built with the Boot Library) which is why I decided to make it public for testing.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: Neptune Boot Loader 2.0 Beta

Post by Troy Martin »

neon: looks nifty, is it going to be freeware/open source?
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: Neptune Boot Loader 2.0 Beta

Post by neon »

Troy Martin wrote:neon: looks nifty, is it going to be freeware/open source?
Thanks for the compliment :D
I can make the boot loader itself open source. It wont be very useful though do to the bulk of the code being interfaces in the boot library :) The boot loader program itself is quite small actually.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
Post Reply