bootloaders
bootloaders copied to clipboard
Bootloader exploration
Bootloader fun
Code is buggy! Requires nasm and qemu (on macOS or Linux).
Example:
./scripts/build_and_run.sh snake
Notes
- How DIV works: https://stackoverflow.com/questions/8021772/assembly-language-how-to-do-modulo
- ASCII table: https://www.rapidtables.com/code/text/ascii-table.html
- BIOS map: https://www.tau.ac.il/~flaxer/edu/course/processcontrol/BiosDataArea.pdf
- BIOS map 2: http://www.techhelpmanual.com/93-rom_bios_variables.html
- NASM user manul: https://nasm.us/doc/nasmdoc4.html
- Interpreting arrow key presses: https://stackoverflow.com/questions/46754566/how-do-i-check-if-the-arrow-keys-are-pressed-in-assembly-16-bits-bare-bones
- Reading from the key buffer: https://groups.google.com/g/alt.lang.asm/c/0ZM7qToF55w/m/yxuiA3ibrgEJ
- Resetting the key buffer: https://retrocomputing.stackexchange.com/questions/9484/whats-the-fastest-way-to-ignore-keypresses
- int 16h keyboard service API: https://stanislavs.org/helppc/int_16.html
- int 10h video service API: https://stanislavs.org/helppc/int_10.html
- another bio api: http://www.ctyme.com/intr/rb-0098.htm
- snake in a tweet: https://www.quaxio.com/bootloader_retro_game_tweet/
- bootloader tutorial: http://3zanders.co.uk/2017/10/13/writing-a-bootloader/
- bootlaoder tutorial: https://www.briansteffens.com/2020/01/15/hello-world-from-a-bootloader.html
- bootloader tutorial: https://www.ired.team/miscellaneous-reversing-forensics/windows-kernel-internals/writing-a-custom-bootloader
- bootloader graphics: https://0x00sec.org/t/realmode-assembly-writing-bootable-stuff-part-5/3667
- 2048 game bootloader: https://crocidb.com/post/bootsector-game/