Now, I have finished basic functionality of my "BIG LDR" bootloader and now I'm proud to present it.
BIGLDR - bootloader that is capable of loading multiple operating systems, so if you want two or even more of them, you can use this bootloader.
Also, it offers easy script format to make booting easier.
So, my bootloader just scans disks and computer (root directories) for *.mbt files, and lists them in menu.
If no scripts found, console will be opened to enter commands.
Script format (list of commands):
Spoiler
- chainload <target>: loads operating system that cannot be loaded by executing one file. (for example, CraftOS)
- multiboot <kernel-file>: loads selected file and passes execution to it.
- clear: clears screen
- sleep <sec>: sleeps <sec> seconds
- print …: prints text to screen (can also print variable contents)
- ls: lists filesystem root
- set <variable> <value>: sets global <variable> to <value> (as of 0.04, variable names have to be prefixed with '$'). Used to pass arguments/parameters to OS.
- # - if line is prefixed by this, it'll become a comment. If there's a comment at first line of a script, it'll be script name.
Example scripts:
Spoiler
That one simply loads CraftOS:
#CraftOS
clear
chainload craftos
That one can boot custom kernel:
#Load some OS
clear
print Loading some very cool OS!
set $variable value123
sleep 1
multiboot kernel.bin
Run installer:
pastebin run JE6EX9db
Bootloader scripts for manual installation:
Spoiler
pastebin get vJ4EekJn startup (latest)If obfuscation/minification is not allowed:
pastebin get NkhEppYJ startup (very outdated)
Latest version: 0.04beta3
Changelog:
Spoiler
0.04beta3:
* Minor compatability fixes.
* Fixed freeze after loading CraftOS.
* Now it supports custom script names.
* Supports comments in scripts.
0.04beta2:
* Minor fixes.
* Added variables. (prefixed by '$')
* Added pre-1.74 computer compatability.
0.04beta1:
* Added random memory size generation (not very useful).
* Reformatted code.
* Minor fixes.
* Added abiltiy to set global variables.
0.03:
* First public release
Hope that bootloader will be useful for someone :rolleyes:/>
Edit: yeah, tried to make it look like GNU GRUB bootloader.
[attachment=2438:2015-11-14 (3).png][attachment=2439:2015-11-14 (4).png]