@@ -31,33 +31,6 @@ int get_offset_col(int offset);
3131 * Если col, row отрицательные, то используем текущий оффсет
3232 */
3333void kprint_at (char * message , int col , int row , int color ) {
34- struct {
35- int clrcode ;
36- int color ;
37- } colors [] = {
38- // структура цветов, clrcode - код цвета для передачи и color - сам цвет
39- {.clrcode = WHITE_ON_BLACK_CLR_CODE , .color = WHITE_ON_BLACK },
40- {.clrcode = BLUE_ON_BLACK_CLR_CODE , .color = BLUE_ON_BLACK },
41- {.clrcode = GREEN_ON_BLACK_CLR_CODE , .color = GREEN_ON_BLACK },
42- {.clrcode = CYAN_ON_BLACK_CLR_CODE , .color = CYAN_ON_BLACK },
43- {.clrcode = RED_ON_BLACK_CLR_CODE , .color = RED_ON_BLACK },
44- {.clrcode = MAGENTA_ON_BLACK_CLR_CODE , .color = MAGENTA_ON_BLACK },
45- {.clrcode = BROWN_ON_BLACK_CLR_CODE , .color = BROWN_ON_BLACK },
46- {.clrcode = LGREY_ON_BLACK_CLR_CODE , .color = LGREY_ON_BLACK },
47- {.clrcode = DGREY_ON_BLACK_CLR_CODE , .color = DGREY_ON_BLACK },
48- {.clrcode = LBLUE_ON_BLACK_CLR_CODE , .color = LBLUE_ON_BLACK },
49- {.clrcode = LGREEN_ON_BLACK_CLR_CODE , .color = LGREEN_ON_BLACK },
50- {.clrcode = LCYAN_ON_BLACK_CLR_CODE , .color = LCYAN_ON_BLACK },
51- {.clrcode = LRED_ON_BLACK_CLR_CODE , .color = LRED_ON_BLACK },
52- {.clrcode = LMAGENTA_ON_BLACK_CLR_CODE , .color = LMAGENTA_ON_BLACK },
53- {.clrcode = YELLOW_ON_BLACK_CLR_CODE , .color = YELLOW_ON_BLACK },
54- {.clrcode = WHITE_ON_BLUE_CLR_CODE , .color = WHITE_ON_BLUE },
55- {.clrcode = WHITE_ON_RED_CLR_CODE , .color = WHITE_ON_RED },
56- {.clrcode = RED_ON_WHITE_CLR_CODE , .color = RED_ON_WHITE },
57- {.clrcode = BLUE_ON_WHITE_CLR_CODE , .color = BLUE_ON_WHITE },
58- };
59-
60- const int colors_length = sizeof (colors ) / sizeof (colors [0 ]);
6134
6235 /* Установка курсора и оффсета если если col, row отрицательные */
6336 int offset ;
@@ -71,12 +44,7 @@ void kprint_at(char* message, int col, int row, int color) {
7144 /* "Прокрутка" сообщения и его вывод */
7245 int i = 0 ;
7346 while (message [i ] != 0 ) {
74- for (int j = 0 ; j < colors_length ; ++ j ) {
75- if (color == colors [j ].clrcode ) {
76- offset = print_char (message [i ++ ], col , row , colors [j ].color );
77- break ;
78- }
79- }
47+ offset = print_char (message [i ++ ], col , row , color );
8048
8149 /* Вычисление row/col для следующей итерации */
8250 row = get_offset_row (offset );
@@ -85,13 +53,13 @@ void kprint_at(char* message, int col, int row, int color) {
8553}
8654
8755void kprint (char * message ) {
88- // Вывод текста. Цвет по умолчанию - белый на черном (код 0)
89- kprint_at (message , -1 , -1 , 0 );
56+ // Вывод текста. Цвет по умолчанию - белый на черном
57+ kprint_at (message , -1 , -1 , WHITE_ON_BLACK );
9058}
9159
9260void kprintln (char * message ) {
93- // Вывод текста. Цвет по умолчанию - белый на черном (код 0)
94- kprint_at (message , -1 , -1 , 0 );
61+ // Вывод текста. Цвет по умолчанию - белый на черном
62+ kprint_at (message , -1 , -1 , WHITE_ON_BLACK );
9563 kprint ("\n" );
9664}
9765
@@ -141,10 +109,10 @@ void panic_red_screen(char* title, char* description) {
141109
142110 set_cursor_offset (get_offset (0 , 0 ));
143111
144- kprint_colored ("KINTSUGIOS KERNEL PANIC RED SCREEN\n\n" , WHITE_ON_RED_CLR_CODE );
145- kprint_colored (title , WHITE_ON_RED_CLR_CODE );
146- kprint_colored ("\n\n" , WHITE_ON_RED_CLR_CODE );
147- kprint_colored (description , WHITE_ON_RED_CLR_CODE );
112+ kprint_colored ("KINTSUGIOS KERNEL PANIC RED SCREEN\n\n" , WHITE_ON_RED );
113+ kprint_colored (title , WHITE_ON_RED );
114+ kprint_colored ("\n\n" , WHITE_ON_RED );
115+ kprint_colored (description , WHITE_ON_RED );
148116
149117 __asm__ volatile ("hlt" );
150118}
0 commit comments