$WW,1$When you turn-on (better term is "power-up"!) a computer or do a hardware reset, it starts in the $FG,2$BIOS$FG$. Sometimes, you must change the $FG,2$BIOS$FG$ boot order to boot stuff. The $FG,2$BIOS$FG$ loads a boot sector from CD-ROM or hard disk or floppy or whatever. The boot sector runs in 16-bit 80x86 mode and often loads-in a second file that's bigger if it can't be done by just one sector. It's a safe bet that boot sectors are hand-coded assembly language Most boot sectors use the $FG,2$BIOS$FG$ to load-in the rest, but I gave-up trying to get that to work and my boot sectors do direct access to hard-drive or CD-ROM to load-in subsequent modules. Not only do boot sectors have a size limit, 512 bytes or 2048 bytes, the files they load have to fit within 640K because they run in 16-bit mode. This means they usually can't just load the whole operating system and start it running. The operating system must load the rest of itself. My $FG,2$OSMain$FG$ module is what the boot sectors load and I try to put a minimum in it so it will always fit in 640K. It switches to 32-bit mode, then 64-bit allowing access to more memory, and loads in the rest. All the boot related stuff for LoseThos is in the $FG,2$/LT/Utils/Boot$FG$ directory. $LK,"BootCD.SPZ","FI:::/LT/Utils/Boot/BootCD.SPZ"$ $LK,"BootFD.SPZ","FI:::/LT/Utils/Boot/BootFD.SPZ"$ $LK,"BootMHD.SPZ","FI:::/LT/Utils/Boot/BootMHD.SPZ"$ $LK,"BootMHD2.SPZ","FI:::/LT/Utils/Boot/BootMHD2.SPZ"$ $LK,"BootHD.SPZ","FI:::/LT/Utils/Boot/BootHD.SPZ"$ $FG,2$BootCD$FG$ is the CD-ROM boot sector. If you are curious on the layout of $FG,2$ISO9660$FG$ CD-ROMs, see $LK,"DiskCDDVD.APZ","FI:::/LT/Adam/DiskCDDVD.APZ"$. To make a custom bootable CD-ROM, look here $LK,"Bootable CD","FF:::/LT/Doc/FileManager.MUZ,BurnProdu"$. $FG,2$BootMHD$FG$ is the master boot record for a hard drive. This goes on block zero. It loads-in $FG,2$BootMHD2$FG$. It displays a menu and will boot to a partition. Each partition has it's own partition boot record. $FG,2$BootHD$FG$ is the boot record for a LoseThos partition. Boot record code doesn't usually access directories because that would make them too big and would make them depend on a file system layout. They need raw block addresses to load other stuff. To update with a new LoseThos kernel ($FG,2$OSMain$FG$), you must create a binary file and modify the boot loader so it knows the blocks to load. Therefore, you usually recompile the kernel and update the boot sector at the same time. $LK,"InstallBoot","MN:InstallBoot"$() does this. With LoseThos , the $FG,2$OSMain$FG$ module loads the compiler module so it can process start-up scripts and work with source code from then, on. $LK,"::/LT/OSMain/AdamK.APZ","FI:::/LT/OSMain/AdamK.APZ"$ is the starting start-up script. It processes (compiles into memory) the stuff in the $FG,2$/LT/Adam$FG$ directory and ends by $FG,2$#include$FG$ing the $LK,"HOME/Adam3.APZ","FI:HOME/Adam3.APZ"$ file. It is possible to reboot without doing a hardware reset. This is faster when working on $FG,2$OSMain$FG$ or your start-up scripts. See $LK,"BootLT","MN:BootLT"$().