1 /* generated by Template::Toolkit - do not edit */
2 
3 #include "errors.h"
4 #include "error_func.h"
5 #include "str.h"
6 #include <stdio.h>
7 #include <stdlib.h>
8 
error_read_file(const char * filename)9 void error_read_file(const char *filename)
10 {
11 	STR_DEFINE(msg, STR_SIZE);
12 
13 	Str_append_sprintf( msg, "cannot read file '%s'", filename );
14 	do_error( ErrError, Str_data(msg) );
15 
16 	STR_DELETE(msg);
17 }
error_write_file(const char * filename)18 void error_write_file(const char *filename)
19 {
20 	STR_DEFINE(msg, STR_SIZE);
21 
22 	Str_append_sprintf( msg, "cannot write file '%s'", filename );
23 	do_error( ErrError, Str_data(msg) );
24 
25 	STR_DELETE(msg);
26 }
error_include_recursion(const char * filename)27 void error_include_recursion(const char *filename)
28 {
29 	STR_DEFINE(msg, STR_SIZE);
30 
31 	Str_append_sprintf( msg, "cannot include file '%s' recursively", filename );
32 	do_error( ErrError, Str_data(msg) );
33 
34 	STR_DELETE(msg);
35 }
error_no_src_file(void)36 void error_no_src_file(void)
37 {
38 	STR_DEFINE(msg, STR_SIZE);
39 
40 	Str_append_sprintf( msg, "source file missing" );
41 	do_error( ErrError, Str_data(msg) );
42 
43 	STR_DELETE(msg);
44 }
error_illegal_option(const char * option)45 void error_illegal_option(const char *option)
46 {
47 	STR_DEFINE(msg, STR_SIZE);
48 
49 	Str_append_sprintf( msg, "illegal option: %s", option );
50 	do_error( ErrError, Str_data(msg) );
51 
52 	STR_DELETE(msg);
53 }
error_glob(const char * filename,const char * error)54 void error_glob(const char *filename, const char *error)
55 {
56 	STR_DEFINE(msg, STR_SIZE);
57 
58 	Str_append_sprintf( msg, "problem with '%s': %s", filename, error );
59 	do_error( ErrError, Str_data(msg) );
60 
61 	STR_DELETE(msg);
62 }
error_glob_no_files(const char * filename)63 void error_glob_no_files(const char *filename)
64 {
65 	STR_DEFINE(msg, STR_SIZE);
66 
67 	Str_append_sprintf( msg, "pattern '%s' returned no files", filename );
68 	do_error( ErrError, Str_data(msg) );
69 
70 	STR_DELETE(msg);
71 }
error_not_regular_file(const char * filename)72 void error_not_regular_file(const char *filename)
73 {
74 	STR_DEFINE(msg, STR_SIZE);
75 
76 	Str_append_sprintf( msg, "file '%s' is not a regular file", filename );
77 	do_error( ErrError, Str_data(msg) );
78 
79 	STR_DELETE(msg);
80 }
warn_symbol_different(const char * name,const char * used)81 void warn_symbol_different(const char *name, const char *used)
82 {
83 	STR_DEFINE(msg, STR_SIZE);
84 
85 	Str_append_sprintf( msg, "symbol '%s' used as '%s'", name, used );
86 	do_error( ErrWarn, Str_data(msg) );
87 
88 	STR_DELETE(msg);
89 }
warn_expr_in_parens(void)90 void warn_expr_in_parens(void)
91 {
92 	STR_DEFINE(msg, STR_SIZE);
93 
94 	Str_append_sprintf( msg, "interpreting indirect value as immediate" );
95 	do_error( ErrWarn, Str_data(msg) );
96 
97 	STR_DELETE(msg);
98 }
error_redefined_macro(const char * name)99 void error_redefined_macro(const char *name)
100 {
101 	STR_DEFINE(msg, STR_SIZE);
102 
103 	Str_append_sprintf( msg, "macro '%s' redefined", name );
104 	do_error( ErrError, Str_data(msg) );
105 
106 	STR_DELETE(msg);
107 }
error_syntax(void)108 void error_syntax(void)
109 {
110 	STR_DEFINE(msg, STR_SIZE);
111 
112 	Str_append_sprintf( msg, "syntax error" );
113 	do_error( ErrError, Str_data(msg) );
114 
115 	STR_DELETE(msg);
116 }
error_syntax_expr(void)117 void error_syntax_expr(void)
118 {
119 	STR_DEFINE(msg, STR_SIZE);
120 
121 	Str_append_sprintf( msg, "syntax error in expression" );
122 	do_error( ErrError, Str_data(msg) );
123 
124 	STR_DELETE(msg);
125 }
error_invalid_squoted_string(void)126 void error_invalid_squoted_string(void)
127 {
128 	STR_DEFINE(msg, STR_SIZE);
129 
130 	Str_append_sprintf( msg, "invalid single quoted character" );
131 	do_error( ErrError, Str_data(msg) );
132 
133 	STR_DELETE(msg);
134 }
error_unclosed_string(void)135 void error_unclosed_string(void)
136 {
137 	STR_DEFINE(msg, STR_SIZE);
138 
139 	Str_append_sprintf( msg, "unclosed quoted string" );
140 	do_error( ErrError, Str_data(msg) );
141 
142 	STR_DELETE(msg);
143 }
error_divide_by_zero(void)144 void error_divide_by_zero(void)
145 {
146 	STR_DEFINE(msg, STR_SIZE);
147 
148 	Str_append_sprintf( msg, "division by zero" );
149 	do_error( ErrError, Str_data(msg) );
150 
151 	STR_DELETE(msg);
152 }
error_missing_block(void)153 void error_missing_block(void)
154 {
155 	STR_DEFINE(msg, STR_SIZE);
156 
157 	Str_append_sprintf( msg, "missing {} block" );
158 	do_error( ErrError, Str_data(msg) );
159 
160 	STR_DELETE(msg);
161 }
error_missing_close_block(void)162 void error_missing_close_block(void)
163 {
164 	STR_DEFINE(msg, STR_SIZE);
165 
166 	Str_append_sprintf( msg, "{} block not closed" );
167 	do_error( ErrError, Str_data(msg) );
168 
169 	STR_DELETE(msg);
170 }
error_unbalanced_struct_at(const char * filename,int line_nr)171 void error_unbalanced_struct_at(const char *filename, int line_nr)
172 {
173 	STR_DEFINE(msg, STR_SIZE);
174 
175 	Str_append_sprintf( msg, "unbalanced control structure started at file '%s' line %d", filename, line_nr );
176 	do_error( ErrError, Str_data(msg) );
177 
178 	STR_DELETE(msg);
179 }
error_unbalanced_struct(void)180 void error_unbalanced_struct(void)
181 {
182 	STR_DEFINE(msg, STR_SIZE);
183 
184 	Str_append_sprintf( msg, "unbalanced control structure" );
185 	do_error( ErrError, Str_data(msg) );
186 
187 	STR_DELETE(msg);
188 }
error_not_defined(const char * name)189 void error_not_defined(const char *name)
190 {
191 	STR_DEFINE(msg, STR_SIZE);
192 
193 	Str_append_sprintf( msg, "symbol '%s' not defined", name );
194 	do_error( ErrError, Str_data(msg) );
195 
196 	STR_DELETE(msg);
197 }
error_illegal_ident(void)198 void error_illegal_ident(void)
199 {
200 	STR_DEFINE(msg, STR_SIZE);
201 
202 	Str_append_sprintf( msg, "illegal identifier" );
203 	do_error( ErrError, Str_data(msg) );
204 
205 	STR_DELETE(msg);
206 }
error_jr_not_local(void)207 void error_jr_not_local(void)
208 {
209 	STR_DEFINE(msg, STR_SIZE);
210 
211 	Str_append_sprintf( msg, "relative jump address must be local" );
212 	do_error( ErrError, Str_data(msg) );
213 
214 	STR_DELETE(msg);
215 }
error_expected_const_expr(void)216 void error_expected_const_expr(void)
217 {
218 	STR_DEFINE(msg, STR_SIZE);
219 
220 	Str_append_sprintf( msg, "expected constant expression" );
221 	do_error( ErrError, Str_data(msg) );
222 
223 	STR_DELETE(msg);
224 }
error_symbol_redefined(const char * symbol)225 void error_symbol_redefined(const char *symbol)
226 {
227 	STR_DEFINE(msg, STR_SIZE);
228 
229 	Str_append_sprintf( msg, "symbol '%s' already defined", symbol );
230 	do_error( ErrError, Str_data(msg) );
231 
232 	STR_DELETE(msg);
233 }
error_symbol_redefined_module(const char * symbol,const char * module)234 void error_symbol_redefined_module(const char *symbol, const char *module)
235 {
236 	STR_DEFINE(msg, STR_SIZE);
237 
238 	Str_append_sprintf( msg, "symbol '%s' already defined in module '%s'", symbol, module );
239 	do_error( ErrError, Str_data(msg) );
240 
241 	STR_DELETE(msg);
242 }
error_symbol_decl_local(const char * symbol)243 void error_symbol_decl_local(const char *symbol)
244 {
245 	STR_DEFINE(msg, STR_SIZE);
246 
247 	Str_append_sprintf( msg, "symbol '%s' already declared local", symbol );
248 	do_error( ErrError, Str_data(msg) );
249 
250 	STR_DELETE(msg);
251 }
error_symbol_redecl(const char * symbol)252 void error_symbol_redecl(const char *symbol)
253 {
254 	STR_DEFINE(msg, STR_SIZE);
255 
256 	Str_append_sprintf( msg, "re-declaration of '%s' not allowed", symbol );
257 	do_error( ErrError, Str_data(msg) );
258 
259 	STR_DELETE(msg);
260 }
error_expression_recursion(const char * name)261 void error_expression_recursion(const char *name)
262 {
263 	STR_DEFINE(msg, STR_SIZE);
264 
265 	Str_append_sprintf( msg, "expression for '%s' depends on itself", name );
266 	do_error( ErrError, Str_data(msg) );
267 
268 	STR_DELETE(msg);
269 }
error_max_codesize(long size)270 void error_max_codesize(long size)
271 {
272 	STR_DEFINE(msg, STR_SIZE);
273 
274 	Str_append_sprintf( msg, "max. code size of %ld bytes reached", size );
275 	do_error( ErrError, Str_data(msg) );
276 
277 	STR_DELETE(msg);
278 }
error_org_redefined(void)279 void error_org_redefined(void)
280 {
281 	STR_DEFINE(msg, STR_SIZE);
282 
283 	Str_append_sprintf( msg, "ORG redefined" );
284 	do_error( ErrError, Str_data(msg) );
285 
286 	STR_DELETE(msg);
287 }
error_align_redefined(void)288 void error_align_redefined(void)
289 {
290 	STR_DEFINE(msg, STR_SIZE);
291 
292 	Str_append_sprintf( msg, "ALIGN redefined" );
293 	do_error( ErrError, Str_data(msg) );
294 
295 	STR_DELETE(msg);
296 }
error_org_not_aligned(int org,int align)297 void error_org_not_aligned(int org, int align)
298 {
299 	STR_DEFINE(msg, STR_SIZE);
300 
301 	Str_append_sprintf( msg, "ORG '0x%04X' not ALIGNed '%d'", org, align );
302 	do_error( ErrError, Str_data(msg) );
303 
304 	STR_DELETE(msg);
305 }
error_invalid_org_option(const char * org_hex)306 void error_invalid_org_option(const char *org_hex)
307 {
308 	STR_DEFINE(msg, STR_SIZE);
309 
310 	Str_append_sprintf( msg, "invalid origin (-r) option '%s'", org_hex );
311 	do_error( ErrError, Str_data(msg) );
312 
313 	STR_DELETE(msg);
314 }
error_invalid_define_option(const char * define)315 void error_invalid_define_option(const char *define)
316 {
317 	STR_DEFINE(msg, STR_SIZE);
318 
319 	Str_append_sprintf( msg, "invalid -DVAR=VAL option '%s'", define );
320 	do_error( ErrError, Str_data(msg) );
321 
322 	STR_DELETE(msg);
323 }
error_invalid_org(int origin)324 void error_invalid_org(int origin)
325 {
326 	STR_DEFINE(msg, STR_SIZE);
327 
328 	Str_append_sprintf( msg, "invalid origin: %d", origin );
329 	do_error( ErrError, Str_data(msg) );
330 
331 	STR_DELETE(msg);
332 }
error_invalid_filler_option(const char * filler_hex)333 void error_invalid_filler_option(const char *filler_hex)
334 {
335 	STR_DEFINE(msg, STR_SIZE);
336 
337 	Str_append_sprintf( msg, "invalid filler value: %s", filler_hex );
338 	do_error( ErrError, Str_data(msg) );
339 
340 	STR_DELETE(msg);
341 }
warn_org_ignored(const char * filename,const char * section_name)342 void warn_org_ignored(const char *filename, const char *section_name)
343 {
344 	STR_DEFINE(msg, STR_SIZE);
345 
346 	Str_append_sprintf( msg, "ORG ignored at file '%s', section '%s'", filename, section_name );
347 	do_error( ErrWarn, Str_data(msg) );
348 
349 	STR_DELETE(msg);
350 }
error_not_obj_file(const char * filename)351 void error_not_obj_file(const char *filename)
352 {
353 	STR_DEFINE(msg, STR_SIZE);
354 
355 	Str_append_sprintf( msg, "file '%s' not an object file", filename );
356 	do_error( ErrError, Str_data(msg) );
357 
358 	STR_DELETE(msg);
359 }
error_obj_file_version(const char * filename,int found_version,int expected_version)360 void error_obj_file_version(const char *filename, int found_version, int expected_version)
361 {
362 	STR_DEFINE(msg, STR_SIZE);
363 
364 	Str_append_sprintf( msg, "object file '%s' version %d, expected version %d", filename, found_version, expected_version );
365 	do_error( ErrError, Str_data(msg) );
366 
367 	STR_DELETE(msg);
368 }
error_not_lib_file(const char * filename)369 void error_not_lib_file(const char *filename)
370 {
371 	STR_DEFINE(msg, STR_SIZE);
372 
373 	Str_append_sprintf( msg, "file '%s' not a library file", filename );
374 	do_error( ErrError, Str_data(msg) );
375 
376 	STR_DELETE(msg);
377 }
error_lib_file_version(const char * filename,int found_version,int expected_version)378 void error_lib_file_version(const char *filename, int found_version, int expected_version)
379 {
380 	STR_DEFINE(msg, STR_SIZE);
381 
382 	Str_append_sprintf( msg, "library file '%s' version %d, expected version %d", filename, found_version, expected_version );
383 	do_error( ErrError, Str_data(msg) );
384 
385 	STR_DELETE(msg);
386 }
warn_int_range(long value)387 void warn_int_range(long value)
388 {
389 	STR_DEFINE(msg, STR_SIZE);
390 
391 	Str_append_sprintf( msg, "integer '%ld' out of range", value );
392 	do_error( ErrWarn, Str_data(msg) );
393 
394 	STR_DELETE(msg);
395 }
error_int_range(long value)396 void error_int_range(long value)
397 {
398 	STR_DEFINE(msg, STR_SIZE);
399 
400 	Str_append_sprintf( msg, "integer '%ld' out of range", value );
401 	do_error( ErrError, Str_data(msg) );
402 
403 	STR_DELETE(msg);
404 }
error_base_register_illegal(long value)405 void error_base_register_illegal(long value)
406 {
407 	STR_DEFINE(msg, STR_SIZE);
408 
409 	Str_append_sprintf( msg, "base register byte '%ld' is illegal", value );
410 	do_error( ErrError, Str_data(msg) );
411 
412 	STR_DELETE(msg);
413 }
error_missing_arguments(void)414 void error_missing_arguments(void)
415 {
416 	STR_DEFINE(msg, STR_SIZE);
417 
418 	Str_append_sprintf( msg, "DMA missing register group member(s)" );
419 	do_error( ErrError, Str_data(msg) );
420 
421 	STR_DELETE(msg);
422 }
error_extra_arguments(void)423 void error_extra_arguments(void)
424 {
425 	STR_DEFINE(msg, STR_SIZE);
426 
427 	Str_append_sprintf( msg, "DMA too many arguments" );
428 	do_error( ErrError, Str_data(msg) );
429 
430 	STR_DELETE(msg);
431 }
error_port_A_timing(void)432 void error_port_A_timing(void)
433 {
434 	STR_DEFINE(msg, STR_SIZE);
435 
436 	Str_append_sprintf( msg, "port A timing is illegal" );
437 	do_error( ErrError, Str_data(msg) );
438 
439 	STR_DELETE(msg);
440 }
error_dma_unsupported_interrupts(void)441 void error_dma_unsupported_interrupts(void)
442 {
443 	STR_DEFINE(msg, STR_SIZE);
444 
445 	Str_append_sprintf( msg, "DMA does not support interrupts" );
446 	do_error( ErrError, Str_data(msg) );
447 
448 	STR_DELETE(msg);
449 }
error_dma_illegal_mode(void)450 void error_dma_illegal_mode(void)
451 {
452 	STR_DEFINE(msg, STR_SIZE);
453 
454 	Str_append_sprintf( msg, "DMA mode is illegal" );
455 	do_error( ErrError, Str_data(msg) );
456 
457 	STR_DELETE(msg);
458 }
error_dma_illegal_command(void)459 void error_dma_illegal_command(void)
460 {
461 	STR_DEFINE(msg, STR_SIZE);
462 
463 	Str_append_sprintf( msg, "illegal DMA command" );
464 	do_error( ErrError, Str_data(msg) );
465 
466 	STR_DELETE(msg);
467 }
error_dma_illegal_read_mask(void)468 void error_dma_illegal_read_mask(void)
469 {
470 	STR_DEFINE(msg, STR_SIZE);
471 
472 	Str_append_sprintf( msg, "DMA read mask is illegal" );
473 	do_error( ErrError, Str_data(msg) );
474 
475 	STR_DELETE(msg);
476 }
error_port_B_timing(void)477 void error_port_B_timing(void)
478 {
479 	STR_DEFINE(msg, STR_SIZE);
480 
481 	Str_append_sprintf( msg, "port B timing is illegal" );
482 	do_error( ErrError, Str_data(msg) );
483 
484 	STR_DELETE(msg);
485 }
warn_dma_unsupported_features(void)486 void warn_dma_unsupported_features(void)
487 {
488 	STR_DEFINE(msg, STR_SIZE);
489 
490 	Str_append_sprintf( msg, "DMA does not support some features" );
491 	do_error( ErrWarn, Str_data(msg) );
492 
493 	STR_DELETE(msg);
494 }
warn_dma_unsupported_command(void)495 void warn_dma_unsupported_command(void)
496 {
497 	STR_DEFINE(msg, STR_SIZE);
498 
499 	Str_append_sprintf( msg, "DMA does not implement this command" );
500 	do_error( ErrWarn, Str_data(msg) );
501 
502 	STR_DELETE(msg);
503 }
warn_dma_half_cycle_timing(void)504 void warn_dma_half_cycle_timing(void)
505 {
506 	STR_DEFINE(msg, STR_SIZE);
507 
508 	Str_append_sprintf( msg, "DMA does not support half cycle timing" );
509 	do_error( ErrWarn, Str_data(msg) );
510 
511 	STR_DELETE(msg);
512 }
warn_dma_ready_signal_unsupported(void)513 void warn_dma_ready_signal_unsupported(void)
514 {
515 	STR_DEFINE(msg, STR_SIZE);
516 
517 	Str_append_sprintf( msg, "DMA does not support ready signals" );
518 	do_error( ErrWarn, Str_data(msg) );
519 
520 	STR_DELETE(msg);
521 }
error_cmd_failed(const char * cmd)522 void error_cmd_failed(const char *cmd)
523 {
524 	STR_DEFINE(msg, STR_SIZE);
525 
526 	Str_append_sprintf( msg, "command '%s' failed", cmd );
527 	do_error( ErrError, Str_data(msg) );
528 
529 	STR_DELETE(msg);
530 }
531