initial commit

This commit is contained in:
2025-08-02 06:09:31 +03:00
commit 00015ffc03
85 changed files with 62051 additions and 0 deletions

65
FIRMWARE/print.c Normal file
View File

@@ -0,0 +1,65 @@
#include <stdarg.h>
void print_string(const char* s) {
for(const char* p = s; *p; ++p) {
putchar(*p);
}
}
int puts(const char* s) {
print_string(s);
putchar('\n');
return 1;
}
void print_dec(int val) {
char buffer[255];
char *p = buffer;
if(val < 0) {
putchar('-');
print_dec(-val);
return;
}
while (val || p == buffer) {
*(p++) = val % 10;
val = val / 10;
}
while (p != buffer) {
putchar('0' + *(--p));
}
}
void print_hex(unsigned int val) {
print_hex_digits(val, 8);
}
void print_hex_digits(unsigned int val, int nbdigits) {
for (int i = (4*nbdigits)-4; i >= 0; i -= 4) {
putchar("0123456789ABCDEF"[(val >> i) % 16]);
}
}
int printf(const char *fmt,...)
{
va_list ap;
for(va_start(ap, fmt);*fmt;fmt++)
{
if(*fmt=='%')
{
fmt++;
if(*fmt=='s') print_string(va_arg(ap,char *));
else if(*fmt=='x') print_hex(va_arg(ap,int));
else if(*fmt=='d') print_dec(va_arg(ap,int));
else if(*fmt=='c') putchar(va_arg(ap,int));
else putchar(*fmt);
}
else putchar(*fmt);
}
va_end(ap);
return 0;
}