BigOS/user/cur_test.c
2023-01-15 15:17:15 +08:00

100 lines
2.0 KiB
C

#include "type.h"
#include "const.h"
#include "protect.h"
#include "string.h"
#include "proc.h"
#include "global.h"
#include "proto.h"
#include "stdio.h"
void delay(int time)
{
int i, j, k;
for (k = 0; k < time; k++)
{
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 10000; j++)
{
}
}
}
}
int main(int arg, char *argv[])
{
int stdin = open("dev_tty0", O_RDWR);
int stdout = open("dev_tty0", O_RDWR);
int stderr = open("dev_tty0", O_RDWR);
for (int i = 0; i < 30; i++)
{
for (int j = 0; j < 10; j++)
printf("%d*", i);
printf("\n");
}
delay(2);
// clear line and cursor to the start of line
printf("\x1b[2K\x1b[1G");
printf("\x1b[31mCursor Up and Cursor Forward\x1b[m");
delay(2);
for (int i = 1; i < 90; i++)
{
printf("\x1b[%dA\x1b[%dC", i, i);
i += i;
delay(1);
}
delay(3);
printf("\x1b[2K\x1b[1G");
printf("\x1b[32mCursor Down and Cursor Back\x1b[m");
delay(2);
for (int i = 1; i < 90; i++)
{
printf("\x1b[%dB\x1b[%dD", i, i);
i += i;
delay(1);
}
delay(3);
printf("\x1b[2K\x1b[G");
printf("\x1b[33mCursor Previous Line\x1b[m");
delay(2);
for (int i = 1; i < 90; i++)
{
printf("\x1b[%dF", i, i);
i += i;
delay(1);
}
// Scroll Up:5 lines
delay(1);
printf("\x1b[2K\x1b[G");
printf("\x1b[34mScroll Up:5 lines\x1b[m");
delay(6);
printf("\x1b[5S");
delay(10);
// Scroll Up:27 lines
printf("\x1b[2K\x1b[G");
printf("\x1b[34mScroll Up:27 lines\x1b[m");
delay(6);
printf("\x1b[27S");
delay(10);
// Erase in Display n=3
printf("\x1b[2K\x1b[G");
printf("\x1b[35mErase in Display n=3 \x1b[m");
delay(6);
printf("\x1b[3J");
delay(10);
// Erase in Display n=0
printf("\x1b[2K\x1b[G");
printf("\x1b[36mErase in Display n=1 \x1b[m");
delay(6);
printf("\x1b[1J");
while (1)
;
return 0;
}