diff --git a/01-boot-sector/README.md b/01-boot-sector/README.md deleted file mode 100644 index 7c68686..0000000 --- a/01-boot-sector/README.md +++ /dev/null @@ -1,56 +0,0 @@ -This is very exciting, we're going to create our own boot sector! - -Theory ------- - -When the computer boots, the BIOS doesn't know how to load the OS, so it -delegates that task to the boot sector. Thus, the boot sector must be -placed in a known, standard location. That location is the first sector -of the disk (cylinder 0, head 0, sector 0) and it takes 512 bytes. - -To make sure that the "disk is bootable", the BIOS checks that bytes -511 and 512 of the alleged boot sector are bytes `0xAA55`. - -This is the simplest boot sector ever: - -``` -e9 fd ff 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -[ 29 more lines with sixteen zero-bytes each ] -00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa -``` - -It is basically all zeros, ending with the 16-bit value -`0xAA55` (beware of indianness, x86 is little-endian). -The first three bytes perform an infinite jump - -Simplest boot sector ever -------------------------- - -You can either write the above 512 bytes -with a binary editor, or just write a very -simple assembler code: - -```nasm -; Infinite loop (e9 fd ff) -loop: - jmp loop - -; Fill with 510 zeros minus the size of the previous code -times 510-($-$$) db 0 -; Magic number -dw 0xaa55 -``` - -To compile: -`nasm -f bin boot_sect_simple.asm -o boot_sect_simple.bin` - -> OSX warning: if this drops an error, read chapter 00 again - -I know you're anxious to try it out (I am!), so let's do it: - -`qemu boot_sect_simple.bin` - -You will see a window open which says "Booting from Hard Disk..." and -nothing else. When was the last time you were so excited to see an infinite -loop? ;-) diff --git a/01-boot-sector/boot_sect_simple.asm b/01-boot-sector/boot_sect_simple.asm deleted file mode 100644 index ce78003..0000000 --- a/01-boot-sector/boot_sect_simple.asm +++ /dev/null @@ -1,6 +0,0 @@ -; A simple boot sector program that loops forever -loop: - jmp loop - -times 510-($-$$) db 0 -dw 0xaa55