53 lines
955 B
C
53 lines
955 B
C
#include "stlio.h"
|
|
|
|
static const char _line[52] = {" "};
|
|
// We are assuming null-terminated strings here
|
|
u64 strlen(char* buffer) {
|
|
char* c;
|
|
for(c = buffer; *c != '\0'; c++); // LULW
|
|
return (u64)(c - buffer);
|
|
}
|
|
void putch(const char c) {
|
|
write_cell_fb(c, Green, White);
|
|
}
|
|
|
|
u64 write(const char* buffer, const u64 size) {
|
|
u64 i;
|
|
for(i = 0; i < size; i++) {
|
|
if(buffer[i] == '\n') {
|
|
write(_line, sizeof(_line));
|
|
}
|
|
else {
|
|
write_cell_fb(buffer[i], Green, White);
|
|
}
|
|
}
|
|
return i;
|
|
}
|
|
|
|
u64 read(const u64 n) {
|
|
// read n bytes from keyboard
|
|
return n;
|
|
}
|
|
|
|
void printf(const s8* fmt, ...) {
|
|
u64 i = 0;
|
|
char c = *fmt;
|
|
while(c != '\0') {
|
|
/* Check for some kind of contol character
|
|
* for now we just have \n and \t
|
|
*/
|
|
switch(c) {
|
|
case '\n': {
|
|
write(_line, sizeof(_line));
|
|
}
|
|
case '%': {
|
|
continue; // eventually there will be more support but for now lmao nah
|
|
}
|
|
default: {
|
|
putch(fmt[i]);
|
|
i++;
|
|
}
|
|
}
|
|
}
|
|
}
|