//
-// Print Directive
+// Print directive
//
int d_print(void)
{
- char prntstr[LNSIZ]; // String for PRINT directive
- char format[LNSIZ]; // Format for PRINT directive
- int formatting = 0; // Formatting on/off
- int wordlong = 0; // WORD = 0, LONG = 1
- int outtype = 0; // 0:hex, 1:decimal, 2:unsigned
-
- VALUE eval; // Expression value
- WORD eattr; // Expression attributes
- SYM * esym; // External symbol involved in expr.
+ char prntstr[LNSIZ]; // String for PRINT directive
+ char format[LNSIZ]; // Format for PRINT directive
+ int formatting = 0; // Formatting on/off
+ int wordlong = 0; // WORD = 0, LONG = 1
+ int outtype = 0; // 0:hex, 1:decimal, 2:unsigned
+
+ VALUE eval; // Expression value
+ WORD eattr; // Expression attributes
+ SYM * esym; // External symbol involved in expr.
TOKEN r_expr[EXPRSIZE];
while (*tok != EOL)
//
-// Undefine an Equated Condition Code
+// Undefine an equated condition code
//
int d_ccundef(void)
{
//
-// Undefine an Equated Register
+// Undefine an equated register
//
int d_equrundef(void)
{
regname = lookup(string[tok[1]], LABEL, 0);
if (regname && (regname->sattre & EQUATEDREG))
+ {
+ // Reset the attributes of this symbol...
+ regname->sattr = 0;
+ regname->sattre &= ~(EQUATEDREG | BANK_0 | BANK_1);
regname->sattre |= UNDEF_EQUR;
+ }
// Skip over symbol token and address
tok += 2;
//
-// Do Not Allow the Use of the CLR.L Opcode
+// Do not allow use of the CLR.L opcode
//
int d_noclear(void)
{
//
-// Include Binary File
+// Include binary file
//
int d_incbin(void)
{
//
-// Set RISC Register Banks
+// Set RISC register banks
//
int d_regbank0(void)
{
//
-// Adjust Location to an EVEN Value
+// Adjust location to an EVEN value
//
int d_even(void)
{
//
-// Adjust Location to an LONG Value
+// Adjust location to a LONG value
//
int d_long(void)
{
//
-// Adjust Location to an PHRASE Value
+// Adjust location to a PHRASE value
//
// N.B.: We have to handle the GPU/DSP cases separately because you can embed
// RISC code in the middle of a regular 68K section. Also note that all
//
-// Adjust Location to an DPHRASE Value
+// Adjust location to a DPHRASE value
//
int d_dphrase(void)
{
//
-// Adjust Location to an QPHRASE Value
+// Adjust location to a QPHRASE value
//
int d_qphrase(void)
{
void auto_even(void)
{
if (scattr & SBSS)
- sloc++; // Bump BSS section
+ sloc++; // Bump BSS section
else
- D_byte(0); // Deposit 0.b in non-BSS
+ D_byte(0); // Deposit 0.b in non-BSS
- if (lab_sym != NULL) // Bump label if we have to
- ++lab_sym->svalue;
+ if (lab_sym != NULL) // Bump label if we have to
+ lab_sym->svalue++;
}
//
-// Unimplemened Directive Error
+// Unimplemened directive error
//
int d_unimpl(void)
{
//
-// Switch Segments
+// Switch segments
//
-
int d_text(void)
{
if (rgpu || rdsp)
//
-// .gpu - Switch to GPU Assembler
+// .gpu - Switch to GPU assembler
//
int d_gpu(void)
{
//
-// .dsp - Switch to DSP Assembler
+// .dsp - Switch to DSP assembler
//
int d_dsp(void)
{