X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=procln.c;h=2a8c0fdc093eddbdc6bc359f9855413f9bc573bb;hp=3a4aac8316d44c570373b675c6994cddfff00e76;hb=eace4e1b294ccec54a5c476619f616f5da0bf8a9;hpb=cfd001aea60f54e49d9beae0f941c513f45c202b diff --git a/procln.c b/procln.c index 3a4aac8..2a8c0fd 100644 --- 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;