]> Shamusworld >> Repos - rmac/blobdiff - procln.c
Roll back TOKENPTR changes and most of the .u32 changes weren't needed.
[rmac] / procln.c
index 3a4aac8316d44c570373b675c6994cddfff00e76..2a8c0fdc093eddbdc6bc359f9855413f9bc573bb 100644 (file)
--- a/procln.c
+++ b/procln.c
@@ -131,7 +131,7 @@ void Assemble(void)
        char * equate;                          // Symbol (or NULL)
        int labtyp = 0;                         // Label type (':', DCOLON)
        int equtyp = 0;                         // Equ type ('=', DEQUALS)
-       uint32_t eval;                                  // Expression value
+       uint64_t eval;                          // Expression value
        WORD eattr;                                     // Expression attributes
        SYM * esym;                                     // External symbol involved in expr.
        WORD siz = 0;                           // Size suffix to mnem/diretve/macro
@@ -229,7 +229,7 @@ as68label:
        if (*tok == EOL)
                goto normal;
 
-       // Next token MUST be a symbol
+       // First token MUST be a symbol (if we get here, tok didn't advance)
        if (*tok++ != SYMBOL)
        {
                error("syntax error; expected symbol");
@@ -281,7 +281,6 @@ as68label:
        case DOTX: siz = SIZX, tok++; break;
        }
 
-
        // Do special directives (500..999) (These must be handled in "real time")
        if (state >= 500 && state < 1000)
        {
@@ -467,9 +466,9 @@ When checking to see if it's already been equated, issue a warning.
                                        tok += 3;
 
                                        // Anything other than a 0 or a 1 will result in "No Bank"
-                                       if (*tok == 0)
+                                       if (*(uint64_t *)tok == 0)
                                                registerbank = BANK_0;
-                                       else if (*tok == 1)
+                                       else if (*(uint64_t *)tok == 1)
                                                registerbank = BANK_1;
                                }
 
@@ -576,10 +575,10 @@ When checking to see if it's already been equated, issue a warning.
                }
 
                sy->sattr |= eattr | EQUATED;   // Symbol inherits value and attributes
-               sy->svalue = eval;
+               sy->svalue = (uint32_t)eval;
 
                if (list_flag)                                  // Put value in listing
-                       listvalue(eval);
+                       listvalue((uint32_t)eval);
 
                at_eol();                                               // Must be at EOL now
                goto loop;