Build .deb package, try to fix endianness issues
diff --git a/as/as.c b/as/as.c
index 1d72d97..989b83c 100644
--- a/as/as.c
+++ b/as/as.c
@@ -21,6 +21,7 @@
};
#define ERR "\033[31m"
+#define GREEN "\033[32m"
#define RESET "\033[0m"
#define MAX_LEN (0xFFFF - 0x600)
#define MAX_INSTS (MAX_LEN / 2)
@@ -534,7 +535,8 @@
if ((no_argument && (_mn == AM_IMP || _mn == AM_ACC)) \
|| (mnemonic == _mn && parse_arg(line, am, arg))) \
{ \
- printf("AM_ succeeded: %s\n", #am); \
+ printf(GREEN "AM_ succeeded: %s at pc=$%x\n" RESET, \
+ #am, pc); \
arg->opcode = op; \
pc += len; \
print_inst(arg); \
@@ -599,21 +601,21 @@
}
curr_pc += 2;
int16_t diff = lbl - curr_pc;
- printf("ARG_REL, pc (after) == %x, diff = %d\n", curr_pc, diff);
+ printf("ARG_REL, pc (after) == %x, diff = %hx\n", curr_pc, (uint8_t) diff);
if ((diff < 0 ? -diff : diff) > 0xFF)
{
printf(ERR "Error on line %d: label '%s' is too far away for a relative jump" RESET "\n", insts[i]->line, insts[i]->label);
printf("pc == %hx, label is at %hx\n", curr_pc, lbl);
goto cleanup;
}
- putshort((uint8_t) diff, out);
+ putc((uint8_t) diff, out);
break;
}
default:
curr_pc++;
}
}
-
+
cleanup:
printf("-----\n");
printf("At end, there are %d instructions\n", num_insts);