2 The goal of this assembler is to eventually not be simply an M68K
3 assembler, but to be relatively easily retargetable. Also, this
4 assembler should be callable from other CL applications, as well as
5 executable as a stand-alone program.
8 Things to add in the grammar/parser/lexer:
10 Support for ' (single ASCII character?) -- only because the
11 book I have says it's part of Motorola's standard. Should it
12 behave like double-quotes or what?
13 Support for floats (once FPU instructions are supported).
14 Line continuations with "\".
18 Things to add in the assembler:
20 CL-style macros? (that would be cool!)
21 Checking ranges of types, signed indices, etc.
22 Also, type checking information stored in the symbol table.
23 Verify that BSS contains only zeros.
24 Support for later chips in the m68k line, and enabling/disabling
25 allowance of their added instructions.
26 Nifty local labels a-la GNU as or similar. (0f, 1b, etc)
27 Optimizations/data flow analysis.
28 Output listings (with cycle counts, et cetera).
30 Output in object formats other than A.OUT.
31 Change lookup tables so that on load, they get converted to hash
32 tables or whatever's appropriate.
35 Things to add in the linker:
38 uh, the whole linker. ;-)
39 Atari ST bootfloppy target.
42 Optimizing linker ideas (see Levine's Linkers and Loaders).
45 THINGS TO DO BEFORE RELEASE
47 - remove debugging output.
48 - add a decent warning/error display and logging system.
49 - compile list of known issues, try to resolve.
50 - start converting improvised list structure into real structures or
52 - put together a basic automated test suite.
58 - macro parameters are broken. At least, <foo> style ones are still
60 - ADDQ/SUBQ are broken with immediate value #8. [codegen]
61 - no checking of vconstraints yet. [codegen]
62 - DC.B should handle strings properly (right now it will probably only
63 write out the last byte). [assembler]
64 - Unfinished pseudo-ops:
71 KNOWN MAJOR INCOMPATIBILITIES WITH DEVPAC
73 These are things which aren't likely to change soon.
77 - we don't support < or > embedded in macro parameters which are
78 already wrapped in < and >. (eg: "<foo>>>>2>" => "foo>>2") [lexer]
81 ENHANCEMENTS FROM DEVPAC
83 - We support EXTERN/GLOBAL as synonyms for XREF/XDEF,
84 respectively. Also ALIGN as a simple version of CNOP.