mirror of
https://github.com/open-simh/simtools.git
synced 2026-02-26 16:54:31 +00:00
Add consistency checking for symbol flags
while also adding some consistency. All listings now list . (dot) as defined so they need updating.
This commit is contained in:
@@ -194,7 +194,7 @@ static int assemble(
|
||||
|
||||
if (!express_sym_offset(value, &symb, &offset)) {
|
||||
report(stack->top, "Illegal ORG (for relocatable section)\n");
|
||||
} else if ((symb->flags & (SYMBOLFLAG_GLOBAL | SYMBOLFLAG_DEFINITION)) == SYMBOLFLAG_GLOBAL) {
|
||||
} else if (SYM_IS_IMPORTED(symb)) {
|
||||
report(stack->top, "Can't ORG to external location\n");
|
||||
} else if (symb->flags & SYMBOLFLAG_UNDEFINED) {
|
||||
report(stack->top, "Can't ORG to undefined sym\n");
|
||||
@@ -1040,7 +1040,7 @@ static int assemble(
|
||||
sect->size = 0;
|
||||
sect->type = SECTION_USER;
|
||||
sections[sector++] = sect;
|
||||
sectsym = add_sym(label, 0, 0, sect, §ion_st);
|
||||
sectsym = add_sym(label, 0, SYMBOLFLAG_DEFINITION, sect, §ion_st);
|
||||
|
||||
/* page 6-41 table 6-5 */
|
||||
if (op->value == P_PSECT) {
|
||||
|
||||
@@ -332,7 +332,7 @@ int complex_tree(
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((sym->flags & (SYMBOLFLAG_GLOBAL | SYMBOLFLAG_DEFINITION)) == SYMBOLFLAG_GLOBAL) {
|
||||
if (SYM_IS_IMPORTED(sym)) {
|
||||
text_complex_global(tx, sym->label);
|
||||
} else {
|
||||
text_complex_psect(tx, sym->section->sector, sym->value);
|
||||
@@ -490,7 +490,7 @@ void mode_extension(
|
||||
value. */
|
||||
}
|
||||
} else if (express_sym_offset(value, &sym, &offset)) {
|
||||
if ((sym->flags & (SYMBOLFLAG_GLOBAL | SYMBOLFLAG_DEFINITION)) == SYMBOLFLAG_GLOBAL) {
|
||||
if (SYM_IS_IMPORTED(sym)) {
|
||||
/* Reference to a global symbol. */
|
||||
/* Global symbol plus offset */
|
||||
if (mode->rel)
|
||||
@@ -635,7 +635,7 @@ void store_value(
|
||||
} else if (!express_sym_offset(value, &sym, &offset)) {
|
||||
store_complex(stack->top, tr, size, value);
|
||||
} else {
|
||||
if ((sym->flags & (SYMBOLFLAG_GLOBAL | SYMBOLFLAG_DEFINITION)) == SYMBOLFLAG_GLOBAL) {
|
||||
if (SYM_IS_IMPORTED(sym)) {
|
||||
store_global_offset_word(stack->top, tr, size, sym->value + offset, sym->label);
|
||||
} else if (sym->section != current_pc->section) {
|
||||
store_psect_offset_word(stack->top, tr, size, sym->value + offset, sym->section->label);
|
||||
@@ -765,11 +765,10 @@ void write_globals(
|
||||
while (sym) {
|
||||
if ((sym->flags & SYMBOLFLAG_GLOBAL) && sym->section == psect) {
|
||||
gsd_global(&gsd, sym->label,
|
||||
(sym->
|
||||
flags & SYMBOLFLAG_DEFINITION ? GLOBAL_DEF : 0) | ((sym->
|
||||
flags & SYMBOLFLAG_WEAK) ?
|
||||
GLOBAL_WEAK : 0)
|
||||
| ((sym->section->flags & PSECT_REL) ? GLOBAL_REL : 0) | 0100,
|
||||
((sym->flags & SYMBOLFLAG_DEFINITION) ? GLOBAL_DEF : 0) |
|
||||
((sym->flags & SYMBOLFLAG_WEAK) ? GLOBAL_WEAK : 0) |
|
||||
((sym->section->flags & PSECT_REL) ? GLOBAL_REL : 0) |
|
||||
0100,
|
||||
/* Looks undefined, but add it in anyway */
|
||||
sym->value);
|
||||
}
|
||||
|
||||
14
extree.c
14
extree.c
@@ -282,25 +282,25 @@ EX_TREE *evaluate(
|
||||
/* Change some symbols to "undefined" */
|
||||
|
||||
if (flags & EVALUATE_DEFINEDNESS) {
|
||||
int change = 0;
|
||||
int is_undefined = 0;
|
||||
|
||||
/* I'd prefer this behavior, but MACRO.SAV is a bit too primitive. */
|
||||
#if 0
|
||||
/* A temporary symbol defined later is "undefined." */
|
||||
if (!(sym->flags & PERMANENT) && sym->stmtno > stmtno)
|
||||
change = 1;
|
||||
is_undefined = 1;
|
||||
#endif
|
||||
|
||||
/* A global symbol with no assignment is "undefined." */
|
||||
/* Go figure. */
|
||||
if ((sym->flags & (SYMBOLFLAG_GLOBAL | SYMBOLFLAG_DEFINITION)) == SYMBOLFLAG_GLOBAL)
|
||||
change = 1;
|
||||
if (SYM_IS_IMPORTED(sym))
|
||||
is_undefined = 1;
|
||||
|
||||
/* A symbol marked as undefined is undefined */
|
||||
if (sym->flags & SYMBOLFLAG_UNDEFINED)
|
||||
change = 1;
|
||||
is_undefined = 1;
|
||||
|
||||
if (change) {
|
||||
if (is_undefined) {
|
||||
res = new_temp_sym(tp->data.symbol->label, tp->data.symbol->section,
|
||||
tp->data.symbol->value);
|
||||
res->type = EX_UNDEFINED_SYM;
|
||||
@@ -310,7 +310,7 @@ EX_TREE *evaluate(
|
||||
|
||||
/* Turn defined absolute symbol to a literal */
|
||||
if (!(sym->section->flags & PSECT_REL)
|
||||
&& (sym->flags & (SYMBOLFLAG_GLOBAL | SYMBOLFLAG_DEFINITION)) != SYMBOLFLAG_GLOBAL
|
||||
&& !SYM_IS_IMPORTED(sym)
|
||||
&& sym->section->type != SECTION_REGISTER) {
|
||||
res = new_ex_lit(sym->value);
|
||||
break;
|
||||
|
||||
2
macros.c
2
macros.c
@@ -584,7 +584,7 @@ MACRO *new_macro(
|
||||
{
|
||||
MACRO *mac = memcheck(malloc(sizeof(MACRO)));
|
||||
|
||||
mac->sym.flags = 0;
|
||||
mac->sym.flags = SYMBOLFLAG_DEFINITION;
|
||||
mac->sym.label = label;
|
||||
mac->sym.stmtno = stmtno;
|
||||
mac->sym.next = NULL;
|
||||
|
||||
234
symbols.c
234
symbols.c
@@ -33,6 +33,96 @@ SYMBOL_TABLE implicit_st; /* The symbols which may be implicit globals */
|
||||
|
||||
void list_section(SECTION *sec);
|
||||
|
||||
static void
|
||||
dump_sym(SYMBOL *sym)
|
||||
{
|
||||
report(NULL, "'%s': %06o, stmt %d, flags %o:%s%s%s%s%s%s\n",
|
||||
sym->label,
|
||||
sym->value,
|
||||
sym->stmtno,
|
||||
sym->flags,
|
||||
((sym->flags & SYMBOLFLAG_PERMANENT)? " PERMANENT" : ""),
|
||||
((sym->flags & SYMBOLFLAG_GLOBAL)? " GLOBAL" : ""),
|
||||
((sym->flags & SYMBOLFLAG_WEAK)? " WEAK" : ""),
|
||||
((sym->flags & SYMBOLFLAG_DEFINITION)? " DEFINITION" : ""),
|
||||
((sym->flags & SYMBOLFLAG_UNDEFINED)? " UNDEFINED" : ""),
|
||||
((sym->flags & SYMBOLFLAG_LOCAL)? " LOCAL" : ""),
|
||||
((sym->flags & SYMBOLFLAG_IMPLICIT_GLOBAL)? " IMPLICIT_GLOBAL" : ""));
|
||||
}
|
||||
|
||||
void
|
||||
check_sym_invariants(SYMBOL *sym, char *file, int line)
|
||||
{
|
||||
int dump = 0;
|
||||
|
||||
if (sym->section == &instruction_section) {
|
||||
/* The instructions use the flags field differently */
|
||||
if ((sym->flags & ~OC_MASK) != 0) {
|
||||
report(NULL, "%s %d: Instruction symbol %s has wrong flags\n", file, line, sym->label);
|
||||
dump_sym(sym);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* A symbol is GLOBAL if it appears in the object file's symbol table.
|
||||
* It can be either exported (if defined) or imported (if not defined).
|
||||
*
|
||||
* A common test like this
|
||||
*
|
||||
* if ((sym->flags & (SYMBOLFLAG_GLOBAL | SYMBOLFLAG_DEFINITION)) == SYMBOLFLAG_GLOBAL)
|
||||
*
|
||||
* tests if a symbol is imported.
|
||||
*/
|
||||
|
||||
switch (sym->flags & (SYMBOLFLAG_PERMANENT|SYMBOLFLAG_GLOBAL|SYMBOLFLAG_DEFINITION|SYMBOLFLAG_UNDEFINED)) {
|
||||
/* A DEFINITION can independently be PERMANENT and/or GLOBAL */
|
||||
case SYMBOLFLAG_PERMANENT|SYMBOLFLAG_GLOBAL|SYMBOLFLAG_DEFINITION:
|
||||
case SYMBOLFLAG_GLOBAL|SYMBOLFLAG_DEFINITION:
|
||||
case SYMBOLFLAG_PERMANENT| SYMBOLFLAG_DEFINITION:
|
||||
case SYMBOLFLAG_DEFINITION:
|
||||
break;
|
||||
/* A GLOBAL can also be undefined, but then it's still usable */
|
||||
case SYMBOLFLAG_GLOBAL:
|
||||
break;
|
||||
/* A truly UNDEFINED symbol is an error to use */
|
||||
/* (this seems logically equivalent to all of these flags cleared) */
|
||||
case SYMBOLFLAG_UNDEFINED:
|
||||
break;
|
||||
default:
|
||||
report(NULL, "%s %d: Symbol %s definedness is inconsistent\n", file, line, sym->label);
|
||||
dump++;
|
||||
}
|
||||
|
||||
if ( (sym->flags & SYMBOLFLAG_IMPLICIT_GLOBAL) &&
|
||||
!(sym->flags & SYMBOLFLAG_GLOBAL)) {
|
||||
report(NULL, "%s %d: Symbol %s globalness is inconsistent\n", file, line, sym->label);
|
||||
dump++;
|
||||
}
|
||||
|
||||
if ( (sym->flags & SYMBOLFLAG_LOCAL) &&
|
||||
(sym->flags & SYMBOLFLAG_GLOBAL)) {
|
||||
report(NULL, "%s %d: Symbol %s is local and global\n", file, line, sym->label);
|
||||
dump++;
|
||||
}
|
||||
|
||||
if ( (sym->flags & SYMBOLFLAG_PERMANENT) &&
|
||||
!(sym->flags & SYMBOLFLAG_DEFINITION)) {
|
||||
report(NULL, "%s %d: Symbol %s is permanent without definition\n", file, line, sym->label);
|
||||
dump++;
|
||||
}
|
||||
|
||||
if ( (sym->flags & SYMBOLFLAG_WEAK) &&
|
||||
!(sym->flags & SYMBOLFLAG_GLOBAL)) {
|
||||
report(NULL, "%s %d: Symbol %s weak/global is inconsistent\n", file, line, sym->label);
|
||||
dump++;
|
||||
}
|
||||
|
||||
if (dump) {
|
||||
dump_sym(sym);
|
||||
}
|
||||
}
|
||||
|
||||
/* hash_name hashes a name into a value from 0-HASH_SIZE */
|
||||
|
||||
int hash_name(
|
||||
@@ -91,6 +181,7 @@ void free_sym(
|
||||
SYMBOL *sym)
|
||||
{
|
||||
if (sym->label) {
|
||||
check_sym_invariants(sym, __FILE__, __LINE__);
|
||||
free(sym->label);
|
||||
sym->label = NULL;
|
||||
}
|
||||
@@ -107,6 +198,7 @@ void remove_sym(
|
||||
*symp;
|
||||
int hash;
|
||||
|
||||
check_sym_invariants(sym, __FILE__, __LINE__);
|
||||
hash = hash_name(sym->label);
|
||||
prevp = &table->hash[hash];
|
||||
while (symp = *prevp, symp != NULL && symp != sym)
|
||||
@@ -131,6 +223,9 @@ SYMBOL *lookup_sym(
|
||||
while (sym && strcmp(sym->label, label) != 0)
|
||||
sym = sym->next;
|
||||
|
||||
if (sym) {
|
||||
check_sym_invariants(sym, __FILE__, __LINE__);
|
||||
}
|
||||
return sym;
|
||||
}
|
||||
|
||||
@@ -176,6 +271,7 @@ void add_table(
|
||||
|
||||
sym->next = table->hash[hash];
|
||||
table->hash[hash] = sym;
|
||||
check_sym_invariants(sym, __FILE__, __LINE__);
|
||||
}
|
||||
|
||||
/* add_sym - used throughout to add or update symbols in a symbol
|
||||
@@ -204,6 +300,8 @@ SYMBOL *add_sym(
|
||||
sym = lookup_sym(label, table);
|
||||
if (sym != NULL) {
|
||||
// A symbol registered as "undefined" can be changed.
|
||||
//
|
||||
check_sym_invariants(sym, __FILE__, __LINE__);
|
||||
|
||||
if ((sym->flags & SYMBOLFLAG_UNDEFINED) && !(flags & SYMBOLFLAG_UNDEFINED)) {
|
||||
sym->flags &= ~(SYMBOLFLAG_PERMANENT | SYMBOLFLAG_UNDEFINED);
|
||||
@@ -215,6 +313,7 @@ SYMBOL *add_sym(
|
||||
/* Check for compatible definition */
|
||||
else if (sym->section == section && sym->value == value) {
|
||||
sym->flags |= flags; /* Merge flags quietly */
|
||||
check_sym_invariants(sym, __FILE__, __LINE__);
|
||||
return sym; /* 's okay */
|
||||
}
|
||||
|
||||
@@ -223,6 +322,7 @@ SYMBOL *add_sym(
|
||||
sym->value = value;
|
||||
sym->flags |= flags;
|
||||
sym->section = section;
|
||||
check_sym_invariants(sym, __FILE__, __LINE__);
|
||||
return sym;
|
||||
}
|
||||
|
||||
@@ -245,73 +345,78 @@ SYMBOL *add_sym(
|
||||
void add_symbols(
|
||||
SECTION *current_section)
|
||||
{
|
||||
current_pc = add_sym(".", 0, 0, current_section, &symbol_st);
|
||||
current_pc = add_sym(".", 0, SYMBOLFLAG_DEFINITION, current_section, &symbol_st);
|
||||
|
||||
reg_sym[0] = add_sym("R0", 0, 0, ®ister_section, &system_st);
|
||||
reg_sym[1] = add_sym("R1", 1, 0, ®ister_section, &system_st);
|
||||
reg_sym[2] = add_sym("R2", 2, 0, ®ister_section, &system_st);
|
||||
reg_sym[3] = add_sym("R3", 3, 0, ®ister_section, &system_st);
|
||||
reg_sym[4] = add_sym("R4", 4, 0, ®ister_section, &system_st);
|
||||
reg_sym[5] = add_sym("R5", 5, 0, ®ister_section, &system_st);
|
||||
reg_sym[6] = add_sym("SP", 6, 0, ®ister_section, &system_st);
|
||||
reg_sym[7] = add_sym("PC", 7, 0, ®ister_section, &system_st);
|
||||
#define S (SYMBOLFLAG_PERMANENT | SYMBOLFLAG_DEFINITION)
|
||||
|
||||
reg_sym[0] = add_sym("R0", 0, S, ®ister_section, &system_st);
|
||||
reg_sym[1] = add_sym("R1", 1, S, ®ister_section, &system_st);
|
||||
reg_sym[2] = add_sym("R2", 2, S, ®ister_section, &system_st);
|
||||
reg_sym[3] = add_sym("R3", 3, S, ®ister_section, &system_st);
|
||||
reg_sym[4] = add_sym("R4", 4, S, ®ister_section, &system_st);
|
||||
reg_sym[5] = add_sym("R5", 5, S, ®ister_section, &system_st);
|
||||
reg_sym[6] = add_sym("SP", 6, S, ®ister_section, &system_st);
|
||||
reg_sym[7] = add_sym("PC", 7, S, ®ister_section, &system_st);
|
||||
|
||||
//JH: symbols longer than current SYMMAX will be truncated. SYMMAX=6 is minimum!
|
||||
add_sym(".ASCII", P_ASCII, 0, &pseudo_section, &system_st);
|
||||
add_sym(".ASCIZ", P_ASCIZ, 0, &pseudo_section, &system_st);
|
||||
add_sym(".ASECT", P_ASECT, 0, &pseudo_section, &system_st);
|
||||
add_sym(".BLKB", P_BLKB, 0, &pseudo_section, &system_st);
|
||||
add_sym(".BLKW", P_BLKW, 0, &pseudo_section, &system_st);
|
||||
add_sym(".BYTE", P_BYTE, 0, &pseudo_section, &system_st);
|
||||
add_sym(".CSECT", P_CSECT, 0, &pseudo_section, &system_st);
|
||||
add_sym(".DSABL", P_DSABL, 0, &pseudo_section, &system_st);
|
||||
add_sym(".ENABL", P_ENABL, 0, &pseudo_section, &system_st);
|
||||
add_sym(".END", P_END, 0, &pseudo_section, &system_st);
|
||||
add_sym(".ENDC", P_ENDC, 0, &pseudo_section, &system_st);
|
||||
add_sym(".ENDM", P_ENDM, 0, &pseudo_section, &system_st);
|
||||
add_sym(".ENDR", P_ENDR, 0, &pseudo_section, &system_st);
|
||||
add_sym(".EOT", P_EOT, 0, &pseudo_section, &system_st);
|
||||
add_sym(".ERROR", P_ERROR, 0, &pseudo_section, &system_st);
|
||||
add_sym(".EVEN", P_EVEN, 0, &pseudo_section, &system_st);
|
||||
add_sym(".FLT2", P_FLT2, 0, &pseudo_section, &system_st);
|
||||
add_sym(".FLT4", P_FLT4, 0, &pseudo_section, &system_st);
|
||||
add_sym(".GLOBL", P_GLOBL, 0, &pseudo_section, &system_st);
|
||||
add_sym(".IDENT", P_IDENT, 0, &pseudo_section, &system_st);
|
||||
add_sym(".IF", P_IF, 0, &pseudo_section, &system_st);
|
||||
add_sym(".IFDF", P_IFDF, 0, &pseudo_section, &system_st);
|
||||
add_sym(".IFNDF", P_IFDF, 0, &pseudo_section, &system_st);
|
||||
add_sym(".IFF", P_IFF, 0, &pseudo_section, &system_st);
|
||||
add_sym(".IFT", P_IFT, 0, &pseudo_section, &system_st);
|
||||
add_sym(".IFTF", P_IFTF, 0, &pseudo_section, &system_st);
|
||||
add_sym(".IIF", P_IIF, 0, &pseudo_section, &system_st);
|
||||
add_sym(".INCLUDE", P_INCLUDE, 0, &pseudo_section, &system_st);
|
||||
add_sym(".IRP", P_IRP, 0, &pseudo_section, &system_st);
|
||||
add_sym(".IRPC", P_IRPC, 0, &pseudo_section, &system_st);
|
||||
add_sym(".LIBRARY", P_LIBRARY, 0, &pseudo_section, &system_st);
|
||||
add_sym(".LIMIT", P_LIMIT, 0, &pseudo_section, &system_st);
|
||||
add_sym(".LIST", P_LIST, 0, &pseudo_section, &system_st);
|
||||
add_sym(".MCALL", P_MCALL, 0, &pseudo_section, &system_st);
|
||||
add_sym(".MEXIT", P_MEXIT, 0, &pseudo_section, &system_st);
|
||||
add_sym(".NARG", P_NARG, 0, &pseudo_section, &system_st);
|
||||
add_sym(".NCHR", P_NCHR, 0, &pseudo_section, &system_st);
|
||||
add_sym(".NLIST", P_NLIST, 0, &pseudo_section, &system_st);
|
||||
add_sym(".NTYPE", P_NTYPE, 0, &pseudo_section, &system_st);
|
||||
add_sym(".ODD", P_ODD, 0, &pseudo_section, &system_st);
|
||||
add_sym(".PACKED", P_PACKED, 0, &pseudo_section, &system_st);
|
||||
add_sym(".PAGE", P_PAGE, 0, &pseudo_section, &system_st);
|
||||
add_sym(".PRINT", P_PRINT, 0, &pseudo_section, &system_st);
|
||||
add_sym(".PSECT", P_PSECT, 0, &pseudo_section, &system_st);
|
||||
add_sym(".RADIX", P_RADIX, 0, &pseudo_section, &system_st);
|
||||
add_sym(".RAD50", P_RAD50, 0, &pseudo_section, &system_st);
|
||||
add_sym(".REM", P_REM, 0, &pseudo_section, &system_st);
|
||||
add_sym(".REPT", P_REPT, 0, &pseudo_section, &system_st);
|
||||
add_sym(".RESTORE", P_RESTORE, 0, &pseudo_section, &system_st);
|
||||
add_sym(".SAVE", P_SAVE, 0, &pseudo_section, &system_st);
|
||||
add_sym(".SBTTL", P_SBTTL, 0, &pseudo_section, &system_st);
|
||||
add_sym(".TITLE", P_TITLE, 0, &pseudo_section, &system_st);
|
||||
add_sym(".WORD", P_WORD, 0, &pseudo_section, &system_st);
|
||||
add_sym(".MACRO", P_MACRO, 0, &pseudo_section, &system_st);
|
||||
add_sym(".WEAK", P_WEAK, 0, &pseudo_section, &system_st);
|
||||
|
||||
add_sym(".ASCII", P_ASCII, S, &pseudo_section, &system_st);
|
||||
add_sym(".ASCIZ", P_ASCIZ, S, &pseudo_section, &system_st);
|
||||
add_sym(".ASECT", P_ASECT, S, &pseudo_section, &system_st);
|
||||
add_sym(".BLKB", P_BLKB, S, &pseudo_section, &system_st);
|
||||
add_sym(".BLKW", P_BLKW, S, &pseudo_section, &system_st);
|
||||
add_sym(".BYTE", P_BYTE, S, &pseudo_section, &system_st);
|
||||
add_sym(".CSECT", P_CSECT, S, &pseudo_section, &system_st);
|
||||
add_sym(".DSABL", P_DSABL, S, &pseudo_section, &system_st);
|
||||
add_sym(".ENABL", P_ENABL, S, &pseudo_section, &system_st);
|
||||
add_sym(".END", P_END, S, &pseudo_section, &system_st);
|
||||
add_sym(".ENDC", P_ENDC, S, &pseudo_section, &system_st);
|
||||
add_sym(".ENDM", P_ENDM, S, &pseudo_section, &system_st);
|
||||
add_sym(".ENDR", P_ENDR, S, &pseudo_section, &system_st);
|
||||
add_sym(".EOT", P_EOT, S, &pseudo_section, &system_st);
|
||||
add_sym(".ERROR", P_ERROR, S, &pseudo_section, &system_st);
|
||||
add_sym(".EVEN", P_EVEN, S, &pseudo_section, &system_st);
|
||||
add_sym(".FLT2", P_FLT2, S, &pseudo_section, &system_st);
|
||||
add_sym(".FLT4", P_FLT4, S, &pseudo_section, &system_st);
|
||||
add_sym(".GLOBL", P_GLOBL, S, &pseudo_section, &system_st);
|
||||
add_sym(".IDENT", P_IDENT, S, &pseudo_section, &system_st);
|
||||
add_sym(".IF", P_IF, S, &pseudo_section, &system_st);
|
||||
add_sym(".IFDF", P_IFDF, S, &pseudo_section, &system_st);
|
||||
add_sym(".IFNDF", P_IFDF, S, &pseudo_section, &system_st);
|
||||
add_sym(".IFF", P_IFF, S, &pseudo_section, &system_st);
|
||||
add_sym(".IFT", P_IFT, S, &pseudo_section, &system_st);
|
||||
add_sym(".IFTF", P_IFTF, S, &pseudo_section, &system_st);
|
||||
add_sym(".IIF", P_IIF, S, &pseudo_section, &system_st);
|
||||
add_sym(".INCLUDE", P_INCLUDE, S, &pseudo_section, &system_st);
|
||||
add_sym(".IRP", P_IRP, S, &pseudo_section, &system_st);
|
||||
add_sym(".IRPC", P_IRPC, S, &pseudo_section, &system_st);
|
||||
add_sym(".LIBRARY", P_LIBRARY, S, &pseudo_section, &system_st);
|
||||
add_sym(".LIMIT", P_LIMIT, S, &pseudo_section, &system_st);
|
||||
add_sym(".LIST", P_LIST, S, &pseudo_section, &system_st);
|
||||
add_sym(".MCALL", P_MCALL, S, &pseudo_section, &system_st);
|
||||
add_sym(".MEXIT", P_MEXIT, S, &pseudo_section, &system_st);
|
||||
add_sym(".NARG", P_NARG, S, &pseudo_section, &system_st);
|
||||
add_sym(".NCHR", P_NCHR, S, &pseudo_section, &system_st);
|
||||
add_sym(".NLIST", P_NLIST, S, &pseudo_section, &system_st);
|
||||
add_sym(".NTYPE", P_NTYPE, S, &pseudo_section, &system_st);
|
||||
add_sym(".ODD", P_ODD, S, &pseudo_section, &system_st);
|
||||
add_sym(".PACKED", P_PACKED, S, &pseudo_section, &system_st);
|
||||
add_sym(".PAGE", P_PAGE, S, &pseudo_section, &system_st);
|
||||
add_sym(".PRINT", P_PRINT, S, &pseudo_section, &system_st);
|
||||
add_sym(".PSECT", P_PSECT, S, &pseudo_section, &system_st);
|
||||
add_sym(".RADIX", P_RADIX, S, &pseudo_section, &system_st);
|
||||
add_sym(".RAD50", P_RAD50, S, &pseudo_section, &system_st);
|
||||
add_sym(".REM", P_REM, S, &pseudo_section, &system_st);
|
||||
add_sym(".REPT", P_REPT, S, &pseudo_section, &system_st);
|
||||
add_sym(".RESTORE", P_RESTORE, S, &pseudo_section, &system_st);
|
||||
add_sym(".SAVE", P_SAVE, S, &pseudo_section, &system_st);
|
||||
add_sym(".SBTTL", P_SBTTL, S, &pseudo_section, &system_st);
|
||||
add_sym(".TITLE", P_TITLE, S, &pseudo_section, &system_st);
|
||||
add_sym(".WORD", P_WORD, S, &pseudo_section, &system_st);
|
||||
add_sym(".MACRO", P_MACRO, S, &pseudo_section, &system_st);
|
||||
add_sym(".WEAK", P_WEAK, S, &pseudo_section, &system_st);
|
||||
|
||||
#undef S
|
||||
|
||||
add_sym("ADC", I_ADC, OC_1GEN, &instruction_section, &system_st);
|
||||
add_sym("ADCB", I_ADCB, OC_1GEN, &instruction_section, &system_st);
|
||||
@@ -630,6 +735,7 @@ void list_symbol_table(
|
||||
int i;
|
||||
for (i = line; i < nsyms; i += nlines) {
|
||||
sym = symbols[i];
|
||||
check_sym_invariants(sym, __FILE__, __LINE__);
|
||||
|
||||
fprintf(lstfile,"%-*s", longest_symbol, sym->label);
|
||||
fprintf(lstfile,"%c", (sym->section->flags & PSECT_REL) ? ' ' : '=');
|
||||
|
||||
@@ -25,6 +25,8 @@ typedef struct section {
|
||||
unsigned sector; /* Used for complex relocation, and naught else */
|
||||
} SECTION;
|
||||
|
||||
#define SYM_IS_IMPORTED(sym) ((sym->flags & (SYMBOLFLAG_GLOBAL | SYMBOLFLAG_DEFINITION)) == SYMBOLFLAG_GLOBAL)
|
||||
|
||||
/* Symbol table entries */
|
||||
|
||||
typedef struct symbol {
|
||||
|
||||
@@ -1232,7 +1232,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF= 000007 4$6 001322R L 002 CLCLOC= ****** G LBLFLG= 000002 RLDTMP 000024R 008
|
||||
. ******R 002 40$9 002014R L 002 CLCNAM= ****** G LF = 000012 ROLUPD= ****** G
|
||||
. 002056R 002 40$9 002014R L 002 CLCNAM= ****** G LF = 000012 ROLUPD= ****** G
|
||||
..Z = ****** G 5$3 000464R L 002 CLCSEC= ****** G LIMIT 000210RG 002 RSX11D= 000000
|
||||
1$0 000164R L 002 6$3 000542R L 002 CNTTBL= ****** G LOCDMP 001512R 002 SAVREG= ****** G
|
||||
1$1 000214R L 002 7$5 001216R L 002 CODROL= ****** G LSYROL= ****** G SECROL= ****** G
|
||||
|
||||
@@ -626,7 +626,7 @@ Symbol table
|
||||
|
||||
$TIMDF= 000007 ..ZBUF 000204RG 006 DDD 000042R 002 LF = 000012 SDEBUG 000000RG 002
|
||||
$WRITE= ****** G 1$0 000022R L 002 DEBUG = 000000 MK.SYM= 000001 SPACE = 000040
|
||||
. ******R 006 100$1 000074R L 002 DNC = ****** G NDEBUG 000100RG 002 TAB = 000011
|
||||
. 000404R 006 100$1 000074R L 002 DNC = ****** G NDEBUG 000100RG 002 TAB = 000011
|
||||
..N 000000R 006 2$0 000032R L 002 FF = 000014 PDPV45= 000000 VT = 000013
|
||||
..S 000004R 006 BPMB = 000020 FT.ID = 000001 RSX11D= 000000 X40 = 000000
|
||||
..Z 000002RG 006 CR = 000015 FT.UNX= 000001 SAVREG= ****** G XX.FLG= ****** G
|
||||
|
||||
@@ -1202,7 +1202,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF= 000007 ERN19 000674RG 003 ERN35 001570RG 003 ERN50 002360RG 003 ERN8 000216RG 003
|
||||
. ******R 003 ERN2 000033RG 003 ERN36 001624RG 003 ERN51 002403RG 003 ERN80 003010RG 003
|
||||
. 003066R 003 ERN2 000033RG 003 ERN36 001624RG 003 ERN51 002403RG 003 ERN80 003010RG 003
|
||||
BPMB = 000020 ERN20 000744RG 003 ERN37 001651RG 003 ERN52 002422RG 003 ERN81 003044RG 003
|
||||
CR = 000015 ERN22 001007RG 003 ERN38 001703RG 003 ERN53 002445RG 003 ERN9 000247RG 003
|
||||
DEBUG = 000000 ERN23 001044RG 003 ERN39 001733RG 003 ERN54 002472RG 003 ERN90 002173RG 003
|
||||
|
||||
@@ -4607,7 +4607,7 @@ $WRBFP 000302RG 006 7$26 001702R L 002 ENDP2 = ****** G
|
||||
$WRCNT 000304RG 006 7$29 002046R L 002 ERN45 = ****** G PROP2 = ****** G
|
||||
$WRITE = ****** G 7$32 002644R L 002 ERN55 = ****** G PROSW = ****** G
|
||||
$WRSYS = ****** G 7$44 004546R L 002 ERR.A = ****** G PSAROL = ****** G
|
||||
. ******R 002 8$2 000534R L 002 ERR.BY = ****** G PSDFLT = ****** G
|
||||
. 004576R 002 8$2 000534R L 002 ERR.BY = ****** G PSDFLT = ****** G
|
||||
..Z = ****** G 8$35 003210R L 002 ERR.XX = ****** G PSTROL = ****** G
|
||||
..ZBUF = ****** G 8$40 004072R L 002 ERRBTS = ****** G PUTKB = ****** G
|
||||
1$1 000330R L 002 8$45 004574R L 002 ERRCNT = ****** G PUTKBL = ****** G
|
||||
|
||||
@@ -1702,7 +1702,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF = 000007 ABSERX 001236R 002 ERN1 = ****** G PDPV45 = 000000
|
||||
. ******R 002 ABSEXP 001142RG 002 ERN2 = ****** G PSTROL = ****** G
|
||||
. 003150R 002 ABSEXP 001142RG 002 ERN2 = ****** G PSTROL = ****** G
|
||||
..Z = ****** G ABSTRM 001134RG 002 ERN3 = ****** G R50DOT = ****** G
|
||||
..ZBUF = ****** G ABSTST 001146RG 002 ERN4 = ****** G R50GCH 002616R 002
|
||||
1$0 000034R L 002 B.IDF = 000001 ERN5 = ****** G R50PRC 002662R 002
|
||||
|
||||
@@ -959,7 +959,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF = 000007 32768$3 000400R L 002 EDMASK = ****** G FLTG2W 000122R 002 FT.UNX = 000001
|
||||
. ******R 002 32768$4 000650R L 002 ERN10 = ****** G FLTG3 000360R 002 GETCHR = ****** G
|
||||
. 001232R 002 32768$4 000650R L 002 ERN10 = ****** G FLTG3 000360R 002 GETCHR = ****** G
|
||||
..Z = ****** G 32768$5 001026R L 002 ERN11 = ****** G FLTG4W 000116R 002 GETNB = ****** G
|
||||
..ZBUF = ****** G 33$3 000442R L 002 ERN9 = ****** G FLTG5 000550R 002 LF = 000012
|
||||
1$2 000150R L 002 4$5 000664R L 002 ERR.A = ****** G FLTGAD 001144R 002 MK.SYM = 000001
|
||||
|
||||
@@ -1543,7 +1543,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF = 000007 BSSFLG = 000004 ED.LSB = ****** G IFNDF 001016RG 002 MK.SYM = 000001
|
||||
. ******R 002 CATTRS = 000170 EDMASK = ****** G IFNE 001016RG 002 MODE = ****** G
|
||||
. 002036R 002 CATTRS = 000170 EDMASK = ****** G IFNE 001016RG 002 MODE = ****** G
|
||||
..Z = ****** G CDRSAV = ****** G ENDC 001122RG 002 IFNZ 001016RG 002 MSBMRP = ****** G
|
||||
..ZBUF = ****** G CH.ADD = 000053 ENDCX 001140R 002 IFOER1 001254R 002 OVRFLG = 000020
|
||||
1$10 001766R L 002 CH.AND = 000046 ENDFLG 000000RG 009 IFOERR 001174R 002 PAGEXT 000010RG 009
|
||||
|
||||
@@ -2549,7 +2549,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF = 000007 CH.ADD = 000053 ERR.T = 010000 G MX.ON = 066307
|
||||
. ******R 006 CH.AND = 000046 ERR.U = 020000 G MX.PUT 003720R 002
|
||||
. 000062R 006 CH.AND = 000046 ERR.U = 020000 G MX.PUT 003720R 002
|
||||
..Z = ****** G CH.BSL = 000134 ERR.XX 000002RG 010 MX.PXX 000036R 006
|
||||
..ZBUF = ****** G CH.COL = 000072 ERR.Z = 040000 G MX.SYM 000037RG 006
|
||||
1$10 001464R L 002 CH.COM = 000054 ERRBTS 000000RG 010 MX.TMP 000060R 006
|
||||
|
||||
@@ -2217,7 +2217,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF = 000007 44$31 004774R L 002 ERN31 = ****** G MSBARG 000010R 008
|
||||
. ******R 004 5$17 002450R L 002 ERN54 = ****** G MSBBLK 000002R 008
|
||||
. 000002R 004 5$17 002450R L 002 ERN54 = ****** G MSBBLK 000002R 008
|
||||
..Z = ****** G 5$31 005052R L 002 ERN56 = ****** G MSBCNT 000012R 008
|
||||
..ZBUF = ****** G 6$17 002454R L 002 ERN57 = ****** G MSBEND 000020R 008
|
||||
1$10 001336R L 002 61$17 002510R L 002 ERN60 = ****** G MSBMRP 000016RG 008
|
||||
|
||||
@@ -1278,7 +1278,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF= 000007 CH.MUL= 000052 ENDFLG= ****** G LET.R = 000122 ROLBAS 000000R 018
|
||||
. ******R 002 CH.PCT= 000045 ENDLIN= ****** G LET.Z = 000132 ROLUPD= ****** G
|
||||
. 000262R 002 CH.PCT= 000045 ENDLIN= ****** G LET.Z = 000132 ROLUPD= ****** G
|
||||
2$0 000006R L 002 CH.QM = 000077 ENDP1 000110RG 002 LF = 000012 RSX11D= 000000
|
||||
3$1 000062R L 002 CH.QTM= 000042 ENDP1C= ****** G LSYROL= 000010 G SAVREG= ****** G
|
||||
31$2 000134R L 002 CH.RAB= 000076 ENDP2 000162RG 002 M.IDF = 000007 SCAN = ****** G
|
||||
|
||||
@@ -1190,7 +1190,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF = 000007 4$3 000360R L 002 CH.SMC = 000073 ERR.XX = ****** G PDPV45 = 000000
|
||||
. ******R 002 4$4 000504R L 002 CH.SUB = 000055 ERRBTS = ****** G R50UNP 000150RG 002
|
||||
. 001062R 002 4$4 000504R L 002 CH.SUB = 000055 ERRBTS = ****** G R50UNP 000150RG 002
|
||||
..Z = ****** G 5$3 000364R L 002 CH.UAR = 000136 ERRREF = ****** G RSX11D = 000000
|
||||
..ZBUF = ****** G 5$4 000510R L 002 CH.XCL = 000047 FF = 000014 SAVREG 000754RG 002
|
||||
1$0 000072R L 002 9$5 000566R L 002 CHRPNT 000000RG 008 FT.ID = 000001 SDEBUG = ****** G
|
||||
|
||||
@@ -697,7 +697,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF= 000007 CHRPNT= ****** G GLBFLG= 000100 MACDFN= ****** G SHRFLG= 000001
|
||||
. ******R 002 CR = 000015 INSFLG= 000002 MDFFLG= 000004 SPACE = 000040
|
||||
. 000156R 002 CR = 000015 INSFLG= 000002 MDFFLG= 000004 SPACE = 000040
|
||||
1$0 000004R L 002 CRADIX= ****** G IO.TTY= ****** G MK.SYM= 000001 TAB = 000011
|
||||
1$1 000030R L 002 DEBUG = 000000 IOFTBL= ****** G OBJSEC= ****** G TITLE = ****** G
|
||||
1$2 000120R L 002 DEFFLG= 000010 LBLFLG= 000002 OVRFLG= 000020 U.FLAG= ****** G
|
||||
|
||||
@@ -3022,7 +3022,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF= 000007 DSABL = ****** G IFL = ****** G NCHR = ****** G PDPV45= 000000
|
||||
. ******R 002 ENABL = ****** G IFLE = ****** G NLIST = ****** G PRINT = ****** G
|
||||
. 000000R 002 ENABL = ****** G IFLE = ****** G NLIST = ****** G PRINT = ****** G
|
||||
AAAA = 000001 END = ****** G IFLT = ****** G NTYPE = ****** G PSECT = ****** G
|
||||
ASCII = ****** G ENDC = ****** G IFNDF = ****** G ODD = ****** G RAD50 = ****** G
|
||||
ASCIZ = ****** G ENDM = ****** G IFNE = ****** G OPCERR= ****** G RADIX = ****** G
|
||||
|
||||
@@ -947,7 +947,7 @@ $BRKAD= ****** G 2$5 000556R L 002 CR = 000015 ROLND
|
||||
$BRKSY= ****** G 2$6 000762R L 002 DEBUG = 000000 ROLPNT 000006R 006 SYMBOT 000014RG 006
|
||||
$SBRK = ****** GX 3$1 000232R L 002 DUMROL= ****** G ROLUPD 000010RG 006 SYMHP = ****** G
|
||||
$TIMDF= 000007 3$4 000432R L 002 ED.REG= ****** G RSX11D= 000000 SYMLP = ****** G
|
||||
. ******R 002 3$6 001004R L 002 EDMASK= ****** G SAVREG= ****** G SYMOVF= ****** G
|
||||
. 001150R 002 3$6 001004R L 002 EDMASK= ****** G SAVREG= ****** G SYMOVF= ****** G
|
||||
1$0 000004R L 002 30$6 001052R L 002 FF = 000014 SCAN 000334RG 002 SYMROL= ****** G
|
||||
1$1 000162R L 002 4$5 000562R L 002 FT.ID = 000001 SCANC 000320RG 002 TAB = 000011
|
||||
1$2 000300R L 002 5$1 000242R L 002 FT.UNX= 000001 SCANF 000340R 002 UPBOMB 000002RG 006
|
||||
|
||||
@@ -461,7 +461,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
$CLOSE= 104406 G $EXIT = 104401 G $OPEN = 104405 G $SEEK = 104423 G . ******R 001
|
||||
$CLOSE= 104406 G $EXIT = 104401 G $OPEN = 104405 G $SEEK = 104423 G . 000000R 001
|
||||
$CREAT= 104410 G $FORK = 104402 G $READ = 104403 G $WAIT = 104524 G DEBUG = 000001
|
||||
$EXECV= 104413 G $GETTO= 104564 G $SBRK = 104505 G $WRITE= 104404 G
|
||||
|
||||
|
||||
@@ -2973,7 +2973,7 @@
|
||||
Symbol table
|
||||
|
||||
$TIMDF = 000007 32776$6 002016R L 002 CT.EOL = 000000 LET.D = 000104
|
||||
. ******R 002 32777$6 002066R L 002 CT.LC = 000100 LET.E = 000105
|
||||
. 006240R 002 32777$6 002066R L 002 CT.LC = 000100 LET.E = 000105
|
||||
..Z = ****** G 33$2 000364R L 002 CT.NUM = 000020 LET.F = 000106
|
||||
..ZBUF = ****** G 4$1 000274R L 002 CT.PC = 000271 LET.G = 000107
|
||||
1$0 000040R L 002 4$11 002756R L 002 CT.PCX = 000010 LET.O = 000117
|
||||
|
||||
@@ -461,7 +461,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 DEBUG = 000001 INICOR= 005670 G
|
||||
. 013560R 001 DEBUG = 000001 INICOR= 005670 G
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -49,7 +49,7 @@ test-asciz.mac:22: ***ERROR Invalid expression in .WORD
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 .ASCIZ 000076R 001 CR = 000015 LF = 000012 SOH = 000001
|
||||
. 000104R 001 .ASCIZ 000076R 001 CR = 000015 LF = 000012 SOH = 000001
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 002 LABEL 000000R 002
|
||||
. 000054R 002 LABEL 000000R 002
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -32,7 +32,7 @@ test-blkb.mac:25: ***ERROR .ODD must not have an argument
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 LABEL 000000R 001 LABEL2 000154R 001
|
||||
. 000325R 001 LABEL 000000R 001 LABEL2 000154R 001
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -40,7 +40,7 @@ test-bsl-mac-arg.mac:23: ***ERROR Constant value required
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 FOO = 000002 SIZE = 000010
|
||||
. 000076R 001 FOO = 000002 SIZE = 000010
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 L1 000366R 001 S2 000356R 001
|
||||
. 000400R 001 L1 000366R 001 S2 000356R 001
|
||||
D1 000362R 001 S1 000352R 001 T1 000372R 001
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 IE.ITS= ****** GX IE.MON= ****** GX SPACE 000006R 001
|
||||
. 000030R 001 IE.ITS= ****** GX IE.MON= ****** GX SPACE 000006R 001
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 002 Y 000000R 002
|
||||
. 000006R 002 Y 000000R 002
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001
|
||||
. 000010R 001
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -90,7 +90,7 @@ test-endm.mac:45: ***ERROR No conditional block active
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 M8 = ****** GX
|
||||
. 000020R 001 M8 = ****** GX
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -200,7 +200,7 @@ test-float.mac:140: ***ERROR Junk at end of line ('5 ; bad: junk')
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 AC0 =%000000 E3 = 000003
|
||||
. 000640R 001 AC0 =%000000 E3 = 000003
|
||||
A = 000001 AC1 =%000001 F2 =%000002
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ test-gbl.mac:11: ***ERROR Invalid expression (complex relocation)
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 LAB1 = ****** GX LAB2 = ******
|
||||
. 000010R 001 LAB1 = ****** GX LAB2 = ******
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -153,7 +153,7 @@ test-if.mac:143: ***ERROR Bad .IF expression
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 DEFD2 = 000003 LAB2 000037R 001 ONE = 000001
|
||||
. 000045R 001 DEFD2 = 000003 LAB2 000037R 001 ONE = 000001
|
||||
DEFD = 000002 LAB1 000036R 001 MIN1 = 177777 ZERO = 000000
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ test-impword.mac:10: ***ERROR Invalid expression in .WORD
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 MACRO = ****** GX START 000000R 001
|
||||
. 000020R 001 MACRO = ****** GX START 000000R 001
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -58,7 +58,7 @@ test-include.mac:21: ***ERROR Unable to find .INCLUDE file "does-not-exist.mac"
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 .INCLU 000012R 001 INCL.M= ****** GX
|
||||
. 000014R 001 .INCLU 000012R 001 INCL.M= ****** GX
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -108,7 +108,7 @@ test-jmp.mac:86: ***ERROR Invalid addressing mode (register expected)
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 003 REIGHT 000010R 003 RZERO 000000R 003 THIRD 000116R 001
|
||||
. 000012R 003 REIGHT 000010R 003 RZERO 000000R 003 THIRD 000116R 001
|
||||
EIGHT = 000010 002 RFOUR 000004R 003 SECND 000046R 001 THREE = 000003
|
||||
FOUR = 000004 002 RSIX 000006R 003 SIX = 000006 002 TWO = 000002 002
|
||||
LABEL 000166R 001 RTWO 000002R 003 START 000000R 001 ZERO = 000000 002
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001
|
||||
. 000000R 001
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 12345$1 000006R L 001 3$3 000022R L 001 4$5 000050R L 001 LAB4 000026R 001
|
||||
. 000052R 001 12345$1 000006R L 001 3$3 000022R L 001 4$5 000050R L 001 LAB4 000026R 001
|
||||
1$0 000002R L 001 12345$2 000012R L 001 3$4 000034R L 001 LAB1 000000R 001 LAB5 000044R 001
|
||||
1$3 000016R L 001 2$3 000020R L 001 3$5 000046R L 001 LAB2A 000004R 001
|
||||
1$4 000030R L 001 2$4 000032R L 001 4$3 000024R L 001 LAB2B 000010R 001
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 LABEL = 000003 START 000000R 001
|
||||
. 000000R 001 LABEL = 000003 START 000000R 001
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001
|
||||
. 000051R 001
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -295,7 +295,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 AC1 =%000001 AC5 =%000005
|
||||
. 000656R 001 AC1 =%000001 AC5 =%000005
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -252,7 +252,7 @@ test-operands.mac:130: ***ERROR Invalid expression (complex relocation)
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 AC1 =%000001 AC5 =%000005
|
||||
. 000356R 001 AC1 =%000001 AC5 =%000005
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -127,7 +127,7 @@ test-prec.mac:100: ***ERROR Invalid expression in .WORD
|
||||
Symbol table
|
||||
|
||||
$ = ****** GX .1 = ****** GX .3 = ****** GX FIVE = 000005
|
||||
. ******R 001 .2 = ****** GX A 000030R 001 NAME = ****** G
|
||||
. 000164R 001 .2 = ****** GX A 000030R 001 NAME = ****** G
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 002
|
||||
. 000000R 002
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -38,7 +38,7 @@ test-rad50.mac:25: ***ERROR invalid character value 37777777777
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 CHR1 = 000001 CHR2 = 000002 CHR3 = 000003
|
||||
. 000030R 001 CHR1 = 000001 CHR2 = 000002 CHR3 = 000003
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. = ****** X = 001234 Y 000002R 002
|
||||
. = 001030 X = 001234 Y 000002R 002
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -30,7 +30,7 @@ test-rept.mac:22: ***ERROR No repeat block active
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001
|
||||
. 000016R 001
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 003
|
||||
. 000010R 003
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -5,7 +5,7 @@ test-undef.mac:1: ***ERROR MACRO .TTYOU not found
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001
|
||||
. 000000R 001
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
Symbol table
|
||||
|
||||
. ******R 001 START 000000R 001
|
||||
. 000056R 001 START 000000R 001
|
||||
|
||||
|
||||
Program sections:
|
||||
|
||||
Reference in New Issue
Block a user