diff --git a/assemble.c b/assemble.c index 40fd80c..e161247 100644 --- a/assemble.c +++ b/assemble.c @@ -47,6 +47,10 @@ static int assemble( if (line == NULL) return -1; /* Return code for EOF. */ + if (!enabl_lc) { /* If lower case disabled, */ + upcase(line); /* turn it into upper case. */ + } + cp = line; /* Frankly, I don't need to keep "line." But I found it quite @@ -677,8 +681,11 @@ static int assemble( else if (strcmp(label, "LSB") == 0) { enabl_lsb = 1; lsb = get_next_lsb(); - } else if (strcmp(label, "GBL") == 0) + } else if (strcmp(label, "GBL") == 0) { enabl_gbl = 1; + } else if (strcmp(label, "LC") == 0) { + enabl_lc = 1; + } free(label); cp = skipdelim(cp); } @@ -693,8 +700,11 @@ static int assemble( else if (strcmp(label, "LSB") == 0) { lsb = get_next_lsb(); enabl_lsb = 0; - } else if (strcmp(label, "GBL") == 0) + } else if (strcmp(label, "GBL") == 0) { enabl_gbl = 0; + } else if (strcmp(label, "LC") == 0) { + enabl_lc = 0; + } free(label); cp = skipdelim(cp); } diff --git a/assemble_globals.c b/assemble_globals.c index e7c1b4a..509797a 100644 --- a/assemble_globals.c +++ b/assemble_globals.c @@ -33,6 +33,8 @@ int enabl_lsb = 0; /* When set, stops non-local symbol int enabl_gbl = 1; /* Implicit definition of global symbols */ +int enabl_lc = 1; /* If lowercase disabled, convert assembler + source to upper case. */ int suppressed = 0; /* Assembly suppressed by failed conditional */ diff --git a/assemble_globals.h b/assemble_globals.h index 63fc0c7..372fd53 100644 --- a/assemble_globals.h +++ b/assemble_globals.h @@ -46,6 +46,8 @@ extern int enabl_lsb; /* When set, stops non-local symbol extern int enabl_gbl; /* Implicit definition of global symbols */ +extern int enabl_lc; /* If lowercase disabled, convert assembler + source to upper case. */ extern int suppressed; /* Assembly suppressed by failed conditional */ extern MLB *mlbs[MAX_MLBS]; /* macro libraries specified on the command line */