Skip to content

Commit 3670159

Browse files
committed
drop support for .lbyte, .rbyte, .r40
1 parent dc69e83 commit 3670159

File tree

7 files changed

+0
-96
lines changed

7 files changed

+0
-96
lines changed

include/lexer_utils.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ extern int str_len;
4646
void llerror(char *s, ...);
4747
int unesc_char(char *c, int *esclen);
4848
int flag2mask(char c);
49-
int str2r40(char *str);
5049
int lex_int(char *str, int offset, int base, int *val);
5150
int lex_float(char *str, double *val);
5251
int str_append(char c);

include/prog.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,12 @@ enum node_types {
6767
N_UMINUS,
6868
N_NEG,
6969
N_WORD,
70-
N_LBYTE,
71-
N_RBYTE,
7270
N_DWORD,
7371
N_FLOAT,
7472
N_RES,
7573
N_ORG,
7674
N_ASCII,
7775
N_ASCIIZ,
78-
N_R40,
7976
N_ENTRY,
8077
N_GLOBAL,
8178
N_IFDEF,
@@ -124,7 +121,6 @@ int eval_multiword(struct st *t);
124121
int eval_res(struct st *t);
125122
int eval_org(struct st *t);
126123
int eval_string(struct st *t);
127-
int eval_r40(struct st *t);
128124
int eval_label(struct st *t);
129125
int eval_equ(struct st *t);
130126
int eval_const(struct st *t);

src/keywords.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,11 @@ int kw_init()
4141
PRAGMA_ADD(".include", P_INCLUDE); // handled in lexer
4242
PRAGMA_ADD(".equ", P_EQU);
4343
PRAGMA_ADD(".const", P_CONST);
44-
PRAGMA_ADD(".lbyte", P_LBYTE);
45-
PRAGMA_ADD(".rbyte", P_RBYTE);
4644
PRAGMA_ADD(".word", P_WORD);
4745
PRAGMA_ADD(".dword", P_DWORD);
4846
PRAGMA_ADD(".float", P_FLOAT);
4947
PRAGMA_ADD(".ascii", P_ASCII);
5048
PRAGMA_ADD(".asciiz", P_ASCIIZ);
51-
PRAGMA_ADD(".r40", P_R40);
5249
PRAGMA_ADD(".res", P_RES);
5350
PRAGMA_ADD(".org", P_ORG);
5451
PRAGMA_ADD(".entry", P_ENTRY);

src/lexer.l

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -150,18 +150,6 @@ achar [^\a\b\f\n\r\t\v\\\'\"]
150150
return INT;
151151
}
152152

153-
'...' {
154-
int v = str2r40(yytext+1);
155-
if (v < 0) {
156-
loc_stack[loc_pos].ocol += -v;
157-
llerror("Character invalid for R40 encoding");
158-
return INVALID_STRING;
159-
} else {
160-
yylval.v = v;
161-
return INT;
162-
}
163-
}
164-
165153
/* ---- FLAGS ----------------------------------------------------------- */
166154

167155
{flags} {

src/lexer_utils.c

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -152,38 +152,6 @@ int flag2mask(char c)
152152
}
153153
}
154154

155-
// -----------------------------------------------------------------------
156-
int str2r40(char *str)
157-
{
158-
int val = 0;
159-
int mul = 1600;
160-
char *s = str;
161-
162-
while (*s && (mul >= 1)) {
163-
if ((*s >= 'A') && (*s <= 'Z')) {
164-
val += mul * (*s - 64);
165-
} else if ((*s >= 'a') && (*s <= 'z')) {
166-
val += mul * (*s - 96);
167-
} else if ((*s >= '0') && (*s <= '9')) {
168-
val += mul * (*s - 21);
169-
} else if (*s == ' ') {
170-
val += mul * 0;
171-
} else if (*s == '_') {
172-
val += mul * 37;
173-
} else if (*s == '%') {
174-
val += mul * 38;
175-
} else if (*s == '#') {
176-
val += mul * 39;
177-
} else {
178-
return -(s-str+1);
179-
}
180-
mul /= 40;
181-
s++;
182-
}
183-
184-
return val;
185-
}
186-
187155
// -----------------------------------------------------------------------
188156
void delchar(char *str, char c)
189157
{

src/parser.y

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,11 @@ typedef struct YYLTYPE {
8686
%token P_INCLUDE ".include"
8787
%token P_EQU ".equ"
8888
%token P_CONST ".const"
89-
%token P_LBYTE ".lbyte"
90-
%token P_RBYTE ".rbyte"
9189
%token P_WORD ".word"
9290
%token P_DWORD ".dword"
9391
%token P_FLOAT ".float"
9492
%token P_ASCII ".ascii"
9593
%token P_ASCIIZ ".asciiz"
96-
%token P_R40 ".r40"
9794
%token P_RES ".res"
9895
%token P_ORG ".org"
9996
%token P_ENTRY ".entry"
@@ -212,14 +209,11 @@ pragma:
212209
}
213210
| P_EQU NAME expr { $$ = st_str(N_EQU, $2); st_arg_app($$, $3); free($2); }
214211
| P_CONST NAME expr { $$ = st_str(N_CONST, $2); st_arg_app($$, $3); free($2); }
215-
| P_LBYTE exprs { $$ = compose_list(N_LBYTE, $2); }
216-
| P_RBYTE exprs { $$ = compose_list(N_RBYTE, $2); }
217212
| P_WORD exprs { $$ = compose_list(N_WORD, $2); }
218213
| P_DWORD exprs { $$ = compose_list(N_DWORD, $2); }
219214
| P_FLOAT floats { $$ = compose_list(N_FLOAT, $2); }
220215
| P_ASCII STRING { $$ = st_str(N_ASCII, $2); free($2); }
221216
| P_ASCIIZ STRING { $$ = st_str(N_ASCIIZ, $2); free($2); }
222-
| P_R40 STRING { $$ = st_str(N_R40, $2); free($2); }
223217
| P_RES expr { $$ = st_arg(N_RES, $2, NULL); }
224218
| P_RES expr ',' expr { $$ = st_arg(N_RES, $2, $4, NULL); }
225219
| P_ORG expr { $$ = st_arg(N_ORG, $2, NULL); }

src/prog.c

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,12 @@ struct eval_t eval_tab[] = {
6262
{ "- (unary)",eval_1arg },
6363
{ "~", eval_1arg },
6464
{ ".word", eval_word },
65-
{ ".lbyte", eval_word },
66-
{ ".rbyte", eval_word },
6765
{ ".dword", eval_multiword },
6866
{ ".float", eval_multiword },
6967
{ ".res", eval_res },
7068
{ ".org", eval_org },
7169
{ ".ascii", eval_string },
7270
{ ".asciiz",eval_string },
73-
{ ".r40", eval_r40},
7471
{ ".entry", eval_entry },
7572
{ ".global",eval_global },
7673
{ ".ifdef", eval_ifdef },
@@ -308,20 +305,6 @@ int eval_word(struct st *t)
308305
}
309306
t->val = t->args->val;
310307
break;
311-
case N_RBYTE:
312-
if ((t->args->val < 0) || (t->args->val > 255)) {
313-
aaerror(t, "Value %i is not an 8-bit unsigned integer", t->args->val);
314-
return -1;
315-
}
316-
t->val = t->args->val;
317-
break;
318-
case N_LBYTE:
319-
if ((t->args->val < 0) || (t->args->val > 255)) {
320-
aaerror(t, "Value %i is not an 8-bit unsigned integer", t->args->val);
321-
return -1;
322-
}
323-
t->val = t->args->val << 8;
324-
break;
325308
}
326309

327310
t->type = N_INT;
@@ -471,27 +454,6 @@ int eval_string(struct st *t)
471454
return 0;
472455
}
473456

474-
// -----------------------------------------------------------------------
475-
int eval_r40(struct st *t)
476-
{
477-
char *s = t->str;
478-
int chars = strlen(s);
479-
int words = (chars+2) / 3;
480-
481-
t->data = malloc(words * sizeof(uint16_t));
482-
t->size = 0;
483-
t->type = N_BLOB;
484-
485-
while (words > 0) {
486-
t->data[t->size] = str2r40(s);
487-
t->size++;
488-
words--;
489-
s += 3;
490-
}
491-
492-
return 0;
493-
}
494-
495457
// -----------------------------------------------------------------------
496458
int eval_label(struct st *t)
497459
{

0 commit comments

Comments
 (0)