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