@@ -68,24 +68,41 @@ struct limine_memmap_response* memmap_info;
68
68
69
69
extern fs_node_t * fs_root ;
70
70
extern initrd_header_t * initrd_header ;
71
-
71
+ static uint64_t cols ;
72
+ static uint64_t rows ;
72
73
extern void term_write (const char * string , size_t length ) {
73
74
terminal_request .response -> write (main_terminal , string , length );
74
75
}
75
76
76
77
void flushFrmbuffer (void ) {
77
78
asm volatile ("" ::: "memory" );
78
79
}
80
+
81
+ void clear_Txt (void ) {
82
+ char * space_line = " " ; // 80 spaces
83
+ for (size_t raw = 0 ; raw < cols ; raw ++ ) {
84
+ term_write (space_line , rows );
85
+ }
86
+ term_write ("\033[H" , 3 );
87
+ }
88
+
89
+ extern void term_clear (void ) {
90
+ fb_clear (0x000000 );
91
+ flushFrmbuffer (); // pllllspplg troung just sone useless txt :d
92
+ clear_TxT ();
93
+
94
+ }
95
+
79
96
// Kernel entrypoint
80
97
void _start (void ) {
81
98
// set up terminal
82
99
main_terminal = terminal_request .response -> terminals [0 ];
83
100
fb_init ();
84
101
// Access RSDP for ACPI
85
102
86
- uint64_t cols = main_terminal -> columns ;
87
- uint64_t rows = main_terminal -> rows ;
88
- uint64_t results = cols * rows ;
103
+ cols = main_terminal -> columns ;
104
+ rows = main_terminal -> rows ;
105
+
89
106
rsdp_descriptor = (RSDPDescriptor20 * ) rsdp_request .response -> address ;
90
107
if (rsdp_descriptor -> descriptor10 .revision == 2 )
91
108
{
@@ -248,15 +265,6 @@ void _start(void) {
248
265
// At this point, the entire screen is black, and all text or content is removed.
249
266
250
267
251
-
252
-
253
-
254
-
255
- // Get a pointer to the framebuffer's address.
256
-
257
-
258
- fb_clear (0x000000 );
259
- flushFrmbuffer ();
260
268
doIt ();
261
269
262
270
for (;;)
0 commit comments