fixed endianess bug in printf
authorJohn Tsiombikas <nuclear@member.fsf.org>
Fri, 5 Jan 2024 03:50:00 +0000 (05:50 +0200)
committerJohn Tsiombikas <nuclear@member.fsf.org>
Fri, 5 Jan 2024 03:50:00 +0000 (05:50 +0200)
.gdbinit [new file with mode: 0644]
Makefile
src/debug.h
src/libc/stdint.h [new file with mode: 0644]
src/libc/stdio.c
src/main.c

diff --git a/.gdbinit b/.gdbinit
new file mode 100644 (file)
index 0000000..e31d5b3
--- /dev/null
+++ b/.gdbinit
@@ -0,0 +1 @@
+target remote | blastem life.bin -D
index 3c55c8f..266226b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -18,7 +18,7 @@ opt = -O2
 def = -D__NO_CTYPE
 inc = -I. -Isrc -Isrc/libc
 
-TC = m68k-linux-gnu-
+TC = m68k-elf-
 
 CC = $(TC)gcc
 AS = $(TC)as
index 491b288..76d07f9 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef DEBUG_H_
 #define DEBUG_H_
 
-#include <inttypes.h>
+#include <stdint.h>
 
 extern uint32_t dbgval[];
 
diff --git a/src/libc/stdint.h b/src/libc/stdint.h
new file mode 100644 (file)
index 0000000..a50ae78
--- /dev/null
@@ -0,0 +1,16 @@
+#ifndef STDINT_H_
+#define STDINT_H_
+
+typedef signed char int8_t;
+typedef short int16_t;
+typedef long int32_t;
+
+typedef unsigned char uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned long uint32_t;
+
+typedef long intptr_t;
+typedef unsigned long uintptr_t;
+
+
+#endif /* STDINT_H_ */
index ce8bf5c..5950503 100644 (file)
@@ -107,7 +107,7 @@ static int intern_printf(int out, char *buf, size_t sz, const char *fmt, va_list
        int base = 10;
        int alt = 0;
        int fwidth = 0;
-       int padc = ' ';
+       char padc = ' ';
        int sign = 0;
        int left_align = 0;
        int hex_caps = 0;
@@ -175,7 +175,7 @@ static int intern_printf(int out, char *buf, size_t sz, const char *fmt, va_list
                                                padc = ' ';
                                        }
                                        for(i=slen; i<fwidth; i++) {
-                                               bwrite(out, BUF(buf), SZ(sz), (char*)&padc, 1);
+                                               bwrite(out, BUF(buf), SZ(sz), &padc, 1);
                                                cnum++;
                                        }
                                        if(!left_align) {
@@ -206,7 +206,7 @@ static int intern_printf(int out, char *buf, size_t sz, const char *fmt, va_list
                                                padc = ' ';
                                        }
                                        for(i=slen; i<fwidth; i++) {
-                                               bwrite(out, BUF(buf), SZ(sz), (char*)&padc, 1);
+                                               bwrite(out, BUF(buf), SZ(sz), &padc, 1);
                                                cnum++;
                                        }
                                        if(!left_align) {
index 8550c67..425319d 100644 (file)
@@ -22,9 +22,9 @@ int main(void)
        dna_init();
 
        for(;;) {
-               dbg_setcursor(30, 0);
+               dbg_setcursor(32, 0);
                for(i=0; i<4; i++) {
-                       printf("%08x\n", (unsigned int)dbgval[i]);
+                       printf("%04x\n", (unsigned int)dbgval[i]);
                }
                spr_begin();