// DIRECT.C - Directive Handling
// Copyright (C) 199x Landon Dyer, 2011 Reboot and Friends
// RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
-// Source Utilised with the Kind Permission of Landon Dyer
+// Source utilised with the kind permission of Landon Dyer
//
#include "direct.h"
switch(*tok)
{
case STRING:
-// sprintf(prntstr, "%s", (char *)tok[1]);
sprintf(prntstr, "%s", string[tok[1]]);
printf("%s", prntstr);
}
printf("\n");
-// println("\n");
return 0;
if (*tok != SYMBOL)
{
-// error(syntax_error);
error("syntax error; expected symbol");
return ERROR;
}
-// ccname = lookup((char *)tok[1], LABEL, 0);
ccname = lookup(string[tok[1]], LABEL, 0);
// Make sure symbol is a valid ccdef
{
unsigned skip = (rgpu || rdsp ? orgaddr : sloc) & 0x01;
-// if (sloc & 1)
if (skip)
{
if ((scattr & SBSS) == 0)
char buf[128];
char buf1[128];
- if (*tok == STRING) // Leave strings ALONE
-#if 0
- fn = (char *)*++tok;
-#else
+ if (*tok == STRING) // Leave strings ALONE
fn = string[*++tok];
-#endif
- else if (*tok == SYMBOL) // Try to append ".s" to symbols
+ else if (*tok == SYMBOL) // Try to append ".s" to symbols
{
-#if 0
- strcpy(buf, (char *)*++tok);
-#else
strcpy(buf, string[*++tok]);
-#endif
fext(buf, ".s", 0);
fn = &buf[0];
}
- else // Punt if no STRING or SYMBOL
+ else // Punt if no STRING or SYMBOL
return error("missing filename");
// Make sure the user didn't try anything like:
if (*tok != SYMBOL)
return error("missing symbol");
-// p = (char *)tok[1];
p = string[tok[1]];
tok += 2;
{
if (*tok == SYMBOL)
{
-// p = (char *)tok[1];
p = string[tok[1]];
-#if 0
- if (*p == '.')
- env = curenv; // Label is local
- else
- env = 0; // Label is global
-#else
// Set env to either local (dot prefixed) or global scope
env = (*p == '.' ? curenv : 0);
-#endif
symbol = lookup(p, LABEL, env);
if (symbol == NULL)
return errors("multiply-defined label '%s'", p);
// Put symbol in "order of definition" list
- if (!(symbol->sattr & SDECLLIST))
- AddToSymbolOrderList(symbol);
+ AddToSymbolDeclarationList(symbol);
symbol->sattr |= (ABS | DEFINED | EQUATED);
symbol->svalue = eval;
if (reglist(&rlist) < 0)
return 0;
-// for(i=0; i++<16; rlist>>=1)
for(i=0; i<16; i++, rlist>>=1)
{
if (rlist & 1)
return errors("multiply-defined label '%s'", symbolName);
// Put symbol in "order of definition" list
- if (!(symbol->sattr & SDECLLIST))
- AddToSymbolOrderList(symbol);
+ AddToSymbolDeclarationList(symbol);
tok += 2;