static void on_press(scancode_t scan) { switch (scan) { // SCAN_ESC case 0x01: poll_exit = true; return; // SCAN_DEL case 0x53: print_serial_info(COM1_PORT); return; // SCAN_F1 case 0x3b: serialcode_mode = !serialcode_mode; return; } char c = translate_from_scan(null, scan); if (c == 0) return; while (! serial_is_transmit_empty(COM1_PORT)); if (c == '\n') serial_write(COM1_PORT, '\r'); while (! serial_is_transmit_empty(COM1_PORT)); serial_write(COM1_PORT, c); vcsa_set_attribute(CONSOLE_VCSA, 0x0C); cprint(c); }
void serial_write_one(char a) { while(serial_is_transmit_empty(SERIAL_COM1) == 0); outb(SERIAL_COM1,a); }
void serial_write(uint16_t serial_port, uint8_t a) { while (serial_is_transmit_empty(serial_port) == 0); outb(serial_port,a); }