diff --git a/i386/loader/README.md b/i386/loader/README.md new file mode 100755 index 0000000..e70b898 --- /dev/null +++ b/i386/loader/README.md @@ -0,0 +1,37 @@ +# ``loader`` | Nightloader Code Partition + +The partition of which the creation code is contained in this +directory isn't formatted in any particular way; the partition +which is created using this source code contains the instructions +and data for giving control over to the next stage. More on +the features of the *loader* can be found [here](#features) + +## Features + +The loader partition has to perform the following tasks: + +1. Perform the general setup + - Setup a bigger stack + - Enable the A20 address line + - Enter 32-bit mode (Protected Mode) + - Setup Paging +2. Enable the built-in drivers +3. Load additional addons + - Find partitions accessible with the existing drivers + - Check the path ``/bin/nightloader/`` for addons + - Load and start those addons + - If any more filesystem drivers were found, + repeat the last three steps +4. Choose the appropriate action of the three following ones: + 1. If no operating system was found, + - Send an error to any output + - Halt execution after 30 seconds + 2. If an operating system was found and there is no + addon to take control + - Display all options onto the screen and let the + user choose which operating system to start + 3. If an operating system was found and there is an + addon which takes the control + - Give the control to that addon and let it handle + the task of finding out what to do +5. Execute the action chosen by the user in the last step