4 (C) 2014-2015 VOSystems.
7 #include<Diverge/kstdio.h>
8 #include<Diverge/diverge.h>
9 #include<Diverge/types.h>
10 #include<Diverge/string.h>
13 static unsigned short *ch_vram;
14 static unsigned short X,Y;
15 static unsigned char attr;
17 #define SCREEN_START 0xb8000
18 #define SCREEN_END 0xc0000
20 void ClearScreen(void)
22 ch_vram=(unsigned short*)0xb8000;
24 while(ch_vram<(unsigned short*)0xc0000)
27 *ch_vram++ = (((Black)<<8) | ' ');
29 ch_vram=(unsigned short*)0xb8000;
36 strcpy(kstdout.sign,STDOUT_SIGN);
38 kstdout.data_cnt = NULL;
39 kstdout.buf_addr = NULL;
40 kstdout.err_flag = NULL;
41 kstdout.file_desc = 1;
43 strcpy(kstdin.sign,STDIN_SIGN);
45 kstdin.data_cnt = NULL;
46 kstdin.buf_addr = NULL;
47 kstdin.err_flag = NULL;
50 strcpy(kstderr.sign,STDERR_SIGN);
52 kstderr.data_cnt = NULL;
53 kstderr.buf_addr = NULL;
54 kstderr.err_flag = NULL;
55 kstderr.file_desc = 2;
63 DisplayColorChangeChar(White);
69 void DisplayOutputChar(const char ch)
72 ch_vram+=(80-X);/*80 charactors * 2byte - X charactors * 2 byte*/
77 *ch_vram++ = (((attr)<<8) | ' ');
78 *ch_vram++ = (((attr)<<8) | ' ');
84 *ch_vram-- = (unsigned short)NULL;
91 *ch_vram = (unsigned short)NULL;
98 *ch_vram++ = (((attr)<<8) | ch);
103 AutoMoveCursol(X, Y);
119 void ShiftDisplayChar(unsigned int len)
121 unsigned short *sc1,*sc2;
122 sc1=0xb8000; sc2=0xb8000+(80*2);
123 while(sc2<=0xc0000)*sc1++ = *sc2++;
126 ShiftDisplayChar(len);
130 void DisplayColorChangeChar(char att)