# Bare metal programming sandbox

This repo is a sandbox for experimenting with bare metal code and other
low-level programming concerns.

This repo contains the following executables:

* `gamarjoba_munde` - x86-64 linux binary that prints the text "Gamarjoba, Munde"
* `baremetal_gamarjoba` - bare-metal x86 program run with QEMU
* `keyboard` - reads keycode information from keyboard. Also uses both Rust and C includes.
* `lightshow` - NOTE: Broken - an attempt at a substantial #[no_core] rust object file, currently crashes rustc
* `rust_kernel` - me following the 2015 version  of the Phil Opp rust bare metal tutorial. Kept around for posterity

# Useful links

The following projects are inspirational:
* https://github.com/programble/bare-metal-tetris
* http://0xax.blogspot.com/2014/09/say-hello-to-x64-assembly-part-3.html

## x86 instruction set reference:
* http://x86.renejeschke.de/
* http://www.cs.virginia.edu/~evans/cs216/guides/x86.html#registers
