void vga_print_hex(const uint32_t value) { int i = 0; char buffer[12]; itoa(value, buffer + 0, 16); while (buffer[i]) { vga_print_char(buffer[i++]); } }
void vga_print_dec(const uint32_t value) { int i = 0; char buffer[12]; itoa(value, buffer, 10); while (buffer[i]) { vga_print_char(buffer[i++]); } }
void kprint(const char* s) { while (*s != '\0') { if (*s == '\n') { vga_new_line(); } else { vga_print_char(*s); } ++s; } }
void vga_print_str(const char *str) { while (*str) { /* detect color attributes like \033\007 */ if (*str == '\033') { vga_set_attribute(*++str << 8 | (attribute & 0xf000)); ++str; } else { vga_print_char(*str++); } } }
size_t vga_write(uint8_t *data, size_t len) { size_t i; for (i = 0; *data && i < len; ++data, ++i) { if (*data == '\033') { ++data; ++i; vga_set_attribute(*data << 8 | (attribute & 0xf000)); } else { vga_print_char((const char)*data); } } return i; }