aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/base.h3
-rw-r--r--vm/runtime.c32
2 files changed, 31 insertions, 4 deletions
diff --git a/lib/base.h b/lib/base.h
index 7acf13f..e0cabc0 100644
--- a/lib/base.h
+++ b/lib/base.h
@@ -27,6 +27,9 @@
#ifndef VERBOSE
#define VERBOSE 0
#endif
+#ifndef PRINT_HEX
+#define PRINT_HEX 0
+#endif
typedef uint8_t u8;
typedef int8_t i8;
diff --git a/vm/runtime.c b/vm/runtime.c
index 5558280..402b541 100644
--- a/vm/runtime.c
+++ b/vm/runtime.c
@@ -195,18 +195,42 @@ err_t vm_execute(vm_t *vm)
printf("0x%x", datum.as_byte);
break;
case TYPE_INT: {
- printf("%" PRId32, datum.as_int);
+ printf(
+#if PRINT_HEX == 1
+ "0x%X",
+#else
+ "%" PRId32,
+#endif
+ datum.as_int);
break;
}
case TYPE_HWORD:
- printf("%" PRIu32, datum.as_hword);
+ printf(
+#if PRINT_HEX == 1
+ "0x%X",
+#else
+ "%" PRIu32,
+#endif
+ datum.as_hword);
break;
case TYPE_LONG: {
- printf("%" PRId64, datum.as_long);
+ printf(
+#if PRINT_HEX == 1
+ "0x%dX",
+#else
+ "%" PRId64,
+#endif
+ datum.as_long);
break;
}
case TYPE_WORD:
- printf("%" PRIu64, datum.as_word);
+ printf(
+#if PRINT_HEX == 1
+ "0x%lX",
+#else
+ "%" PRIu64,
+#endif
+ datum.as_word);
break;
}