For a computer architecture project I want to write some bootable code to do something simple (I thought of a snake game, if that's not too complicated). I thought that writing a small bootloader to pass control to a C program shouldn't be too hard, but I can't find any accurate info.
I'm looking for some advanced guide for x86 assembly properly describing protected mode (I still can't tell if I need to switch to it, my first instinct is that I don't), how a computer boots, reading from the keyboard and printing to screen.
I can write in assembly and pass it gcc to write small programs, I just need the booting and interfacing information. Any info is appreciated, including books.