Files
low-level-programming/c_keyboard.c
greg 05dd3ff9e8 Compile rust
Write a simple rust function, call it from C
2015-09-20 23:59:06 -07:00

32 lines
722 B
C

extern int write_to_coord(int x, int y, int x86_specifier);
extern int clear(int x86_specifier);
extern int rust_get_int();
void print_int(int, int);
void c_entry() {
write_to_coord(1,1, (0xf0 << 8) | 'm');
int from_rust = rust_get_int();
print_int(from_rust, 10);
}
void print_int(int input, int coord) {
#define k(x) (0xf0 << 8) | x
while (input > 0) {
int output = '0';
char s = input & 0xf;
if (s <= 9) {
output += s;
} else {
output = 'a' + (s - 10);
}
write_to_coord(15, coord, k(output));
input = input >> 4;
coord--;
}
write_to_coord(15, coord--, k('x'));
write_to_coord(15, coord, k('0'));
}