u8int i8042_enable_devices() { //7 if ( DEBUG_KBD ) { printf ( "enabling devices..." ); } i8042_write_command ( 0xAE ); i8042_write_command ( 0x20 ); u8int stat = i8042_read_data(); stat |= 1 << 0; stat |= 1 << 1; i8042_write_command ( 0x60 ); i8042_write_data ( stat ); return 0; }
u8int i8042_set_controller_config_byte() { //3 if ( DEBUG_KBD ) { printf ( "setting controller config byte" ); } i8042_write_command ( 0x20 ); status = i8042_read_data(); status |= 1 << 0; status |= 1 << 1; status |= 1 << 6; i8042_write_command ( 0x60 ); i8042_write_data ( status ); if ( DEBUG_KBD && ! ( status & ( 1 << 5 ) ) ) { printf ( "DUAL PS/2 = YES\n" ); //TODO check if this is right } return 0; }
void i8042_write(int port, uint8_t data) { if (port) i8042_write_command(I8042_CMD_WRITE_PORT_2); i8042_write_data(data); }
inline void i8042_write_ram(uint8_t addr, uint8_t data) { i8042_write_command(I8042_CMD_WRITE_RAM(addr)); i8042_write_data(data); }