toaruos/apps/cursor-off.c

31 lines
1000 B
C

/* vim: tabstop=4 shiftwidth=4 noexpandtab
* This file is part of ToaruOS and is released under the terms
* of the NCSA / University of Illinois License - see LICENSE.md
* Copyright (C) 2016-2018 K. Lange
*
* cursor-off - Disables the VGA text mode cursor.
*
* This is an old tool that calls a special system call
* to change the VGA text-mode cursor position. The VGA
* terminal renders its own cursor in software, so we
* try to move the hardware cursor off screen so it doesn't
* interfere with the rest of the terminal and look weird.
*/
#include <unistd.h>
#include <fcntl.h>
#include <sys/sysfunc.h>
int main(int argc, char * argv[]) {
int fd = open("/dev/port", O_RDWR);
if (fd < 0) return 1;
lseek(fd, 0x3D4, SEEK_SET);
write(fd, (unsigned char[]){14}, 1);
lseek(fd, 0x3D5, SEEK_SET);
write(fd, (unsigned char[]){0xFF}, 1);
lseek(fd, 0x3D4, SEEK_SET);
write(fd, (unsigned char[]){15}, 1);
lseek(fd, 0x3D5, SEEK_SET);
write(fd, (unsigned char[]){0xFF}, 1);
return 0;
}