os_essentials 0.0.3

A collection of tools for building simple educational operating systems in Rust in an x86 system. NOTE: MEANT TO BE BAREMETAL, YOU MUST HAVE compiler-buildtins-mem, core, compiler_builtins, alloc and a suited target, a vm or physical computer and a bootable usb required to test.
Documentation
// ps2key.rs

/// This module maps the keys to user defined key names. Import it to be able to decode the scan codes:)

// Number row keys
pub const KEY_1: u8 = 0x02;
pub const KEY_2: u8 = 0x03;
pub const KEY_3: u8 = 0x04;
pub const KEY_4: u8 = 0x05;
pub const KEY_5: u8 = 0x06;
pub const KEY_6: u8 = 0x07;
pub const KEY_7: u8 = 0x08;
pub const KEY_8: u8 = 0x09;
pub const KEY_9: u8 = 0x0A;
pub const KEY_0: u8 = 0x0B;

// Special characters
pub const KEY_MINUS: u8 = 0x0C;
pub const KEY_EQUALS: u8 = 0x0D;
pub const KEY_BACKSPACE: u8 = 0x0E;
pub const KEY_TAB: u8 = 0x0F;
pub const KEY_Q: u8 = 0x10;
pub const KEY_W: u8 = 0x11;
pub const KEY_E: u8 = 0x12;
pub const KEY_R: u8 = 0x13;
pub const KEY_T: u8 = 0x14;
pub const KEY_Y: u8 = 0x15;
pub const KEY_U: u8 = 0x16;
pub const KEY_I: u8 = 0x17;
pub const KEY_O: u8 = 0x18;
pub const KEY_P: u8 = 0x19;
pub const KEY_LEFT_BRACKET: u8 = 0x1A;
pub const KEY_RIGHT_BRACKET: u8 = 0x1B;
pub const KEY_ENTER: u8 = 0x1C;
pub const KEY_LEFT_CTRL: u8 = 0x1D;
pub const KEY_A: u8 = 0x1E;
pub const KEY_S: u8 = 0x1F;
pub const KEY_D: u8 = 0x20;
pub const KEY_F: u8 = 0x21;
pub const KEY_G: u8 = 0x22;
pub const KEY_H: u8 = 0x23;
pub const KEY_J: u8 = 0x24;
pub const KEY_K: u8 = 0x25;
pub const KEY_L: u8 = 0x26;
pub const KEY_SEMICOLON: u8 = 0x27;
pub const KEY_APOSTROPHE: u8 = 0x28;
pub const KEY_GRAVE: u8 = 0x29;
pub const KEY_LEFT_SHIFT: u8 = 0x2A;
pub const KEY_BACKSLASH: u8 = 0x2B;
pub const KEY_Z: u8 = 0x2C;
pub const KEY_X: u8 = 0x2D;
pub const KEY_C: u8 = 0x2E;
pub const KEY_V: u8 = 0x2F;
pub const KEY_B: u8 = 0x30;
pub const KEY_N: u8 = 0x31;
pub const KEY_M: u8 = 0x32;
pub const KEY_COMMA: u8 = 0x33;
pub const KEY_DOT: u8 = 0x34;
pub const KEY_SLASH: u8 = 0x35;
pub const KEY_RIGHT_SHIFT: u8 = 0x36;
pub const KEY_KP_MULTIPLY: u8 = 0x37;
pub const KEY_ALT: u8 = 0x38;
pub const KEY_SPACE: u8 = 0x39;
pub const KEY_CAPS_LOCK: u8 = 0x3A;
pub const KEY_F1: u8 = 0x3B;
pub const KEY_F2: u8 = 0x3C;
pub const KEY_F3: u8 = 0x3D;
pub const KEY_F4: u8 = 0x3E;
pub const KEY_F5: u8 = 0x3F;
pub const KEY_F6: u8 = 0x40;
pub const KEY_F7: u8 = 0x41;
pub const KEY_F8: u8 = 0x42;
pub const KEY_F9: u8 = 0x43;
pub const KEY_F10: u8 = 0x44;
pub const KEY_NUM_LOCK: u8 = 0x45;
pub const KEY_SCROLL_LOCK: u8 = 0x46;
pub const KEY_KP_7: u8 = 0x47;
pub const KEY_KP_8: u8 = 0x48;
pub const KEY_KP_9: u8 = 0x49;
pub const KEY_KP_SUBTRACT: u8 = 0x4A;
pub const KEY_KP_4: u8 = 0x4B;
pub const KEY_KP_5: u8 = 0x4C;
pub const KEY_KP_6: u8 = 0x4D;
pub const KEY_KP_ADD: u8 = 0x4E;
pub const KEY_KP_1: u8 = 0x4F;
pub const KEY_KP_2: u8 = 0x50;
pub const KEY_KP_3: u8 = 0x51;
pub const KEY_KP_0: u8 = 0x52;
pub const KEY_KP_DECIMAL: u8 = 0x53;
pub const KEY_OEM_102: u8 = 0x56;
pub const KEY_F11: u8 = 0x57;
pub const KEY_F12: u8 = 0x58;
pub const KEY_F13: u8 = 0x64;
pub const KEY_F14: u8 = 0x65;
pub const KEY_F15: u8 = 0x66;
pub const KEY_KANA: u8 = 0x70;
pub const KEY_ABNT_C1: u8 = 0x73;
pub const KEY_CONVERT: u8 = 0x79;
pub const KEY_NOCONVERT: u8 = 0x7B;
pub const KEY_YEN: u8 = 0x7D;
pub const KEY_ABNT_C2: u8 = 0x7E;
pub const KEY_NUMPAD_EQUALS: u8 = 0x8D;
pub const KEY_PREV_TRACK: u8 = 0x90;
pub const KEY_AT: u8 = 0x91;
pub const KEY_COLON: u8 = 0x92;
pub const KEY_UNDERLINE: u8 = 0x93;
pub const KEY_KP_COMMA: u8 = 0xB3;
pub const KEY_KP_DIVIDE: u8 = 0xB5;
pub const KEY_SYSRQ: u8 = 0xB7;
pub const KEY_RMENU: u8 = 0xB8;
pub const KEY_PAUSE: u8 = 0xC5;
pub const KEY_HOME: u8 = 0xC7;
pub const KEY_UP: u8 = 0xC8;
pub const KEY_PRIOR: u8 = 0xC9;
pub const KEY_LEFT: u8 = 0xCB;
pub const KEY_RIGHT: u8 = 0xCD;
pub const KEY_END: u8 = 0xCF;
pub const KEY_DOWN: u8 = 0xD0;
pub const KEY_NEXT: u8 = 0xD1;
pub const KEY_INSERT: u8 = 0xD2;
pub const KEY_DELETE: u8 = 0xD3;
pub const KEY_LWIN: u8 = 0xDB;
pub const KEY_RWIN: u8 = 0xDC;
pub const KEY_APPS: u8 = 0xDD;
pub const KEY_POWER: u8 = 0xDE;
pub const KEY_SLEEP: u8 = 0xDF;
pub const KEY_ESC: u8 = 0x01;