From fbb936d1ce09348c1e48a29ef2ac4d770e160007 Mon Sep 17 00:00:00 2001 From: Paul Koning Date: Sun, 12 Jun 2022 16:50:28 -0400 Subject: [PATCH] Fix .psect without argument, add (ignored) pseudo ops .mdelete, .cross, .nocross --- assemble.c | 13 +++++++------ symbols.c | 3 +++ symbols.h | 3 +++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/assemble.c b/assemble.c index edaad2f..2ea7555 100644 --- a/assemble.c +++ b/assemble.c @@ -293,6 +293,8 @@ O 75 .endc case P_PAGE: case P_PRINT: case P_SBTTL: + case P_CROSS: + case P_NOCROSS: return 1; /* Accepted, ignored. (An obvious need: get assembly listing controls working fully. ) */ @@ -708,6 +710,9 @@ O 75 .endc return mac != NULL; } + case P_MDELETE: + return 1; /* TODO: or should it just be a NOP? */ + case P_MEXIT: { STREAM *macstr; @@ -1038,12 +1043,8 @@ O 75 .endc label = get_symbol(cp, &cp, NULL); if (label == NULL) { - if (op->value == P_CSECT) { - label = memcheck(strdup(". BLK.")); - unnamed_csect = 1; - } else { - label = memcheck(strdup("")); /* Allow blank */ - } + label = memcheck(strdup(". BLK.")); + unnamed_csect = 1; } sectsym = lookup_sym(label, §ion_st); diff --git a/symbols.c b/symbols.c index 0e8cae3..afbaaee 100644 --- a/symbols.c +++ b/symbols.c @@ -369,6 +369,7 @@ void add_symbols( 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(".CROSS", P_CROSS, 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); @@ -396,10 +397,12 @@ void add_symbols( 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(".MDELE", P_MDELETE, 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(".NOCRO", P_NOCROSS, 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); diff --git a/symbols.h b/symbols.h index 42e0a6c..403d44f 100644 --- a/symbols.h +++ b/symbols.h @@ -57,6 +57,7 @@ enum pseudo_ops { P_ASCII, P_BLKW, P_BYTE, P_CSECT, + P_CROSS, P_DSABL, P_ENABL, P_END, @@ -81,10 +82,12 @@ enum pseudo_ops { P_ASCII, P_LIMIT, P_LIST, P_MCALL, + P_MDELETE, P_MEXIT, P_NARG, P_NCHR, P_NLIST, + P_NOCROSS, P_NTYPE, P_ODD, P_PACKED,