From 5045452d7a78d888329eec886011a176afd7adb0 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Tue, 31 Oct 2023 22:29:07 +0000 Subject: Added flag which forces the printing of hexes Anything other than char (which can just use print.byte to print the hex) and byte (which prints hexes anyway), all other types may be forced to print a hex rather than a number if PRINT_HEX is 1. --- vm/runtime.c | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) (limited to 'vm/runtime.c') 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; } -- cgit v1.2.3-13-gbd6f