]> Shamusworld >> Repos - rmac/blobdiff - token.c
EOY minor update.
[rmac] / token.c
diff --git a/token.c b/token.c
index 22bc64ac557dd73bc8c3957a330e1b78bc653663..6a47bdb3fd04daab8e8c17b8364e83cc88712cfb 100644 (file)
--- a/token.c
+++ b/token.c
@@ -1,7 +1,7 @@
 //
 // RMAC - Reboot's Macro Assembler for all Atari computers
 // TOKEN.C - Token Handling
-// Copyright (C) 199x Landon Dyer, 2011-2018 Reboot and Friends
+// Copyright (C) 199x Landon Dyer, 2011-2020 Reboot and Friends
 // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
 // Source utilised with the kind permission of Landon Dyer
 //
@@ -560,7 +560,8 @@ DEBUG { printf("ExM: SYMBOL=\"%s\"", d); }
 //         to choke on legitimate code... Need to investigate this further
 //         before changing anything else here!
                                                        case CONST:
-                                                               sprintf(numbuf, "$%lx", (uint64_t)*tk++);
+//                                                             sprintf(numbuf, "$%lx", (uint64_t)*tk++);
+                                                               sprintf(numbuf, "$%" PRIX64, (uint64_t)*tk++);
                                                                tk++;
                                                                d = numbuf;
                                                                break;
@@ -1170,7 +1171,7 @@ DEBUG { printf("TokenizeLine: Calling fpop() from SRC_IFILE...\n"); }
                        }
 
                        // Make j = -1 if user tries to use a RISC register while in 68K mode
-                       if (!(rgpu || rdsp) && ((TOKEN)j >= KW_R0 && (TOKEN)j <= KW_R31))
+                       if (!(rgpu || rdsp || dsp56001) && ((TOKEN)j >= KW_R0 && (TOKEN)j <= KW_R31))
                        {
                                j = -1;
                        }
@@ -1286,6 +1287,10 @@ dostring:
                                                case '\\':
                                                        c = '\\';
                                                        break;
+                                               case '{':
+                                                       // If we're evaluating a macro
+                                                       // this is valid because it's
+                                                       // a parameter expansion
                                                case '!':
                                                        // If we're evaluating a macro
                                                        // this is valid and expands to