Mercurial > hg > index.cgi
diff lwasm/lwasm.h @ 432:58cafa61ab40
Add support for undocumented custom module format (for LW)
Nothing to see here. Move along. These are not the droids you are looking
for.
author | William Astle <lost@l-w.ca> |
---|---|
date | Fri, 18 Nov 2016 21:25:43 -0700 |
parents | 4411a6123716 |
children | 61580fc48f98 |
line wrap: on
line diff
--- a/lwasm/lwasm.h Wed Nov 16 19:36:16 2016 -0700 +++ b/lwasm/lwasm.h Fri Nov 18 21:25:43 2016 -0700 @@ -61,7 +61,8 @@ OUTPUT_OS9, // os9 module target OUTPUT_SREC, // motorola SREC format OUTPUT_IHEX, // intel hex format - OUTPUT_HEX // generic hexadecimal format + OUTPUT_HEX, // generic hexadecimal format + OUTPUT_LWMOD // special module format for LW }; enum lwasm_flags_e @@ -131,6 +132,7 @@ lw_expr_t offset; // offset for next instance int oblen; // size of section output int obsize; // size of output buffer + int tbase; // temporary base value for resolution unsigned char *obytes; // output buffer reloctab_t *reloctab; // table of relocations sectiontab_t *next; @@ -201,7 +203,8 @@ E_UNKNOWN_OPERATION = 55, E_USER_SPECIFIED = 56, E_ORG_NOT_FOUND = 57, - + E_COMPLEX_INCOMPLETE = 58, + /* warnings must be 1000 or greater */ W_DUPLICATE_SECTION = 1000, @@ -380,6 +383,7 @@ int skipmacro; // are we skipping in a macro? int endseen; // have we seen an "end" pseudo? int execaddr; // address from "end" + lw_expr_t execaddr_expr; // address from "end" but as an expression int inmod; // inside an os9 module? int undefzero; // used for handling "condundefzero" int pretendmax; // set if we need to pretend the instruction is max length