Browse Source

Add cursor modification methods

master
garritfra 5 years ago
parent
commit
d20e83e973
  1. 19
      fb.c
  2. 4
      fb.h

19
fb.c

@ -16,9 +16,24 @@ void fb_move_cursor(unsigned short pos)
}
int fb_write(char *buf, unsigned int len) {
for(int i = 0; i <= (int)len; i++) {
fb_write_cell((int)(i * 2), buf[i], 0, 15);
fb_move_cursor(i);
fb_write_cell(get_cursor_position() * 2, buf[i], 0, 15);
advance_cursor();
}
return 0;
}
void advance_cursor(void) {
fb_move_cursor(get_cursor_position() + 1);
}
unsigned short get_cursor_position(void)
{
unsigned short pos = 0;
outb(0x3D4, 0x0F);
pos |= inb(0x3D5);
outb(0x3D4, 0x0E);
pos |= ((unsigned short)inb(0x3D5)) << 8;
return pos;
}

4
fb.h

@ -35,4 +35,8 @@ void fb_write_cell(unsigned int i, char c, unsigned char fg, unsigned char bg);
*/
void fb_move_cursor(unsigned short pos);
unsigned short get_cursor_position(void);
void advance_cursor(void);
#endif /* INCLUDE_IO_H */
Loading…
Cancel
Save