Initial git release
[ZeXOS.git] / apps / cd / main.c
blob296e642c52f426b437be7eb878ad68340ff19da7
2 #define WHITE_TXT 0x07 // white on black text
4 void acls ();
5 unsigned int printf (char *message, unsigned len, unsigned line);
6 extern void puts (unsigned char *text);
8 void *memcpy (void *dst_ptr, const void *src_ptr, unsigned count)
10 void *ret_val = dst_ptr;
11 const char *src = (const char *)src_ptr;
12 char *dst = (char *)dst_ptr;
14 /* copy up */
15 for(; count != 0; count--)
16 *dst++ = *src++;
17 return ret_val;
20 int main () // like main in a normal C program
22 /* acls ();
23 //k_clear_screen();
24 //init_video ();
25 unsigned char *text = 0x1000;
26 memcpy (text, "Welcome in test app", 19);
27 text[19] = '\0';
28 //k_printf("Hi!How's ?", 4, 0);
29 //k_printf("Tak to je moc hezkyy", 20, 5);
30 //puts (text);
31 printf (text, 19, 1);
32 printf (text, 19, 5);*/
33 //free (text);
35 return 1;
39 void acls () // clear the entire text screen
41 char *vidmem = (char *) 0xb8000;
42 unsigned int i=0;
44 while(i < (80*25*2))
46 vidmem[i] = ' ';
47 i++;
48 vidmem[i] = WHITE_TXT;
49 i++;
53 unsigned int printf (char *message, unsigned len, unsigned line) // the message and then the line #
55 char *vidmem = (char *) 0xb8000;
57 unsigned i = (line*80*2);
58 unsigned y = 0;
59 /* vidmem[i] = message[0];
60 vidmem[i+2] = message[1];
61 vidmem[i+4] = message[2];
62 vidmem[i+6] = message[3];*/
64 /*char *vidmem = (char *) 0xb8000;
65 unsigned int i = 0, y = 0;
67 i = (line*80*2);
69 for (y = 0; y < len; y ++)
71 vidmem[i] = message[y];
72 vidmem[i+1] = WHITE_TXT;
73 i += 2;
74 }*/
76 while (y < len)
78 if (message[y] == '\n') // check for a new line
80 line ++;
81 i = (line*80*2);
82 } else {
83 vidmem[i] = message[y];
84 i ++;
85 vidmem[i] = WHITE_TXT;
86 i ++;
89 y ++;
92 return 1;