From 8560bf6d5b09ab979145e8471aa318e14d4c727e Mon Sep 17 00:00:00 2001 From: Anton Lydike Date: Sun, 22 Aug 2021 19:54:58 +0200 Subject: [PATCH] uncrustified example programs --- programs/simple.c | 43 +++++++++++++++++++------------------ programs/spawn.c | 54 +++++++++++++++++++++++++---------------------- 2 files changed, 52 insertions(+), 45 deletions(-) diff --git a/programs/simple.c b/programs/simple.c index 81df03b..2637b7f 100644 --- a/programs/simple.c +++ b/programs/simple.c @@ -1,26 +1,27 @@ - #define TEXT_IO_ADDR 0xff0000 #define TEXT_IO_BUFLEN 64 void dbgln(char*, int); -char* itoa (int value, char* str, int base); +char* itoa(int value, char* str, int base); char text[48] = "the number is "; -int main() { +int main() +{ dbgln("main", 4); int a = 144; + while (1) { for (int i = 0; i < 10000; i++) { for (int j = 0; j < 10000; j++) { - a ^= (((a<<16) ^ a) & i) << 4; - a ^= ((a & (j << 4)) >> 3) ^ (i*j); + a ^= (((a << 16) ^ a) & i) << 4; + a ^= ((a & (j << 4)) >> 3) ^ (i * j); } itoa(a, &text[14], 16); dbgln(text, 32); } - __asm__("ebreak"); + __asm__ ("ebreak"); } return a; @@ -50,7 +51,7 @@ void dbgln(char* text, int len) } char alpha[16] = "0123456789abcdef"; -char* itoa (int value, char* str, int base) +char* itoa(int value, char* str, int base) { if (base > 16 || base < 2) { *str++ = '?'; @@ -64,6 +65,7 @@ char* itoa (int value, char* str, int base) int digits = 0; int num = 0; + // reverse number do { num = num * base; @@ -78,27 +80,28 @@ char* itoa (int value, char* str, int base) value = value / base; *str++ = alpha[num]; digits--; - } - while (digits > 0); + }while (digits > 0); return str; } -void _start() { - __asm__( - ".option push\n" - ".option norelax\n" - " la gp, _gp\n" - ".option pop\n" +void _start() +{ + __asm__ ( + ".option push\n" + ".option norelax\n" + " la gp, _gp\n" + ".option pop\n" ); dbgln("start", 5); int exit_code = main(); + dbgln("end", 3); - __asm__( - "mv a0, %0\n" - "li a7, 5\n" - "ecall" :: "r"(exit_code) + __asm__ ( + "mv a0, %0\n" + "li a7, 5\n" + "ecall" :: "r"(exit_code) ); -} \ No newline at end of file +} diff --git a/programs/spawn.c b/programs/spawn.c index de6a624..b2f4721 100644 --- a/programs/spawn.c +++ b/programs/spawn.c @@ -1,26 +1,27 @@ - #define TEXT_IO_ADDR 0xff0000 #define TEXT_IO_BUFLEN 64 void dbgln(char*, int); -char* itoa (int value, char* str, int base); +char* itoa(int value, char* str, int base); int thread(void* args); -int main() { +int main() +{ dbgln("main", 4); int arg = 144; - __asm__( - "mv a0, %0\n" - "mv a1, %1\n" - "li a7, 1\n" - "ecall" :: "r"(thread), "r"(&arg) + __asm__ ( + "mv a0, %0\n" + "mv a1, %1\n" + "li a7, 1\n" + "ecall" :: "r"(thread), "r"(&arg) ); - while (arg == 144) {} - __asm__("ebreak"); + while (arg == 144) { + } + __asm__ ("ebreak"); return 0; } @@ -30,7 +31,8 @@ int thread(void* args) int arg = *((int*) args); char buff[32] = "the magic number is: "; char* end = itoa(arg, &buff[21], 10); - dbgln(buff, (int)(end - buff)); + + dbgln(buff, (int) (end - buff)); // *((int*) args) = 0; @@ -61,7 +63,7 @@ void dbgln(char* text, int len) } char alpha[16] = "0123456789abcdef"; -char* itoa (int value, char* str, int base) +char* itoa(int value, char* str, int base) { if (base > 16 || base < 2) { *str++ = '?'; @@ -75,6 +77,7 @@ char* itoa (int value, char* str, int base) int digits = 0; int num = 0; + // reverse number do { num = num * base; @@ -89,27 +92,28 @@ char* itoa (int value, char* str, int base) value = value / base; *str++ = alpha[num]; digits--; - } - while (digits > 0); + }while (digits > 0); return str; } -void _start() { - __asm__( - ".option push\n" - ".option norelax\n" - " la gp, _gp\n" - ".option pop\n" +void _start() +{ + __asm__ ( + ".option push\n" + ".option norelax\n" + " la gp, _gp\n" + ".option pop\n" ); dbgln("start", 5); int exit_code = main(); + dbgln("end", 3); - __asm__( - "mv a0, %0\n" - "li a7, 5\n" - "ecall" :: "r"(exit_code) + __asm__ ( + "mv a0, %0\n" + "li a7, 5\n" + "ecall" :: "r"(exit_code) ); -} \ No newline at end of file +}