include_flags := "-Iinclude" common_flags := "-werror " + include_flags run: qemu-system-x86_64 \ -monitor stdio \ -no-reboot \ -bios seabios/out/bios.bin \ -m 512M \ -drive format=raw,file=disk.bin build: nasm -f bin {{common_flags}} -o s1.bin stages/s1/s1.s nasm -f elf {{common_flags}} -o stages/s2/s2.o stages/s2/s2.s nasm -f elf {{common_flags}} -o stages/s3/s3.o stages/s3/s3.s nasm -f elf {{common_flags}} -o stages/s3/a20.o stages/s3/a20.s ld.lld -T s2.ld -o s234.bin stages/s2/*.o stages/s3/*.o stages/s4/target/protected32/release/libs4.a mkimg: dd if=/dev/zero of=disk.bin bs=440 count=1 conv=notrunc dd if=s1.bin of=disk.bin conv=notrunc dd if=s234.bin of=disk.bin bs=512 seek=70 conv=notrunc # build: # nasm -f bin -Iinclude -o boot0.bin boot0.s # cd boot1; cargo build --release # # nasm -f bin -Iinclude -o boot1.bin boot1.s zero_disk: dd if=/dev/zero of=disk.bin bs=512 count=1000 partition_disk: parted --script disk.bin mklabel gpt parted --script disk.bin mkpart dummy1 34s 47s parted --script disk.bin type 1 e3c9e316-0b5c-4db8-817d-f92df00215ae parted --script disk.bin mkpart dummy2 64s 65s parted --script disk.bin type 2 e3c9e316-0b5c-4db8-817d-f92df00215ae parted --script disk.bin mkpart dummy3 66s 67s parted --script disk.bin type 3 e3c9e316-0b5c-4db8-817d-f92df00215ae parted --script disk.bin mkpart dummy4 68s 69s parted --script disk.bin type 4 e3c9e316-0b5c-4db8-817d-f92df00215ae parted --script disk.bin mkpart dummy5 48s 63s parted --script disk.bin type 5 0fc63daf-8483-4772-8e79-3d69d8477de4 # parted --script disk.bin mkpart stage2 70s 200s parted --script disk.bin mkpart stage2 70s 900s parted --script disk.bin type 6 fdffea69-3651-442f-a11d-88a09bf372dd # write_stage1: # dd if=/dev/zero of=disk.bin bs=440 count=1 conv=notrunc # dd if=boot0.bin of=disk.bin conv=notrunc # write_stage2: # # dd if=boot1.bin of=disk.bin bs=512 seek=70 conv=notrunc # dd if=boot1/target/target_protected/release/boot1 of=disk.bin bs=512 seek=70 conv=notrunc