-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathkernel.c
62 lines (42 loc) · 1.22 KB
/
kernel.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "kernel.h"
#include "screen.h"
#define TXT_BLANCO 0x07 //blanco sobre negro
char *memoria_video = (char *) 0xb8000;
unsigned int linea = 0;
void kernel_main(){
limpiar_pantalla();
imprimir_pantalla(".__ .__");
imprimir_pantalla("| |__ ____ | | _____ ____ ______");
imprimir_pantalla("| | \\ / _ \\| | \\__ \\ ______ / _ \\/ ___/");
imprimir_pantalla("| Y ( <_> ) |__/ __ \\_ /_____/ ( <_> )___ \\");
imprimir_pantalla("|___| /\\____/|____(____ / \\____/____ >");
imprimir_pantalla("\\/ \\/ \\/");
}
void limpiar_pantalla(){
unsigned int i = 0;
while (i < (80*25*2)){
memoria_video[i] = ' ';
i++;
memoria_video[i] = TXT_BLANCO;
i++;
}
}
unsigned int imprimir_pantalla(char *string){
unsigned int i = 0;
i = (linea*80*2);
while(*string != 0){
if (*string == '\n'){
linea++;
i = (linea*80*2);
*string++;
} else {
memoria_video[i] = *string;
*string++;
i++;
memoria_video[i] = TXT_BLANCO;
i++;
}
}
linea++;
return(1);
}