]> Shamusworld >> Repos - rmac/blobdiff - procln.c
Version bump for last eight commits; cleanup of Alcyon image writing.
[rmac] / procln.c
index 3a4aac8316d44c570373b675c6994cddfff00e76..8dd19c6371cb93192cbde7953b91786662e188e9 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;
                                }
 
@@ -579,7 +578,7 @@ When checking to see if it's already been equated, issue a warning.
                sy->svalue = eval;
 
                if (list_flag)                                  // Put value in listing
-                       listvalue(eval);
+                       listvalue((uint32_t)eval);
 
                at_eol();                                               // Must be at EOL now
                goto loop;