diff --git a/docs/rgbasm.5.html b/docs/rgbasm.5.html
index cc8bf895..a9194599 100644
--- a/docs/rgbasm.5.html
+++ b/docs/rgbasm.5.html
@@ -791,17 +791,20 @@ These three instructions type text and values to stdout. Useful for debugging
PRINTT "I'm the greatest programmer in the whole wide world\n"
-PRINTV (2+3)/5
-PRINTF MUL(3.14,3987.0)
+PRINTI (2 + 3) / 5
+PRINTV $FF00 + $F0
+PRINTF MUL(3.14, 3987.0)
- PRINTT
- prints out a string.
- PRINTV
- - prints out an integer value or, as in the example, the
- result of a calculation. Unsurprisingly, you can also print out a constant
- symbols value.
+ - prints out an integer value in hexadecimal or, as in the
+ example, the result of a calculation. Unsurprisingly, you can also print
+ out a constant symbols value.
+ - PRINTI
+ - prints out a signed integer value.
- PRINTF
- prints out a fixed point value.
@@ -1377,6 +1380,8 @@ The options that OPT can modify are currently: b,
PRINTF
+ PRINTI
+
PRINTT
PRINTV
diff --git a/src/asm/asmy.y b/src/asm/asmy.y
index 561d5425..accfd083 100644
--- a/src/asm/asmy.y
+++ b/src/asm/asmy.y
@@ -504,7 +504,7 @@ static void updateUnion(void)
%token T_POP_SET
%token T_POP_EQUS
-%token T_POP_INCLUDE T_POP_PRINTF T_POP_PRINTT T_POP_PRINTV
+%token T_POP_INCLUDE T_POP_PRINTF T_POP_PRINTT T_POP_PRINTV T_POP_PRINTI
%token T_POP_IF T_POP_ELIF T_POP_ELSE T_POP_ENDC
%token T_POP_IMPORT T_POP_EXPORT T_POP_GLOBAL
%token T_POP_DB T_POP_DS T_POP_DW T_POP_DL
@@ -648,6 +648,7 @@ simple_pseudoop : include
| printf
| printt
| printv
+ | printi
| if
| elif
| else
@@ -933,6 +934,13 @@ printv : T_POP_PRINTV const
}
;
+printi : T_POP_PRINTI const
+ {
+ if (nPass == 1)
+ printf("%d", $2);
+ }
+;
+
printf : T_POP_PRINTF const
{
if (nPass == 1)
diff --git a/src/asm/globlex.c b/src/asm/globlex.c
index a554c7fe..ca654280 100644
--- a/src/asm/globlex.c
+++ b/src/asm/globlex.c
@@ -368,6 +368,7 @@ const struct sLexInitString lexer_strings[] = {
{"include", T_POP_INCLUDE},
{"printt", T_POP_PRINTT},
+ {"printi", T_POP_PRINTI},
{"printv", T_POP_PRINTV},
{"printf", T_POP_PRINTF},
{"export", T_POP_EXPORT},
diff --git a/src/asm/rgbasm.5 b/src/asm/rgbasm.5
index ddefed26..b3a00fd9 100644
--- a/src/asm/rgbasm.5
+++ b/src/asm/rgbasm.5
@@ -660,16 +660,19 @@ some important information.
.Pp
.Bd -literal -offset indent
PRINTT \[dq]I'm the greatest programmer in the whole wide world\[rs]n\[dq]
-PRINTV (2+3)/5
-PRINTF MUL(3.14,3987.0)
+PRINTI (2 + 3) / 5
+PRINTV $FF00 + $F0
+PRINTF MUL(3.14, 3987.0)
.Ed
.Pp
.Bl -inset
.It Ic PRINTT
prints out a string.
.It Ic PRINTV
-prints out an integer value or, as in the example, the result of a calculation.
-Unsurprisingly, you can also print out a constant symbols value.
+prints out an integer value in hexadecimal or, as in the example, the result of
+a calculation. Unsurprisingly, you can also print out a constant symbols value.
+.It Ic PRINTI
+prints out a signed integer value.
.It Ic PRINTF
prints out a fixed point value.
.El
@@ -1068,6 +1071,7 @@ machine.
.It Sx POPO
.It Sx POPS
.It Sx PRINTF
+.It Sx PRINTI
.It Sx PRINTT
.It Sx PRINTV
.It Sx PURGE