diff options
-rw-r--r-- | lib/base.h | 3 | ||||
-rw-r--r-- | vm/runtime.c | 32 |
2 files changed, 31 insertions, 4 deletions
@@ -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; } |